其他分享
首页 > 其他分享> > 二、图像数字化基础-1.像素

二、图像数字化基础-1.像素

作者:互联网

import cv2 as cv

"""
1.像素是构成数字图像的基本单位
2.像素的形状是不固定的,通常大多数情况下,像素被认为是方形的,但有时也可能是圆形的或者其他形状的
"""
# 1.表示图中指定的像素
image = cv.imread('./ImgFile/Conan.jpg')
print(image.shape)  # 先获取彩色图像的【像素列数,像素行数,通道数】组成的数组
px = image[300, 300]  # 坐标(300,300)上的像素

# 2.获取像素的BGR值
print("像素(300,300)上的像素BGR值为:", px)  # [253 255 254]

"""
说明:
    图像中该像素点(300,300)的RGB值为(254,255,253),
    会发现,这两个结果中的数值是相同的,但顺序是相反的。
    原因是OpenCV对图像的通道顺序进行了转换,
    即把RGB图像的通道顺序由【R->G->B】转换为BGR图像的通道顺序【B->G->R】
    
    RGB图像是指用RGB色彩空间显示的图像,通道顺序为【R->G->B】
    BGR图像是指用BGR色彩空间显示的图像,通道顺序为【B->G->R】
"""

# 3.获取像素px的BGR值有如下两种方式
# 方式一:同时获取坐标像素的B通道、G通道、R通道
image_1 = cv.imread('./ImgFile/Conan.jpg')
px = image_1[250, 250]
print("方式一:\n坐标[250,250]上的像素:", px)

# 方式二:分别获取坐标像素的B通道、G通道、R通道
image_2 = cv.imread('./ImgFile/Conan.jpg')
blue = image_2[250, 250, 0]
green = image_2[250, 250, 1]
red = image_2[250, 250, 2]
print("方式二:\n坐标[250,250]上的像素为:", blue, green, red)

# 4.修改像素的BGR值
image_3 = cv.imread('./ImgFile/Conan.jpg')
px = image_3[100, 100]
print('坐标[100,100]上像素的初始BGR值为:', px)
px = [255, 255, 255]
print('坐标[100,100]上像素修改后的BGR值为:', px)
"""
注意:
    对于BGR/RGB图像,当每个像素的R、G、B这3个数值相等时,就可以得到灰度图像。
    其中,R=G=B=0(B=G=R=0)为纯黑色,R=G=B=255(R=G=B=0)为纯白色
"""

# 5.修改图中指定区域内的所有像素
# 例如修改Conan.jpg中坐标(540,10),(590,10),(540,60),(590,60)这四个点所围成的区域内所有像素修改为纯白色
image_4 = cv.imread('./ImgFile/Conan.jpg')
cv.imshow('Conan', image_4)
for i in range(540, 591):   # i表示横坐标,在区间[540,621]内取值
    for j in range(10, 61):   # j表示纵坐标,在区间[]
        image_4[i, j] = [255, 255, 255]
cv.imshow('changeConan', image_4)
cv.waitKey()
cv.destroyAllWindows()

标签:数字化,image,像素,BGR,图像,250,cv,255
来源: https://blog.csdn.net/Zhong_Er_Bing/article/details/123099770