opencv图像平移变换
在本教程中,您将学习如何使用OpenCV转换和移动图像。
平移是图像沿x轴和y轴的移动。要使用OpenCV翻译图像,我们必须:
从磁盘加载图像
定义仿射变换矩阵
应用 cv2.warpAffine 执行翻译的功能
OpenCV图像变换
在本教程的第一部分中,我们将讨论什么是转换矩阵以及如何使用OpenCV和NumPy定义它。
从那里,我们将配置我们的开发环境并查看我们的项目目录结构。
审查完项目目录结构后,我们将继续实施Python脚本以使用OpenCV进行翻译, opencv_translate.py。
我们将详细审查此脚本以及该脚本生成的结果。
在本指南的最后,您将了解如何使用OpenCV执行图像翻译。
使用OpenCV定义变换矩阵
要使用OpenCV执行图像翻译,我们首先需要定义一个2 x 3的矩阵,称为仿射变换矩阵:
为了变换的目的,我们关心的是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库对其进行转换/移动。
链接: 下载.
运行示例: