目录
- 安装opencv
- 读取彩色图片
- 显示图片
- 读取灰度图片
- 结论
安装opencv
pip install opencv-python
读取彩色图片
使用OpenCV库读取彩色图片,其格式默认为BGR。
下面的代码展示了如何读取一张名为bg.jpg
的彩色图片,并获取其相关信息。
import cv2
# 读取彩色图片
img = cv2.imread('bg.jpg', cv2.IMREAD_COLOR)
# 打印图片数据类型
print('图片数据类型:', type(img))
# 打印图片的形状 (高度, 宽度, 通道数)
print('彩色图的形状:', img.shape)
# 打印图像的像素点个数
print('彩色图的像素点个数:', img.size)
显示图片
为了显示图片,可以使用cv2.imshow
函数。以下是一个自定义的函数img_show
,用于显示图片并等待用户按键后关闭窗口。
def img_show(name, img):
"""
显示图片
:param name: 窗口名字
:param img: 图片对象
:return: None
"""
cv2.imshow(name, img)
cv2.waitKey(0)
cv2.destroyAllWindows()
读取灰度图片
灰度图片只包含一个通道,下面的代码展示了如何读取灰度图片,并获取其相关信息。
# 读取灰度图片
img_gray = cv2.imread('bg.jpg', cv2.IMREAD_GRAYSCALE)
# 打印灰度图的形状
print('灰度图的形状:', img_gray.shape)
# 打印灰度图的像素点个数
print('灰度图的像素点个数:', img_gray.size)
# 显示灰度图片
img_show('gray_image', img_gray)
结论
结合上篇文章我们可以看出 彩色图的像素点个数是灰度图的两倍
但是图片显示的大小没有啥区别,可以推出在宽度和高度向同时,彩色的图是三个子像素点组成一个视觉像素点,也就是三个通道
彩色图像由RGB三通道构成,每个像素点包含三个子像素(红、绿、蓝),而灰度图像只有一个通道。尽管如此,彩色图像和灰度图像在视觉上具有相同的宽度和高度。