
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
5.2 翻转
在OpenCV中,图像的翻转采用函数cv2.flip()实现,该函数能够实现图像在水平方向翻转、垂直方向翻转、两个方向同时翻转,其语法结构为:
dst = cv2.flip( src, flipCode )
式中:
● dst代表和原始图像具有同样大小、类型的目标图像。
● src代表要处理的原始图像。
● flipCode代表旋转类型。该参数的意义如表5-2所示。
表5-2 flipCode参数的意义

该函数中,目标像素点与原始像素点的关系可表述为:

其中,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轴翻转得到。

图5-1 【例5.4】程序的运行结果