解決python圖像處理圖像賦值后變為白色的問題
用Python進行圖像賦值,在1RGB基礎上,加入光流兩個通道,代碼如下所示:
import numpy as npimport cv2import 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)
打印出來的時候,圖像顯示空白:
后來找到了問題,是numpy數組11聲明的問題,改成uint8就行了:如下所示:
import numpy as npimport cv2import matplotlib.pyplot as plt path = ’frame_00003_rgb.png’img = cv2.imread(path)img1 = np.zeros([480, 640, 5], dtype=np.uint8)img1[:, :, 0:3] = np.array(img) cv2.imshow(’test1’, np.array(img)[:,:,2])cv2.imshow(’test2’, img1[:, :, 0])cv2.waitKey(10000)
補充知識:python3改圖片白色該為透明
我就廢話不多說了,大家還是直接看代碼吧!
# pip install Pillowimport PIL.Image as Image# 以第一個像素為準,相同色改為透明def transparent_back(img): img = img.convert(’RGBA’) L, H = img.size color_0 = (255,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 imgif __name__ == ’__main__’: img=Image.open(’img.png’) img=transparent_back(img) img.save(’img2.png’)
以上這篇解決python圖像處理圖像賦值后變為白色的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。
相關文章: