首先我们了解,一个图像,都是一个大的二维数组,每一个元素都是一个像素,若是rgb图像,则该像素还会有rgb三个值,我们读入一个图像
import cv2 img = cv2.imread("open.png", 1) #通过opencv的imread读取图像,后边是1表示是读取彩色图像,在opencv中,用bgr来表示,这和rgb刚好反过来 (b, g, r) = img[100, 100] # 获取图片上[100, 100]这个位置的像素值 print(b, g, r) #通过打印我们可以看到他的像素值是多少
可以看出来他的值是255, 255, 255,这个点就是白色,我们把这个点变成红色,然后显示出来
img = cv2.imread("open.png", 1) (b, g, r) = img[100, 100] print(b, g, r) img[100, 100] = (0, 0, 255) #把这个位置的bgr该成红色的 cv2.imshow("test",img) # 展示出来 cv2.waitKey(0)
emmm,你们看,紫色框框里有一个小红点,很小的(滑稽)
当然我们也可以划线如下
img = cv2.imread("open.png", 1) (b, g, r) = img[100, 100] print(b, g, r) for i in range(100, 201): img[i][100] = (0, 0, 255) cv2.imshow("test",img) cv2.waitKey(0)