关键词:
利用OpenCV的仿射变换函数warpAffine()实现图像的亚像素级平移
通常的图像平移,移动的都是整数个单位,比如向右移动8个像素。
亚像素级平移,则图像的平移量可以为带小数的量,比如向右移动8.5个像素。
利用OpenCV的仿射变换函数warpAffine(),可以轻松实现图像的亚像素平移。
关于OpenCV的仿射变换函数warpAffine()的详细介绍,大家可以参考博文 https://www.hhai.cc/thread-190-1-1.html
C++代码如下:
代码中用到的图像下载链接如下:
https://pan.baidu.com/s/1f4BklPKvr4dJvmjnZYAtig?pwd=l6uv
//出处:昊虹AI笔记网(hhai.cc)
//用心记录计算机视觉和AI技术
//OpenCV版本 OpenCV3.0
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main()
Mat src = imread("F:/material/images/2022/2022-12/1001000-contour.png");
Mat dst;
// 定义平移仿射变换矩阵,该仿射变换矩阵可实现图像向右移动8.5个像素单位。
Mat trans_mat = (Mat_<double>(2, 3) << 1, 0, 8.5, 0, 1, 0.0);
// 平移图像
warpAffine(src, dst, trans_mat, src.size(), 1, 0, Scalar(255, 255, 255));
imshow("src", src);
imshow("dst", dst);
waitKey(0);
return 0;
运行结果如下图所示:
仿射变换
http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/imgproc/imgtrans/warp_affine/warp_affine.html目标在这个教程中你将学习到如何:使用OpenCV函数 warpAffine 来实现一些简单的重映射.使用OpenCV函数 getRotationMatrix2D 查看详情
opencv图像平移缩放旋转翻转图像仿射变换(代码片段)
...是x和y方向上平移的距离:图像平移利用仿射变换函数cv.warpAffine()实现实验#图像平移importnumpyasnpimportcv2ascvimg=cv.imread(‘paojie.jpg‘)rows,cols=img.shape[:2]#定义平移矩阵,需要是numpy的float32类型#x轴平移100,y轴平移50M=np.float32([[1,0,100],[0... 查看详情
opencv中的cv2.warpaffine()
作用实现对图片的仿射变换参数importcv2cv2.warpAffine(input,M,dsize[,dst[,flags[,borderMode[,borderValue]]]])input:输入图像M:仿射变换矩阵,反应仿射变换关系,一般为平移或旋转dsize:输出图像的大小flags:插值方法(int类型),默认为flags=cv2.INTER_LINEA... 查看详情
opencv图像处理
...p;01ty通过numpy来产生这个矩阵,并将其赋值给仿射函数cv2.warpAffine(). 仿射函数cv2.warpAffine()接受三个参数,需要变换的原始图像,移动矩阵M以及变换的图像大小(这个大小如 查看详情
图像缩放示例
...属于仿射变换或者透视变换的范畴,一般可以通过OpenCV的warpAffine()或者warpPerspective()函数实现。出于兴趣,根据仿射变换公式自己简单写了一个函数实现图像的缩放,缩放中心设置为图像中心。代码如下:1#include<iostream>2#incl... 查看详情
opencv——getrotationmatrix2dwarpaffine仿射变换
...CV中实现仿射变换,一般涉及到 getRotationMatrix2D和 warpAffine 这两个函数:计算二维旋转变换矩阵:getRotationMatrix2D函数 getRotationMatrix2D函数用于计算二维旋转变换矩阵。变换会将旋转中心映射到输出图像的原... 查看详情
图像的仿射变换:cv2.warpaffine()(代码片段)
概述图像的几何变换主要包括:平移、旋转、缩放、剪切、仿射、透视等。图像的几何变换主要分为:刚性变换、相似变换、仿射变换和透视变换(投影变换)刚性变换:平移+旋转相似变换:缩放+... 查看详情
如何在 OpenCV C++ 中使用 warpAffine 函数
】如何在OpenCVC++中使用warpAffine函数【英文标题】:HowtousewarpAffinefunctioninOpenCVC++【发布时间】:2017-06-0614:48:28【问题描述】:我需要使用仿射变换来扭曲图像。我得到的错误是“代码已崩溃”。谁能告诉我我的代码有什么问题?M... 查看详情
opencv实现图像的几何变换
...和图像裁剪等。执行这些几何变换的两个关键函数是cv2.warpAffine()和cv2.warpPerspective()。cv2.warpAffine()函数使用以下2x3变换矩阵来变换源图像:cv2.warpPerspective()函数使用以下3x3变换矩阵变换源图像:接下来,我们将了解最常见的几何... 查看详情
生成组合仿射变换矩阵,裁剪+缩放+平移+斜切+旋转(代码片段)
...是用OpenCV来实现就是生成一个放射变换矩阵再调用OpenCV的warpAffine函数,传入变换矩阵和图片得到变换后的输出,这里的难点在于如何生成这个仿射 查看详情
opencv图像变换原理详解图像平移图像旋转图像缩放(代码片段)
...阵M=cv.getAffineTransform(pts1,pts2)#第三个参数为dst的大小dst=cv.warpAffine(img,M,(cols,rows))plt.subplot(121),plt.ims 查看详情
opencv图片旋转截断问题解决方法(代码片段)
...用“getRotationMatrix2D”获得仿射变换矩阵,然后调用“warpAffine”对图片进行变换。其中“warpAffine”有一个参数可以用来控制变换后的图片大小,但变换后的图片大小如何获 查看详情
opencv中的仿射变换
什么是仿射变换?原理:1、一个任意的仿射变换都能表示为乘以一个矩阵(线性变换)接着再加上一个向量(平移)2、综上所述,我们能够用仿射变换来表示: 1)旋转(线性变换) 2)平移(向量加) 3)缩放操作... 查看详情
opencv实现仿射变换
...表的是两幅图之间的 关系 . #include"opencv2/highgui/h 查看详情
opencv图像变换(仿射变换与透视变换)
仿射变换(affinetransform)与透视变换(perspectivetransform)在图像还原、图像局部变化处理方面有重要意义。通常,在2D平面中,仿射变换的应用较多,而在3D平面中,透视变换又有了自己的一席之地。两种变换原理相似,结果也类似,... 查看详情
opencv完整例程25.图像的平移(代码片段)
...偏移量(Tx,Ty)按上式构造平移变换矩阵MAT,由函数cv2.warpAffine可以计算变换后的平移图像。函数说明:cv2.warpAffine(src,M,dsize[,dst[,flags[,borderMode[,borderValue]]]])→dst函数cv2.warpAffine()通过变换矩阵M对图像src进行仿射 查看详情
图像处理之_仿射变换与透视变换
...ffine(src,dst,mat)实现,其中mat是2x3的仿射矩阵,该矩阵可以利用函数cvGetAffineTransform(srcTri, 查看详情
opencv探索之路:重映射与仿射变换
...就说,像素点在另一个图像中的位置是由f来计算的。在OpenCV中,用的是remap函数实现重映射。基本重映射#include<iostream>#include<opencv2opencv.hpp>#include<opencv2imgpr 查看详情