1. 程式人生 > 程式設計 >解決python影象處理影象賦值後變為白色的問題

解決python影象處理影象賦值後變為白色的問題

用Python進行影象賦值,在1RGB基礎上,加入光流兩個通道,程式碼如下所示:

import numpy as np
import cv2
import matplotlib.pyplot as plt
 
path = 'frame_00003_rgb.png'
img = cv2.imread(path)
img1 = np.zeros([480,640,5])
img1[:,:,0:3] = np.array(img)
 
cv2.imshow('test1',np.array(img)[:,2])
cv2.imshow('test2',img1[:,0])
cv2.waitKey(10000)

打印出來的時候,影象顯示空白:

解決python影象處理影象賦值後變為白色的問題

後來找到了問題,是numpy陣列11宣告的問題,改成uint8就行了:如下所示:

import numpy as np
import cv2
import matplotlib.pyplot as plt
 
path = 'frame_00003_rgb.png'
img = cv2.imread(path)
img1 = np.zeros([480,5],dtype=np.uint8)
img1[:,0])
cv2.waitKey(10000)

補充知識:python3改圖片白色該為透明

我就廢話不多說了,大家還是直接看程式碼吧!

# pip install Pillow
import PIL.Image as Image
# 以第一個畫素為準,相同色改為透明
def transparent_back(img):
  img = img.convert('RGBA')
  L,H = img.size
  color_0 = (255,255,255)#要替換的顏色
  for h in range(H):
    for l in range(L):
      dot = (l,h)
      color_1 = img.getpixel(dot)
      if color_1 == color_0:
        color_1 = color_1[:-1] + (0,)
        img.putpixel(dot,color_1)
  return img
if __name__ == '__main__':
  img=Image.open('img.png')
  img=transparent_back(img)
  img.save('img2.png')

以上這篇解決python影象處理影象賦值後變為白色的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。