首先,需要理解信息与数据的区别。数据是原始事实,而信息是经过处理的数据,具有比原始事实本身更高的价值。关键的区别在于,可以基于信息进行决策和采取行动,而不能仅基于数据。
0 = 黑色。255 = 白色。本质上,想传达的是以下内容(省略了来源,因为它与之前的文章相同,并且也是为了信息的流畅性):
从下面的图像开始:然后,将图像以灰度格式返回,并以新格式获得图像:现在,将打印存储灰度图像的变量的内容:
# 变量image存储了灰度图像
print(image)
收到上述代码的输出如下:
# 打印变量image的类型
print(type(image))
输出将如下所示:
从根本上说,OpenCV已将图像转换为NumPy数组,其中包含从0到255的值,代表像素强度,对应在灰度图像中看到的颜色。请记住,灰度图像总是返回一个数组,其中每个像素都有一个单独的值,范围从0(黑色)到255(白色)。
返回数组的形状。让将NumPy数组的形状打印到控制台。
print(image.shape)
输出将如下所示:
数组有600行和487列。在图像术语中,人们会说图像的尺寸是600像素(高度),乘以487像素(宽度)。
使用像素打印图像。由于OpenCV已将图像像素转换为包含整数的NumPy数组,可以对包含图像像素值的数组执行NumPy操作,并操纵数组。数组是二维的。这意味着它有行和列。让对数组进行一些索引和切片,并返回内容。
cv2.imshow("AV", image[0:100])
cv2.waitKey()
cv2.destroyAllWindows()
如果熟悉索引和切片技术,将能够看到试图切片图像(NumPy)数组的一部分。再次强调,重要的是要理解和意识到Python编程语言中的OpenCV库将其图像和相关对象表示为NumPy nd-Arrays。
以上代码块的逐行解释如下:
cv2.imshow("Analytics Vidhya Computer Vision ", image[0:100])
imshow()
方法用于使用GUI显示图像。但在这种情况下,为GUI窗口传入了一个名称,并使用切片传入了像素数组的一部分。具体来说,希望返回图像的前100行(高度)。
cv2.waitKey()
这将无限期地等待GUI窗口被关闭 - 即,用户操作/交互将关闭此窗口。可以传入一个整数值作为参数,表示GUI窗口应该在自动终止前等待的持续时间(以毫秒为单位)。
cv2.destroyAllWindows()
上述代码行将终止所有活动/打开的OpenCV GUI窗口。可以传入一个特定的GUI窗口名称作为字符串来终止。
输出将如下所示:
因此,已经成功返回了图像的前100行像素。请随意尝试图像,并查看特定位置的像素是否与图像本身的颜色相匹配。