导入
显示图像
了解RGB模型以及如何在Python中显示图像。
关于RGB模型的一点介绍
计算机图形学通常使用光的三种原色来生成其他颜色。这三种原色分别是红色、绿色和蓝色,采用这种方式被称为RGB模型。RGB颜色的取值范围通常是0到255,其中0表示该颜色完全不存在,255表示该颜色达到最大强度。红色的RGB值为:
255, 0, 0
因为红色分量为255,而绿色和蓝色分量为0,所以这是纯红色的一个例子。我们可以通过调整这三个颜色的数值来创建其他颜色。例如,粉红色的RGB值为:
255, 51, 255
其中红色为255,绿色为51,蓝色为255。这些数值可以通过搜索“RGB颜色代码”找到。
注意:OpenCV中颜色顺序是相反的。因此,不是RGB,而是BGR(蓝、绿、红)。
...
RGB模型
如何在Python中显示图像?
我们从简单开始。让我们学习如何将图像显示在屏幕上。这看起来可能很简单,但实际上实现起来可能会遇到一些挑战,不过我们完全可以应对。请看下面的“显示图像”代码示例。
在第1至第2行,我们导入了OpenCV和sys模块,sys用于从命令行读取参数。然后在代码块的第7行读取图像。
第一个命令行参数就是图像文件。在OpenCV中用于读取图像的函数是imread()。我们将第一个命令行参数sys.argv[1]传给它。图像被读取后存储在一个名为image的变量中,如代码第11行所示。
imshow() 是用于在屏幕上显示图像的函数。
第一个参数是窗口标题,第二个参数是我们之前读取的图像。cv2.waitKey(0) 是必需的,以防止图像窗口立即关闭。它会等待用户按键后再关闭图像窗口。
imwrite() 是用于创建新文件并将图像写入其中的函数。生成的文件可以是任意图像格式,例如 .png、.jpg 等。
1import cv2 2import sys 3import matplotlib.pyplot as plt 4 5 6def display(infile, nogui=True): 7 image = cv2.imread(infile) 8 if nogui: 9 cv2.imwrite('output/test_display2.png', image) 10 else: 11 cv2.imshow("Image", image) 12 cv2.waitKey(0) 13 14if __name__ == "__main__": 15 # 读取图像。第一个命令行参数是图像文件 16 display(sys.argv[1])