![OpenCV轻松入门:面向Python](https://wfqqreader-1252317822.image.myqcloud.com/cover/910/26297910/b_26297910.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
5.2 翻转
在OpenCV中,图像的翻转采用函数cv2.flip()实现,该函数能够实现图像在水平方向翻转、垂直方向翻转、两个方向同时翻转,其语法结构为:
dst = cv2.flip( src, flipCode )
式中:
● dst代表和原始图像具有同样大小、类型的目标图像。
● src代表要处理的原始图像。
● flipCode代表旋转类型。该参数的意义如表5-2所示。
表5-2 flipCode参数的意义
![](https://epubservercos.yuewen.com/53BA2F/14737439604468406/epubprivate/OEBPS/Images/Figure-0127-0155.jpg?sign=1738883326-r2UdQGXtmFzpXvYg0Cp6oa0ypH6VkTo8-0-c0a7ff680dfc17e6aaaa2e47d89b3f25)
该函数中,目标像素点与原始像素点的关系可表述为:
![](https://epubservercos.yuewen.com/53BA2F/14737439604468406/epubprivate/OEBPS/Images/Figure-0127-0156.jpg?sign=1738883326-j48vaEVIvqeANlICVOO7vUH17jFxm3K8-0-2c013b5e9c550a613166810696018085)
其中,dst是目标像素点,src是原始像素点。
【例5.4】设计程序,使用函数cv2.flip()完成图像的翻转。
根据题目要求,设计程序如下:
import cv2 img=cv2.imread("lena.bmp") x=cv2.flip(img,0) y=cv2.flip(img,1) xy=cv2.flip(img, -1) cv2.imshow("img", img) cv2.imshow("x", x) cv2.imshow("y", y) cv2.imshow("xy", xy) cv2.waitKey() cv2.destroyAllWindows()
运行程序,出现如图5-1所示的运行结果,其中:
● 图(a)是原始图像lena。
● 图(b)是语句x=cv2.flip(img,0)生成的图像,该图像由图像lena围绕x轴翻转得到。
● 图(c)是语句y=cv2.flip(img,1)生成的图像,该图像由图像lena围绕y轴翻转得到。
● 图(d)是语句xy=cv2.flip(img, -1)生成的图像,该图像由图像lena围绕x轴、y轴翻转得到。
![](https://epubservercos.yuewen.com/53BA2F/14737439604468406/epubprivate/OEBPS/Images/Figure-0128-0157.jpg?sign=1738883326-s3AGuowxXD8JeUynNeWVxRsLYISjH8XP-0-0197ce54004e31403b17c32c7263b2d6)
图5-1 【例5.4】程序的运行结果