深入探索计算机视觉与OpenCV库

计算机视觉机器学习领域中最引人入胜的应用之一。顾名思义,计算机视觉赋予计算机在三维空间中检测、识别和识别对象和模式的能力。如果尚未阅读之前关于计算机视觉的文章,请点击以下链接查看:

文章1:。

文章2:。

本文将向介绍OpenCV库的更多特性。

回顾

在进一步探索OpenCV的世界之前,让花一点时间回顾或复习已经学到的内容。已经对机器学习有了简短的、一般性的了解,被介绍到了OpenCV库,并且知道OpenCV实现是在Python编程语言中进行的。已经将图像加载到系统内存中,并观察了两种不同颜色格式的图像,即标准(默认)和灰度。理解OpenCV表示图像的基本方式,即包含代表像素强度的整数的NumPy数组。到目前为止,只看了灰度图像。

查看了一些重要的图像数组属性,如内容、形状和数据类型。

OpenCVPython编程

已经了解了如何将图像加载到系统主内存中。现在将查看可以对图像数据执行的更复杂操作。为了促进这次OpenCV学习体验,将使用可以从以下链接下载的图像。或者,可以保存下面找到的图像。

来源:Pinterest。

加载图像

首要步骤是将图像加载到系统内存中,如下所示:

import cv2 # 以灰度模式加载图像... image = cv2.imread("""C:/Users/Shivek/Pictures/cd0c13629f217c1ab72c61d0664b3f99.jpg""", 0) cv2.imshow('Analytics Vidhya Computer Vision- Nature.png Gray', image) cv2.waitKey() cv2.destroyAllWindows()

请注意:将C:/Users/Shivek/Pictures/cd0c13629f217c1ab72c61d0664b3f99.jpg替换为个人计算机上存储图像的位置(文件路径)。

上述代码成功地将所需图像加载到系统内存中。知道已经以灰度颜色格式加载了图像。

获取和理解图像属性

让通过查看相关属性来深入了解图像。现在将讨论图像的形状。

print(image.shape)

输出如下:

注意shape方法返回两个值给,以元组的形式。这两个值分别代表图像的高度(y轴)和宽度(x轴)。本质上说的是:

print("The Image Height Is: %d Pixels"%(image.shape[0])) print("The Image Width Is: %d Pixels"%(image.shape[1]))

上述代码的输出如下:

在某些情况下,shape方法返回一个包含三个整数值的元组。第一个值代表高度(y轴),第二个值代表宽度(x轴),第三个值代表颜色通道的数量。颜色通道影响像素的颜色范围(即类型/色调的颜色|红色、蓝色、粉红色等)。

例如,为了示例和体验目的,让重新加载自然图像,并查看形状属性-然而,在这次特定的情况下,以标准颜色格式加载图像。

import cv2 # 以颜色模式重新加载... image = cv2.imread("C:/Users/Shivek/Pictures/cd0c13629f217c1ab72c61d0664b3f99.jpg", cv2.IMREAD_COLOR) cv2.imshow('Analytics Vidhya Computer Vision- Nature.png Color', image) cv2.waitKey() cv2.destroyAllWindows()

请注意:将代码中的文件路径替换为个人计算机上图像的绝对位置。

颜色图像将如下所示:

颜色图像如下载时一样-即,它没有以任何方式被操纵。现在让继续使用shape方法处理这个图像。

print(image.shape) print("Image Height: %d Pixels"%(image.shape[0])) print("Image Width: %d Pixels"%(image.shape[1])) print("Number Of Color Channels: %d "%(image.shape[2]))

上述代码的输出将如下所示:

注意元组中有一个第三个数字。这是图像中存在的颜色通道数量。这种特定图像中存在的颜色通道是BGR颜色通道。它是BGR,不是RGB。

默认情况下,OpenCV是为了使用BGR颜色通道而创建的。因为图像是标准颜色的,所以看图像可以看到几种混合和色调的颜色。这是因为有三个颜色通道-每个像素数组的元素有三个值,范围从0到255,每个值代表BGR(蓝色、绿色、红色)在该特定像素的强度,因此允许颜色混合和操纵。将在未来的文章中更多地关注彩色图像。

回到灰度图像,现在将尝试调整图像大小,使其在计算机屏幕上占据更小的面积。要调整图像大小,需要使用OpenCV库提供的resize()方法。

import cv2 # 以灰度格式加载图像 image = cv2.imread("C:/Users/Shivek/Pictures/cd0c13629f217c1ab72c61d0664b3f99.jpg", cv2.IMREAD_GRAYSCALE) cv2.imshow('Analytics Vidhya Computer Vision- Nature Standard Image', image) cv2.waitKey() cv2.destroyAllWindows() # 将图像调整为350x350像素尺寸 resized_image = cv2.resize(image, dsize=(350, 350)) cv2.imshow('Analytics Vidhya Computer Vision- Nature Resized (350, 350)', resized_image) cv2.waitKey() cv2.destroyAllWindows()

第二块代码的解释:

resized_image = cv2.resize(src=image, dsize=(350, 350))

使用resize()方法来调整手头的图像大小-这意味着增加大小或减小它。选择减小图像大小,即使其更小。此方法需要指定高度和宽度的像素尺寸,图像将在这两个尺寸之间调整大小。值需要以不可变的元组传递。指定了350像素的高度和宽度。

cv2.imshow('Analytics Vidhya Computer Vision- Nature Resized (350, 350)', resized_image) cv2.waitKey() cv2.destroyAllWindows()

到目前为止,应该熟悉上述三行代码的作用-它将显示窗口,等待一段时间,并在用户命令后终止所有窗口。

最后的任务是验证图像大小是否已经减小。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485