【opencv】几何变换——仿射变换(4 计算仿射矩阵getAffineTransform(src, ds)

这篇具有很好参考价值的文章主要介绍了【opencv】几何变换——仿射变换(4 计算仿射矩阵getAffineTransform(src, ds)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

4 计算仿射矩阵

  • 对于空间变换的仿射矩阵有两种计算方式:

4.1方程法getAffineTransform()

  • 仿射变换矩阵有六个未知数,需要三组对应位置坐标,构造出由六个方程组成的方程组即可解六个未知数;
  • 函数getAffineTransform();通过方程法计算参数src到dst的对应仿射变换矩阵;
  • 头文件:#include<opencv2/imgproc.hpp>
  • 函数getAffineTransform()输入参数有两种方式:

4.1.1 Point2f数组

  • 数据类型为:CV_64F
#include <opencv2/core/core.hpp>  
#include<opencv2/highgui/highgui.hpp>
#include<iostream>
#include<opencv2/imgproc.hpp>
using namespace std;
using namespace cv;
int main() {
    //原坐标位置
    Point2f src[] = { Point2f(0,0),Point2f(200,0),Point2f(0,200) };
    //经过某仿射变换后的坐标
    Point2f dst[] = { Point2f(0,0),Point2f(200,0),Point2f(0,200) };
    //计算仿射矩阵
    Mat A = getAffineTransform(src, dst);
    cout << A << endl;
}

4.1.2Mat

  • 数据类型:CV_32F
#include <opencv2/core/core.hpp>  
#include<opencv2/highgui/highgui.hpp>
#include<iostream>
#include<opencv2/imgproc.hpp>
using namespace std;
using namespace cv;
int main() {
    //原坐标位置
    Mat src = (Mat_<float>(3,2)<<0,0,200,0,0,200);
    //经过某仿射变换后的坐标
    Mat dst = (Mat_<float>(3, 2) << 0, 0, 100, 0, 0, 100);
    //计算仿射矩阵
    Mat A = getAffineTransform(src, dst);
    cout << A << endl;
}

文章来源地址https://www.toymoban.com/news/detail-533289.html

到了这里,关于【opencv】几何变换——仿射变换(4 计算仿射矩阵getAffineTransform(src, ds)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Halcon区域几何变换和仿射变换

    算子参数: move_region(Region : RegionMoved : Row, Column : ) 1.Region(输入要移动的区域) 2.RegionMoved(输出移动后区域) 3.Row(输入要移动区域的向量的行距离 point.y ) 4.Column(输入要移动区域的向量的列距离 point.x) 实例: 效果图:

    2023年04月08日
    浏览(58)
  • 仿射变换和变换矩阵

    一、2D图像的仿射变换 仿射变换 包括 平移、旋转、错切、放缩(各向同性和各向异性) 欧式变换(刚体变换)包括 平移和旋转 相似变换包括平移、旋转、放缩(各向同性) 相似变换矩阵 有4个自由度 s,θ,tx,ty: 仿射变换矩阵 有6个自由度: 所有变换矩阵只需关注一点: 坐

    2024年02月14日
    浏览(41)
  • 仿射变换中的旋转缩放变换矩阵推导

    仿射变换可以将矩阵形状转换为平行四边形。可以挤压形状,但是必须保持两边平行。常见的是旋转、缩放、平移变换。缩放和平移比较简单,本文重点推导旋转缩放变换矩阵。 任意一点 ( x 0 , y 0 ) (x_0,y_0) ( x 0 ​ , y 0 ​ ) 可以看成 ( x 0 , 0 ) (x_0, 0) ( x 0 ​ , 0 ) 向量和 ( 0 ,

    2024年04月24日
    浏览(87)
  • 求解仿射变换矩阵

    仿射变换是图形学中经常用到的方法,通常但是仿射变换的系数是未知的,需要找到变换前后的三对对应点进行求解。 参考文献 矩阵最小二乘法求解仿射变换矩阵

    2024年02月08日
    浏览(47)
  • opencv实现仿射变换和透射变换

    OpenCV中的仿射变换和透视变换是常用的图像几何变换方法,可以用于实现图像的旋转、缩放、平移、扭曲等操作。这两种变换方式在计算机视觉、图像处理以及计算机图形学等领域广泛应用。 仿射变换 仿射变换是一种保持直线平行性质的线性变换,它可以对图像进行平移、

    2024年02月07日
    浏览(45)
  • opencv仿射变换

    #include opencv2/opencv.hpp /* 功能:对一系列坐标点进行平移仿射变换 参数: srcPoints:输入点坐标 dstPoints:变换后的点坐标 x:x方向平移的距离 y:y方向平移的距离 */ void tranlatePoints(std::vectorcv::Point2f srcPoints, std::vectorcv::Point2f dstPoints,double x,double y) {     cv::Mat affineMatrix = (cv::Mat_double

    2024年01月16日
    浏览(40)
  • 仿射变换代码opencv

    顺时针为正,左上角为默认坐标原点 CV_INSTRUMENT_REGION() 是一个OpenCV宏,用于在代码中进行性能分析和测量。它可以用于标记代码的某个区域,以便在运行时获取该区域的性能指标。(不太明白,先放一下)  

    2024年01月17日
    浏览(94)
  • 【OpenCV】-仿射变换

    1、认识仿射变换 仿射变换(Affine Map)又称仿射映射,是指在几何中,一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间的过程。保持二维图形之间的相对位置保持不变,平行线依然是平行线,且直线上的点的位置顺序不变。 一个任意的仿射变换都可以

    2024年02月08日
    浏览(65)
  • OpenCV(十一):图像仿射变换

    目录 1.图像仿射变换介绍  仿射变换: 仿射变换矩阵: 仿射变换公式: 2.仿射变换函数 仿射变换函数:warpAffine() 图像旋转:getRotationMatrix2D() 计算仿射变换矩阵:getAffineTransform()  3.demo 1.图像仿射变换介绍  仿射变换:        仿射变换是由平移、缩放、旋转、翻转和错切组

    2024年02月10日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包