昊虹君 发表于 2022-12-23 17:22

利用OpenCV的flip()函数实现图像的水平镜像(水平翻转)、垂直镜像(垂直翻转)

利用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([,
                  ,
                  ,
                  ,
                  ], 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()
运行结果如下图所示:
http://pic1.hhai.cc/pic1/2022/2022-12/002/27.png
页: [1]
查看完整版本: 利用OpenCV的flip()函数实现图像的水平镜像(水平翻转)、垂直镜像(垂直翻转)