在
OpenCV
中,图像的翻转是采用函数cv2.flip()
实现,该函数能够实现图像在水平方向翻转、垂直方向翻转、两个方向同时翻转,其语法结构为:dst = cv2.flip( src, flipCode )
参数解析:
dst
:和原始图像具有同样大小、类型的目标图像。
src
:要处理的原始图像。
flipCode
:旋转类型,该参数的意义如下表所示
参数值 | 说明 | 意义 |
---|---|---|
0 | 只能是0 | 绕着x轴翻转 |
正数 | 1、2、3等任意正数 | 绕着y轴翻转 |
负数 | −1、−2、−3 等任意负数 | 围绕 x 轴、y 轴同时翻转 |
在该函数中,目标像素点与原始像素点的关系可以表述为:
其中dst
是目标像素点,src
是原始像素点。程序示例
设计程序,使用函数 cv2.flip()对图像分别实现围绕x轴、y轴、x轴和y轴翻转。
import cv2
lena = cv2.imread("./lena.jpg")
lena_x = cv2.flip(lena, 0)
lena_y = cv2.flip(lena, 1)
lena_xy = cv2.flip(lena, -1)
cv2.imshow("原始图像", lena)
cv2.imshow("绕x轴旋转", lena_x)
cv2.imshow("绕y轴旋转", lena_y)
cv2.imshow("绕x轴和y轴旋转", lena_xy)
cv2.waitKey()
cv2.destroyAllWindows()
图1 原始图像
图2 绕x轴旋转
图3 绕y轴旋转
图4 绕x轴和y轴旋转