基于OpenCV的图像翻转和镜像

点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达

本期,我们将解释如何在Python中实现图像的镜像或翻转。大家只需要了解各种矩阵运算和矩阵操作背后的基本数学即可。

01. 依赖包要求

NumPy —用于矩阵运算并对其进行处理。

OpenCV —用于读取图像并将其转换为2D数组(矩阵)。

Matplotlib —用于将矩阵绘制为图像。

对于这个小型项目,我使用了著名的Lena图像,该图像主要用于测试计算机视觉模型。确保下载此映像并将其保存在当前工作目录中。

import cv2
import numpy as np
from matplotlib import pyplot as plt

02. 让我们开始吧

首先,我们使用imread()模块中的方法读取图像文件cv2。为此,我们只需要导入包并使用它即可。因此,通过这样做,我们获得了矩阵形式的图像。默认情况下,imread()该方法读取的图像BGR(Blue,Green,Red)格式。要读取的图像转换为常规格式,即,RGB(Red,Green,Blue),我们使用cvtColor()来自同一模块的方法cv2。

def read_this(image_file, gray_scale=False):
    image_src = cv2.imread(image_file)
    if gray_scale:
        image_rgb = cv2.cvtColor(image_src, cv2.COLOR_BGR2GRAY)
    else:
        image_rgb = cv2.cvtColor(image_src, cv2.COLOR_BGR2RGB)
    return image_rgb

上面的函数从传递的图像文件返回图像矩阵。如果我们要获取图像矩阵或格式,它由常规if和else条件组成。

镜像图像

要基本镜像图像,我们需要从左到右逐行反转矩阵。让我们考虑一个matrix A。

>>> A = [
       [4, 1, 1],
       [2, 8, 0],
       [3, 8, 1]
]

如果我们要镜像此矩阵(逐行),则它将是-

>>> import numpy as np
>>> mirror_ = np.fliplr(A)
>>> mirror_
[[1, 1, 4],
 [0, 8, 2],
 [1, 8, 3]]

我们也可以在不使用NumPy模块的情况下执行此操作。如果是这样,我们可以使用循环并反转每一行。如果在图

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小白学视觉

您的赞赏是我们坚持下去的动力~

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

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

打赏作者

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

抵扣说明:

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

余额充值