【OpenCV 例程200篇】29. 图像的翻转(cv2.flip)

本文介绍了OpenCV中的图像翻转功能,包括水平、垂直和水平垂直翻转,并提供了使用cv2.flip函数的示例代码。此外,还提到了图像的旋转和缩放等几何变换操作,帮助读者理解如何在Python中实现这些基本的图像处理技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

『youcans 的 OpenCV 例程200篇 - 总目录』


【youcans 的 OpenCV 例程200篇】29. 图像的翻转(cv2.flip)


欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中

翻转也称镜像,是指将图像沿轴线进行轴对称变换。水平镜像是将图像沿垂直中轴线进行左右翻转,垂直镜像是将图像沿水平中轴线进行上下翻转,水平垂直镜像是水平镜像和垂直镜像的叠加。

以水平镜像为例,图像宽度为 fw,像素点 (x,y) 以垂直中轴线为中心进行左右对换,可以由以下公式描述:
[ x ~ y ~ 1 ] = M A F [ x y 1 ] , M A F = [ − 1 0 f w 0 1 0 0 0 1 ] \begin{bmatrix} \tilde{x}\\ \tilde{y}\\ 1 \end{bmatrix} = M_{AF} \begin{bmatrix} x\\ y\\ 1 \end{bmatrix} ,\hspace{1em} M_{AF} = \begin{bmatrix} -1 &0 &f_w\\ 0 &1 &0\\ 0 &0 &1 \end{bmatrix} x~y~1=MAFxy1,MAF=100010fw01

由上式构造镜像变换矩阵 MAF,由函数 cv2.warpAffine 可以计算变换后的镜像图像。

简便地,OpenCV 提供了 cv2.flip 函数,可以将图像沿水平方向、垂直方向、或水平/垂直方向同时进行翻转。

函数说明:

cv2.flip(src, flipCode[, dst]) -> dst

参数说明:

  • scr:变换操作的输入图像
  • flipCode:控制参数,整型(int),flipCode>0 水平翻转,flipCode=0 垂直翻转,flipCode<0 水平和垂直翻转
  • dst:变换操作的输出图像,可选项

基本例程:1.38 图像的翻转(镜像)

    # 1.38 图像的翻转 (镜像)
    img = cv2.imread("../images/Fractal03.png")  # 读取彩色图像(BGR)

    imgFlip1 = cv2.flip(img, 0)  # 垂直翻转
    imgFlip2 = cv2.flip(img, 1)  # 水平翻转
    imgFlip3 = cv2.flip(img, -1)  # 水平和垂直翻转

    plt.figure(figsize=(9, 6))
    plt.subplot(221), plt.axis('off'), plt.title("Original")
    plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))  # 原始图像
    plt.subplot(222), plt.axis('off'), plt.title("Flipped Horizontally")
    plt.imshow(cv2.cvtColor(imgFlip2, cv2.COLOR_BGR2RGB))  # 水平翻转
    plt.subplot(223), plt.axis('off'), plt.title("Flipped Vertically")
    plt.imshow(cv2.cvtColor(imgFlip1, cv2.COLOR_BGR2RGB))  # 垂直翻转
    plt.subplot(224), plt.axis('off'), plt.title("Flipped Horizontally & Vertically")
    plt.imshow(cv2.cvtColor(imgFlip3, cv2.COLOR_BGR2RGB))  # 水平垂直翻转
    plt.show()

在这里插入图片描述


(本节完)


版权声明:
youcans@xupt 原创作品,转载必须标注原文链接:(https://blog.csdn.net/youcans/article/details/125112487)
Copyright 2022 youcans, XUPT
Crated:2021-11-18

【第3章:图像的几何变换】

28. 图像的旋转(直角旋转)
29. 图像的翻转(cv2.flip)
30. 图像的缩放(cv2.resize)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

youcans_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值