修改一个指定的像素点
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.