4.opencv图像平移变换

本教程介绍了如何使用OpenCV在Python中执行图像平移。通过定义2x3的仿射变换矩阵,可以控制图像沿x轴和y轴的移动。例如,正值tx使图像向右移动,负值ty使图像向上移动。通过cv2.warpAffine函数应用变换矩阵,实现图像的移动。提供的代码示例展示了如何加载图像并应用变换。

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


在本教程中,您将学习如何使用OpenCV转换和移动图像。

平移是图像沿x轴和y轴的移动。要使用OpenCV翻译图像,我们必须:

从磁盘加载图像
定义仿射变换矩阵
应用 cv2.warpAffine 执行翻译的功能

OpenCV图像变换

在本教程的第一部分中,我们将讨论什么是转换矩阵以及如何使用OpenCV和NumPy定义它。

从那里,我们将配置我们的开发环境并查看我们的项目目录结构。

审查完项目目录结构后,我们将继续实施Python脚本以使用OpenCV进行翻译, opencv_translate.py。

我们将详细审查此脚本以及该脚本生成的结果。

在本指南的最后,您将了解如何使用OpenCV执行图像翻译。

使用OpenCV定义变换矩阵

要使用OpenCV执行图像翻译,我们首先需要定义一个2 x 3的矩阵,称为仿射变换矩阵:

图1:要使用OpenCV转换图像,首先必须构造一个仿射变换矩阵

为了变换的目的,我们关心的是t x和t y值:

该t_ {x}值的负值会将图像向左移动
正值用于 t_ {x}将图像向右移动
负值 t_ {y}可使图像向上移动
的正值 t_ {y}将使图像向下移动
例如,假设我们想将图像向右移动25个位数,向下移动50个变量。我们的转换矩阵如下所示(实现为NumPy序列):在这里插入图片描述
现在,如果我们想将图像向左移动7个像素,向上移动23个像素,我们的转换矩阵将如下所示:

在这里插入图片描述
如您所见,为图像翻译定义仿射变换矩阵非常容易!

定义了转换矩阵后,我们可以简单地使用 cv2.warpAffine 功能,像这样:

shifted = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))

代码结构以及下载

在这里插入图片描述
我们只有一个Python脚本, opencv_translate.py,我们将对其进行详细审查。

该脚本将加载 opencv_logo.png 磁盘上的映像,然后使用OpenCV库对其进行转换/移动。

链接: 下载.

运行示例:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

·菜鸟看世界

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

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

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

打赏作者

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

抵扣说明:

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

余额充值