首页 > 其他分享 >OpenCV仿射变换+投射变换+单应性矩阵

OpenCV仿射变换+投射变换+单应性矩阵

时间:2024-01-19 16:34:41浏览次数:45  
标签:单应性 变换 矩阵 三维 OpenCV 二维 输入 仿射变换

OpenCV仿射变换+投射变换+单应性矩阵

本来想用单应性求解小规模运动的物体的位移,但是后来发现即使是很微小的位移也会带来超级大的误差甚至错误求解,看起来这个方法各种行不通,还是要匹配知道深度了以后才能从三维仿射变换来入手了,纠结~【转】OpenCV仿射变换+投射变换+单应性矩阵
  • estimateRigidTransform():计算多个二维点对或者图像之间的最优仿射变换矩阵 (2行x3列),H可以是部分自由度,比如各向一致的切变。
  • getAffineTransform():计算3个二维点对之间的仿射变换矩阵H(2行x3列),自由度为6.
  • warpAffine():对输入图像进行仿射变换
  • findHomography: 计算多个二维点对之间的最优单映射变换矩阵 H(3行x3列) ,使用最小均方误差或者RANSAC方法 。
  • getPerspectiveTransform():计算4个二维点对之间的透射变换矩阵 H(3行x3列)
  • warpPerspective(): 对输入图像进行透射变换
  • perspectiveTransform():对二维或者三维矢量进行透射变换,也就是对输入二维坐标点或者三维坐标点进行投射变换。
  • estimateAffine3D:计算多个三维点对之间的最优三维仿射变换矩阵H (3行x4列)
  • transform():对输入的N维矢量进行变换,可用于进行仿射变换、图像色彩变换.
  • findFundamentalMat:计算多个点对之间的基矩阵H。
快速解决:
  • 问题1:如何计算3个二维点对之间的仿射变换矩阵?
答:使用getAffineTransform()。
  • 问题2:如何计算多个二维点对之间的仿射变换矩阵(使用误差最小准则 )?
答:使用estimateRigidTransform()或者findHomography。
  • 问题3:如何计算4个二维点对之间的透射变换?
答:使用getPerspectiveTransform()。
  • 问题4:如何计算多个三维点对之间的仿射变换?
答:使用estimateAffine3D。
  • 问题5:如何对输入图像进行仿射变换?
答:使用warpAffine()。
  • 问题6:如何对输入图像进行透射变换?
答:使用perspectiveTransform()。
  • 问题7:如何对输入的二维点对进行仿射变换?
答:使用transform()。
  • 问题8:如何对输入的三维点对进行投射变换?
答:使用perspectiveTransform()。

标签:单应性,变换,矩阵,三维,OpenCV,二维,输入,仿射变换
From: https://www.cnblogs.com/heyrroo/p/17974972

相关文章

  • ubuntu编译opencv:cmake时下载超时及找不到源的问题
    1ade下载超时查看CMakeDownlodLog.txt找下载地址和目标路径(包含md5值),按下载地址下载文件,放到你的opencv-4.7.0/.cache/ade下,记得把文件改名改成包含md5值的。其他缺失文件也可以一样处理。2即使下载完依然cmake报错--ConfiguringdoneCMakeErroratmodules/gapi/cmake/Do......
  • OpenCV安装与配置
    OpenCV安装与配置C++与OpenCV配置安装下载路径Releases-OpenCV添加Path环境变量的路径D:\OpenCV\opencv\build\x64\vc15\bin右击此电脑,选择属性,编辑环境变量设置的是dll文件的环境变量创建一个新的VisualStudioC++空项目尽量用英文路径测试代码#include<iostream......
  • 【快速阅读二】从OpenCv的代码中扣取泊松融合算子(Poisson Image Editing)并稍作优化
    泊松融合我自己写的第一版程序大概是2016年在某个小房间里折腾出来的,当时是用的迭代的方式,记得似乎效果不怎么样,没有达到论文的效果。前段时间又有网友问我有没有这方面的程序,我说Opencv已经有了,可以直接使用,他说opencv的框架太大,不想为了一个功能的需求而背上这么一座大山,看......
  • 一、windows安装opencv,并使用pycharm开发
    OpenCV入门毕设需要用到人脸识别,利用寒假学习下opencv的基本操作,希望可以有所收获安装python环境官网,下载安装exe文件,运行后选择添加path,安装成功结果如下:安装pycharm下载地址安装opencv命令行下运行:pipinstallopencv-python成功安装结果如下:无任何报错即为安装成功......
  • opencv剪切图片
    debug模式下:包含include和lib<PropertyGroupCondition="'$(Configuration)|$(Platform)'=='Debug|x64'"><LinkIncremental>true</LinkIncremental><IncludePath>$(O2_3RD)\opencv\include;$(IncludePath)<......
  • opencv,ffmpeg 和 VLC的关系
    OpenCV、FFmpeg和VLC之间有着密切的关系。OpenCV是一个开源的计算机视觉库,提供了丰富的图像处理和计算机视觉算法。它可以用于处理图像和视频数据。而FFmpeg是一个用于录制、转换和流媒体处理的多媒体框架,可以用于处理音频和视频文件。VLC是一个流行的开源媒体播放器,它使用了FFmpe......
  • OpenCV计算机视觉学习(15)——浅谈图像处理的饱和运算和取模运算
    如果需要其他图像处理的文章及代码,请移步小编的GitHub地址传送门:请点击我如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPractice本来在前面博客OpenCV计算机视觉学习(2)——图像算术运算&图像阈值(数值计算,掩膜mask操作,边界填充,二值化)里面已经学习了......
  • OpenCV - 计算机视觉开发
      OpenCV 介绍  OpenCV(OpenSourceComputerVisionLibrary)是一个开源的计算机视觉库,它提供了很多函数,这些函数非常高效地实现了计算机视觉算法(最基本的滤波到高级的物体检测皆有涵盖)。  OpenCV是跨平台的,可以在Windows、Linux、Mac OS、Android、iOS等操作系统上......
  • 【opencv学习笔记】028之模板匹配——matchTemplate函数详解
    目录​ ​一、前言​​​ ​二、模板匹配​​​ ​1、模板匹配是个啥​​​ ​2、常用匹配算法​​​​ ​3、API​​​ ​4、代码展示​​​ ​5、执行结果​​一、前言遭遇了点突发情况,所以今天更新的有点晚,也不知道能不能等到今天发出去了。终于可以从模板匹......
  • c++ opencv直线检测
     #include<opencv2/opencv.hpp>#include<opencv2/highgui/highgui.hpp>#include<opencv2/imgproc/imgproc.hpp>usingnamespacecv;intmain(intargc,char**argv){//读取图像Matsrc=imread(argv[1],CV_LOAD_IMAGE_COLOR);if......