OpenCV cv2.flip() 函数详解与示例
本文介绍了 OpenCV 中 cv2.flip() 函数的用法,该函数可实现图像的水平、垂直及双向翻转。通过设置 flipCode 参数为 0、1 或 -1,用户可分别获得上下颠倒、左右镜像或 180° 旋转的效果。文中提供了详细的参数说明、示例代码以及三种翻转模式的效果对比,方便在图像处理、视频镜像等应用中灵活使用。
cv2.flip()
是 OpenCV 中用来翻转图像的函数,可以水平、垂直或同时进行翻转。
1. 函数原型
cv2.flip(src, flipCode) -> dst
参数说明:
-
src:输入图像(NumPy 数组形式)。
-
flipCode:翻转方式,整数:
0
:垂直翻转(上下颠倒)1
:水平翻转(左右镜像)-1
:同时水平和垂直翻转(180°旋转)
返回值:
- dst:翻转后的图像。
2. 示例代码
import cv2# 读取图像
img = cv2.imread("example.jpg")# 垂直翻转
flip_vertical = cv2.flip(img, 0)# 水平翻转
flip_horizontal = cv2.flip(img, 1)# 同时水平 + 垂直翻转
flip_both = cv2.flip(img, -1)# 显示结果
cv2.imshow("Original", img)
cv2.imshow("Vertical Flip", flip_vertical)
cv2.imshow("Horizontal Flip", flip_horizontal)
cv2.imshow("Both Flip", flip_both)cv2.waitKey(0)
cv2.destroyAllWindows()
3. 可视化理解
flipCode | 效果 | 描述 |
---|---|---|
0 | ⬆️⬇️ | 垂直翻转(上下颠倒) |
1 | ⬅️➡️ | 水平翻转(左右镜像) |
-1 | ↔️ + ↕️ | 水平+垂直翻转(180°旋转) |
4. 注意事项
- 翻转不会改变图像的尺寸和通道数。
- 对视频帧(
frame
)翻转时,可以直接用cv2.flip(frame, 1)
实现镜像摄像头效果。 - 如果想旋转 90°、270°,不建议用
cv2.flip
,而是用cv2.rotate()
。
如果你需要的话,我还可以画一个直观的翻转示意图,让你一眼就明白 flipCode
三种取值的效果。你需要我画吗?