文章目录:『youcans 的 OpenCV 例程300篇 - 总目录』
【OpenCV 例程300篇】06. 像素的编辑(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]
(本节完)
【第1章:图像的基本操作】
06. 像素的编辑(img.itemset)
07. 图像的创建(np.zeros)
08. 图像的复制(np.copy)
09. 图像的裁剪(cv2.selectROI)
10. 图像的拼接(np.hstack)
版权声明:
youcans@xupt 原创作品,转载必须标注原文链接:(https://blog.csdn.net/youcans/article/details/125112487)
Copyright 2022 youcans, XUPT
Crated:2021-11-18