利用OpenCV的flip()函数实现图像的水平镜像(水平翻转)垂直镜像(垂直翻转)
Posted 昊虹AI笔记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用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技术
# 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()
运行结果如下图所示:
C++代码略。
以上是关于利用OpenCV的flip()函数实现图像的水平镜像(水平翻转)垂直镜像(垂直翻转)的主要内容,如果未能解决你的问题,请参考以下文章
Python水平翻转图像(Horizontally flip Image)