OpenCV 函数学习06-像素的编辑(img.itemset)
Posted Python小白进阶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenCV 函数学习06-像素的编辑(img.itemset)相关的知识,希望对你有一定的参考价值。
6. 像素的编辑(img.itemset)
像素是构成数字图像的基本单位,像素处理是图像处理的基本操作。
对像素的访问、修改,可以使用 Numpy 方法直接访问数组元素。
基本例程:
# 1.13 Numpy 获取和修改像素值
img1 = cv2.imread("../images/imgLena.tif", flags=1) # flags=1 读取彩色图像(BGR)
x, y = 10, 10 # 指定像素位置 x, y
# (1) 直接访问数组元素,获取像素值(BGR)
pxBGR = img1[x,y] # 访问数组元素[x,y], 获取像素 [x,y] 的值
print("x={}, y={}\\nimg[x,y] = {}".format(x,y,img1[x,y]))
# (2) 直接访问数组元素,获取像素通道的值
print("img[{},{},ch]:".format(x,y))
for i in range(3):
print(img1[x, y, i], end=' ') # i=0,1,2 对应 B,G,R 通道
# (3) img.item() 访问数组元素,获取像素通道的值
print("\\nimg.item({},{},ch):".format(x,y))
for i in range(3):
print(img1.item(x, y, i), end=' ') # i=0,1,2 对应 B,G,R 通道
# (4) 修改像素值:img.itemset() 访问数组元素,修改像素通道的值
ch, newValue = 0, 255
print("\\noriginal img[x,y] = {}".format(img1[x,y]))
img1.itemset((x, y, ch), newValue) # 将 [x,y,channel] 的值修改为 newValue
print("updated img[x,y] = {}".format(img1[x,y]))
本例程的运行结果如下:
x=10, y=10
img[x,y] = [113 131 226]
img[10,10,ch]: 113 131 226
img.item(10,10,ch): 113 131 226
original img[x,y] = [113 131 226]
updated img[x,y] = [255 131 226]
以上是关于OpenCV 函数学习06-像素的编辑(img.itemset)的主要内容,如果未能解决你的问题,请参考以下文章
C++的opencv里怎么读取Mat图像中特定坐标的灰度值?