昊虹AI笔记网

 找回密码
 立即注册
搜索
查看: 782|回复: 0
收起左侧

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

[复制链接]

238

主题

241

帖子

931

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
931
昊虹君 发表于 2022-12-23 17:22 | 显示全部楼层 |阅读模式
利用OpenCV的flip()函数实现图像的水平镜像(水平翻转)、垂直镜像(垂直翻转)

OpenCV的函数flip()可以实现图像沿x轴翻转、沿y轴翻转、同时沿x轴和y轴翻转,从而实现图像的水平镜像和垂直镜像。

函数flip()的C++原型如下:
  1. void cv::flip(InputArray src,
  2.               OutputArray dst,
  3.               int flipCode )
复制代码

函数flip()的Python原型如下:
  1. dst=cv.flip(src, flipCode[, dst])
复制代码

参数src和dst没什么好说的。
参数flipCode需要说明一下:
如果flipCode的值大于0,表示绕y轴翻转,对应于实现图像的水平镜像;
如果flipCode的值等于0,表示绕x轴翻转,对应于实现图像的垂直镜像;
如果flipCode的值小于0,表示同时绕x轴和y轴翻转,对应于同时实现图像的垂直镜像和水平镜像;

Python示例代码如下:
  1. # -*- coding: utf-8 -*-
  2. # 出处:昊虹AI笔记网(hhai.cc)
  3. # 用心记录计算机视觉和AI技术

  4. # 博主微信/QQ 2487872782
  5. # QQ群 271891601
  6. # 欢迎技术交流与咨询

  7. # OpenCV的版本为4.4.0

  8. import cv2 as cv
  9. import numpy as np

  10. if __name__ == '__main__':
  11.     img = np.array([[1, 2, 3, 4, 5],
  12.                   [6, 7, 8, 9, 10],
  13.                   [11, 12, 13, 14, 15],
  14.                   [16, 17, 18, 19, 20],
  15.                   [21, 22, 23, 24, 25]], dtype='int8')

  16.     # 沿x轴翻转,对应于实现垂直镜像
  17.     img_x = cv.flip(img, 0)
  18.    
  19.     # 沿y轴翻转,对应于实现水平镜像
  20.     img_y = cv.flip(img, 1)
  21.    
  22.     # 沿x轴和y轴翻转,对应于实现垂直镜像和水平镜像
  23.     img_xy = cv.flip(img, -1)

  24.     cv.waitKey(0)
  25.     cv.destroyAllWindows()
复制代码

运行结果如下图所示:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|昊虹AI笔记网 ( 蜀ICP备2024076726 )

GMT+8, 2024-5-19 10:05 , Processed in 0.025152 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表