利用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()

运行结果如下图所示:
在这里插入图片描述
C++代码略。

猜你喜欢

转载自blog.csdn.net/wenhao_ir/article/details/128422100
今日推荐