在这篇文章中,将探讨如何使用Python编程语言中的OpenCV库来执行一些有趣的图像操作。OpenCV是一个开源的计算机视觉和机器学习软件库,它提供了大量的图像处理功能。为了最大化学习效果,建议在选择的PythonIDE中跟随本教程进行操作。将使用一个可以在此链接下载的图像来进行实践学习。可以从链接下载图像,或者保存下面提供的图像。
首先,将学习如何将图像加载到系统内存中。以下是加载图像的代码示例:
import cv2
image = cv2.imread("C:/Users/Shivek/Pictures/cool-backgrounds-nature-1920x1200-wallpaper-preview.jpg", cv2.IMREAD_COLOR)
cv2.imshow('Analytics Vidhya Computer Vision- Mountain View', image)
cv2.waitKey()
cv2.destroyAllWindows()
上述代码块中,导入了必要的库,并使用imread()方法将图像加载到系统内存中。这里以标准/彩色格式加载图像。请将文件路径替换为个人电脑上的对应位置。然后,使用imshow()方法在计算机屏幕上的GUI窗口中显示图像。waitKey()和destroyAllWindows()方法将用于终止由于OpenCV操作而在系统上打开的GUI窗口。
接下来,将尝试调整图像的大小,具体来说,将减小图像的尺寸。以下是调整图像大小的代码示例:
# 将图像调整为455x150像素的尺寸
resized_image = cv2.resize(src=image, dsize=(455, 150))
cv2.imshow('Analytics Vidhya Computer Vision- Mountain View', resized_image)
cv2.waitKey()
cv2.destroyAllWindows()
在上述代码中,使用了resize()方法,传入源图像(待调整大小的图像)和期望的图像尺寸,尺寸以包含两个整数值的元组形式传递。第一个值代表像素行数,第二个值代表像素列数。不要将shape方法与dsize参数混淆:shape方法会返回给行数、列数和颜色通道(如果有的话)。而dsize参数则需要传入行数,然后是列数。
调整图像大小后,可能会注意到调整后的图像质量似乎有所提高。实际上,这并不是真的——减小图像尺寸并不会提高质量。这只是因为眼睛在远处看图像时,图像看起来更清晰。当将眼睛靠近图像时,会注意到图像质量是如何降低(或恢复正常)的。质量不可见降低的简单解释是:图像中的像素越多,图像就越清晰。因此,通过减小图像的大小,实际上是在减少图像中的总像素数,从而导致图像质量成比例降低。
# 在开始之前,让导入os包
import os
cv2.imwrite(filename="Mountain View 455x150.png", img=resized_image)
print(os.listdir("C:/Users/Shivek/Desktop/Experimenting/Analytics Vidhya Blogathon/"))
print("Successfully Saved!")