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()

 

 

 

 

 

 

 

 

 

 

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