通过OpenCV修改图片某一像素的数值 Python实现

修改一个指定的像素点
 
 
import cv2
import numpy as np

#通过OpenCV读取图片信息
img = cv2.imread('empire.jpg')

#将制定像素点的数据设置为0, 要注意的是这三个参数对应的值是Blue, Green, Red。
img[0, 0] = [0, 0, 0]

#将图像进行输出,使用show()也是可以显示的。
cv2.imwrite('changeOnePixel.png', img)

下面使用CV的itemset来来设置某个像素的数值
 
 
import cv2
import numpy as np

img = cv2.imread('empire.jpg')
#打印这个图片(10,10)这个坐标的数值,0, 1, 2分别代表通道数,0代表Blue, 1代表Green, 2代表Red。
print img.item(10, 10, 0)
print img.item(10, 10, 1)
print img.item(10, 10, 2)
#设置(10, 10)这个像素点三个通道的数值。
img.itemset((10, 10, 0), 0)
img.itemset((10, 10, 1), 0)
img.itemset((10, 10, 2), 0)

#打印一下看看效果。
print img.item(10, 10, 0)
print img.item(10, 10, 1)
print img.item(10, 10, 2)

最后大家也可以使用imwrite将在内存中修改的数据保存成图片,看看效果。
 
 
 
 
修改整个图片的像素
 
 
 
 
 
 
import cv2
import numpy as np

img = cv2.imread('empire.jpg')
img[:, :, 2] = 0
最后这句去决定性作用,就是将图像所有的G(绿色)变成0.
 
 
 
 

 

猜你喜欢

转载自blog.csdn.net/kingroc/article/details/74208839