opencv像素處理

1.用Numpy庫生成一個元素值都是0的二維數組,用來模擬一幅黑色圖像,並對其進行訪問、修改。

分析:使用Numpy庫中的函數zeros()可以生成一個元素值都是0的數組,並可以直接使用數組的索引對其進行訪問、修改。

import cv2
import numpy as np
img=np.zeros((8,8),dtype=np.uint8)
print("img=\n",img)
cv2.imshow("one",img)
print("讀取像素點img[0,3]=",img[0,3])
img[0,3]=255
print("修改後Img=\n",img);
print("讀取修改後像素點img[0,3]=",img[0,3])
cv2.imshow("two", img)
cv2.destroyAllWindows()

 

2.更改圖像某一矩形區域的像素值也很方便更改圖像某一矩形區域的像素值也很方便

import cv2
img = cv2.imread("E:\lena.jpg")
img[0:50,1:100] = (0,0,255) #0到50行,1到100列,b,g值爲0,r值爲255即紅色
cv2.imshow("img",img)
cv2.waitKey()
cv2.destroyAllWindows()

3.可以使用表達式訪問數組內的值。例如,可以使用image[0,0,0]訪問圖像image的B通道內的第0行第0列上的像素點,第三個0指的是第0個通道即B通道

例:使用Numpy生成三維數組,用來觀察三個通道值的變化情況

import numpy as np
import cv2
#藍色通道
blue=np.zeros((300,300,3),dtype=np.uint8)
blue[:,:,0]=255
print("blue\n",blue)
cv2.imshow("blue",blue)
#綠色通道
green=np.zeros((300,300,3),dtype=np.uint8)
green[:,:,1]=255
print("green\n",green)
cv2.imshow("green",green)
#紅色通道
red=np.zeros((300,300,3),dtype=np.uint8)
red[:,:,2]=255
print("red\n",red)
cv2.imshow("red",red)
cv2.waitKey()
cv2.destroyAllWindows()

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章