Python 获取或修改图像的像素颜色值
您可以通过其行(X)和列坐标(Y)访问或修改像素值。对于 BGR 图像,它返回一个包含蓝色、绿色、红色值的数组。对于灰度图像,只返回相应的强度。
示例代码如下:
import numpy as np
import cv2 as cv
img = cv.imread('messi.jpg')
# 你可以在此填写图像的 X、Y 坐标,获得该图像的 BGR 数据,如果是灰度图像,只返回该灰度的数值。
px = img[100,100]
print('获取X100,Y100坐标的 BGR 数值',px)
# 只访问蓝色的数值
blue = img[100,100,0]
print('获取X100,Y100坐标的蓝色数值',blue)
# 可以使用相同的方式修改像素值
img[100,100] = [255,255,255]
print('获取X100,Y100坐标已修改的 BGR 数值',img[100,100])
# 使用以上方式进行像素值修改,性能非常缓慢,并不鼓励这样做,更好的像素访问与修改的方法如下:
# 访问 Red 值(B=0,G=1,R=2)
fast_px = img.item(200,200,2)
print('更快的获取X200,Y200坐标的 BGR 数值',fast_px)
# 修改 Red 值
img.itemset((200,200,2), 100)
print('获取已修改的X200,Y200坐标的 Red 数值',img.item(200,200,2))
运行结果如下:
获取X100,Y100坐标的 BGR 数值 [57 63 68]
获取X100,Y100坐标的蓝色数值 57
获取X100,Y100坐标已修改的 BGR 数值 [255 255 255]
更快的获取X200,Y200坐标的 BGR 数值 105
获取已修改的X200,Y200坐标的 Red 数值 100
代码打包下载:
您好, 请问您的代码第20行 img.item(200,200,2) 元组中的 2 是代表什么 我没有怎么理解 请多赐教 谢谢