|
利用OpenCV的flip()函数实现图像的水平镜像(水平翻转)、垂直镜像(垂直翻转)
OpenCV的函数flip()可以实现图像沿x轴翻转、沿y轴翻转、同时沿x轴和y轴翻转,从而实现图像的水平镜像和垂直镜像。
函数flip()的C++原型如下:
- void cv::flip(InputArray src,
- OutputArray dst,
- int flipCode )
复制代码
函数flip()的Python原型如下:
- dst=cv.flip(src, flipCode[, dst])
复制代码
参数src和dst没什么好说的。
参数flipCode需要说明一下:
如果flipCode的值大于0,表示绕y轴翻转,对应于实现图像的水平镜像;
如果flipCode的值等于0,表示绕x轴翻转,对应于实现图像的垂直镜像;
如果flipCode的值小于0,表示同时绕x轴和y轴翻转,对应于同时实现图像的垂直镜像和水平镜像;
Python示例代码如下:
- # -*- coding: utf-8 -*-
- # 出处:昊虹AI笔记网(hhai.cc)
- # 用心记录计算机视觉和AI技术
- # 博主微信/QQ 2487872782
- # QQ群 271891601
- # 欢迎技术交流与咨询
- # OpenCV的版本为4.4.0
- import cv2 as cv
- import numpy as np
- if __name__ == '__main__':
- img = np.array([[1, 2, 3, 4, 5],
- [6, 7, 8, 9, 10],
- [11, 12, 13, 14, 15],
- [16, 17, 18, 19, 20],
- [21, 22, 23, 24, 25]], dtype='int8')
- # 沿x轴翻转,对应于实现垂直镜像
- img_x = cv.flip(img, 0)
-
- # 沿y轴翻转,对应于实现水平镜像
- img_y = cv.flip(img, 1)
-
- # 沿x轴和y轴翻转,对应于实现垂直镜像和水平镜像
- img_xy = cv.flip(img, -1)
- cv.waitKey(0)
- cv.destroyAllWindows()
复制代码
运行结果如下图所示:
|
|