利用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()函数实现图像的水平镜像(水平翻转)垂直镜像(垂直翻转)的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV:图像的水平垂直水平垂直翻转

OpenCV利用矩阵实现图像旋转

opencv: flip函数的使用;

Python水平翻转图像(Horizontally flip Image)

利用OpenCV的仿射变换函数warpAffine()实现图像的亚像素级平移

利用OpenCV的仿射变换函数warpAffine()实现图像的亚像素级平移