OpenCV轻松入门:面向Python
上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】程序的运行结果