代码语言:javascript复制
import cv2
img=cv2.imread("C:/Users/xpp/Desktop/Lena.png",0)#原始图像
cv2.imshow("before",img)#原始图像
for i in range(10,200):#修改图像区域
for j in range(20,100):
img[i,j]=255#修改像素值
cv2.imshow("after",img)#修改后图像
cv2.waitKey()
cv2.destroyAllWindows()
算法:像素修改是通过位置索引的形式对图像内的元素进行访问、处理。使用嵌套循环语句生成一个ixj大小的二维数组。img[i,j]访问的是图像的第i行第j列的像素点,img[i,j]=255将图像中"第10行到199行"与“第20列到99列”交叉区域内的像素点的像素值设置为“255”,从图像上来看,该交叉区域被设置为白色。
通常,计算机会将灰度处理为256个灰度级,用数值[0,255]来表示。其中,数值“255”表示纯白色,数值“0”表示纯黑色,其余的数值表示从纯白到纯黑之间级别的灰度。用于表示256个灰度级的数值0~255,用一个字节(8位二进制值)来表示。有些情况下,使用8位二进制值来表示一幅二值图像。这种情况下,使用灰度值255表示白色,灰度值0表示黑色。该二值图像内仅有数值0和数值255两种类型的灰度值(灰度级),不存在其他灰度值的像素点。
注意:行序列、列序列都是从0开始。