OpenCV是一个强大的Python库,它允许软件开发人员在计算机视觉领域获得直接经验。计算机视觉使计算机能够从数字图像和视频数据中获得深入的洞察力和理解。如果尚未阅读之前关于Python中计算机视觉的文章,请访问以下超链接。
本文将介绍使用Python编程语言中的OpenCV库对图像数据应用的一些操作。为了获得最大的收获,建议在选择的IDE编码环境中跟随本例进行操作。将使用可以从以下链接下载的图像。或者,可以保存下面找到的图像。
image = cv2.imread("C:/Users/Shivek/Pictures/nature-wallpapers-hd-17.jpg", cv2.IMREAD_COLOR)
cv2.imshow('Analytics Vidhya Computer Vision- Mountain View', image)
cv2.waitKey()
cv2.destroyAllWindows()
请注意,上述代码块的输出将显示如下:图像输出有点太大,以至于无法适应电脑屏幕。为了确认这一点,让查看图像的形状。
print("Dimensions:", image.shape)
print("Rows: %d"%(image.shape[0]))
print("Columns: %d"%(image.shape[1]))
print("Color Channels: %d"%(image.shape[2]))
因此,可以确认图像的宽度为1200像素,高度为1920像素。为了更方便、更直观的视觉效果,将对图像进行缩放——将减小其大小。
resized_image = cv2.resize(src=image, dsize=(600, 450))
cv2.imshow('Analytics Vidhya Computer Vision- Resized Mountain View', resized_image)
cv2.waitKey()
cv2.destroyAllWindows()
上述代码块的输出显示如下:已经将图像的尺寸减小到600×450。现在,整个图像能够显示在屏幕上,并且看起来更清晰。
如何将调整大小后的图像保存到文件系统中。
cv2.imwrite('Mountain View 600x450.png', resized_image)
上述代码的输出将在文件资源管理器中看到——使用的是Spyder IDE,输出如下所示:
在OpenCV和Python中实现图像旋转的方法。
当执行旋转对象的操作时,实际上是在对对象应用圆周运动,在这个例子中是图像。目标是将对象沿着一个固定的支点向顺时针或逆时针方向移动。
在OpenCV和Python中,可以通过使用rotate()方法来实现这一操作。rotate()方法需要指定两个重要的参数:src和rotateCode。src是源像素数组,它反映了图像本身,即要旋转的图像。rotateCode是一个预定义参数的集合,需要从中选择一个。选择的rotateCode将指定和影响旋转实例的性质。
rotateCode参数有三个选项可供选择:
- 将图像旋转90度:rotateCode = ROTATE_90_CLOCKWISE
- 将图像旋转180度:rotateCode = ROTATE_180
- 将图像旋转270度:rotateCode = ROTATE_90_COUNTERCLOCKWISE
image = cv2.imread('C:/Users/Shivek/Desktop/Experimenting/Analytics Vidhya Blogathon/Mountain View 600x450.png', flags=cv2.IMREAD_COLOR)
cv2.imshow('Analytics Vidhya Computer Vision- Mountain View ORIGINAL (600x450)', image)
cv2.waitKey()
cv2.destroyAllWindows()
image_rotated_90_DEG_clockwise = cv2.rotate(src=image, rotateCode=cv2.ROTATE_90_CLOCKWISE)
cv2.imshow('Mountain View Rotated 90 Degrees Clockwise', image_rotated_90_DEG_clockwise)
cv2.waitKey()
cv2.destroyAllWindows()
cv2.imwrite('Mountain View Rotated 90 Degrees Clockwise.png', image_rotated_90_DEG_clockwise)
image_rotated_90_DEG_anticlockwise = cv2.rotate(src=image, rotateCode=cv2.ROTATE_90_COUNTERCLOCKWISE)
cv2.imshow('Mountain View Rotated 90 Degrees AntiClockwise', image_rotated_90_DEG_anticlockwise)
cv2.waitKey()
cv2.destroyAllWindows()
cv2.imwrite('Mountain View Rotated 90 Degrees AntiClockwise.png', image_rotated_90_DEG_anticlockwise)
image_rotated_180_DEG = cv2.rotate(image, rotateCode=cv2.ROTATE_180)
cv2.imshow('Mountain View Rotated 180 Degrees', image_rotated_180_DEG)
cv2.waitKey()
cv2.destroyAllWindows()
cv2.imwrite('Mountain View Rotated 180 Degrees.png', image_rotated_180_DEG)