- OpenCV轻松入门:面向Python
- 李立宗
- 366字
- 2020-08-27 20:56:46
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=1739483501-ipXgVKk2Y7tCmjlI7XL0bFERDNwN1Uc3-0-1b4b87215375f47189d5b4904fc9285c)
该函数中,目标像素点与原始像素点的关系可表述为:
![](https://epubservercos.yuewen.com/53BA2F/14737439604468406/epubprivate/OEBPS/Images/Figure-0127-0156.jpg?sign=1739483501-TLIRHh9rnsvKQWmCxAKKLFmqE8VWzJLv-0-c33c5e838fc2fe6b031d75d320b09cde)
其中,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=1739483501-ybWW0KIGSiVQ00z8CBMeYYQUF86Chojp-0-32bd145932e670fbf97f0835b631c6be)
图5-1 【例5.4】程序的运行结果