opencv cv2.findHomography sift、surf特征匹配 单应性矩阵理解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了opencv cv2.findHomography sift、surf特征匹配 单应性矩阵理解相关的知识,希望对你有一定的参考价值。

参考技术A 单应性矩阵是一个3*3的矩阵,可以从cv2.findHomography获得
例如:
H, status = cv2.findHomography(ptsA, ptsB, cv2.RANSAC, 5)
ptsA, ptsB对应两幅图获得的sift或者surf特征点,这里不细讲
参考: https://www.cnblogs.com/lzq116/p/11836657.html

cv2.findHomography得到的H是图一到图二的单应性矩阵
如果需要图二到图一的单应性矩阵,则求逆:np.linalg.inv(H)

上图仅作参考,得到得的H和上面图中得不太一样
(原因:opencv坐标原点是左上角,上图坐标原点是左下角)
以下图为例介绍

其中theta顺时针为正
上面的H矩阵可以看成先旋转再平移

计算不用人工算,仿着下面写就行

注意:每个坐标外面两层中括号,不然会报错。
上面是图一到图二的坐标变换
如果需要图二到图一的单应性矩阵,则求逆:np.linalg.inv(h)

opencv4opencv视频教程 C++(opencv教程)1opencv介绍和环境搭建

[opencv_C++] 入门强推!!!【B站最全】

下一讲:【opencv4】opencv视频教程 C++(opencv教程)2、加载,修改,保存图像

文章目录

opencv介绍和环境搭建

opencv组成架构

核心模块

环境搭建(换成自己下载的版本)

我下的opencv4,跟opencv3略有差异,应该也能用
https://opencv.org/releases/
https://sourceforge.net/projects/opencvlibrary/files/4.5.5/opencv-4.5.5-vc14_vc15.exe/download
下载好后双击解压,我解压在这:F:\\opencv4.5.5

然后老师让把F:\\opencv4.5.5\\opencv\\build\\x64\\vc15\\bin加到环境变量里去。。他vs2015加的vc14,我vs2019就加vc15吧(先不加看看报不报错,后面测试发现确实报找不到动态库错误,加了就没报错了,当然也可以不加,直接把那个动态库文件拷贝跟我们源代码放在一起)
注意:如果修改的环境变量,要重启下电脑才能生效(重启vs貌似也可以?)

包括头文件:
D:\\opencv3.1\\opencv\\build\\include 
D:\\opencv3.1\\opencv\\build\\include\\opencv 
D:\\opencv3.1\\opencv\\build\\include\\opencv2 

库文件
D:\\opencv3.1\\opencv\\build\\x64\\vc14\\lib

链接器
opencv_world310d.lib

vs新建项目,空项目,test_opencv_installl

视图————>属性管理器,在debug | x64那新增属性页arnoldProperties20220129(老师有现成属性页,我不知道他那个怎么来的),然后对它右键————>属性,C/C++附加包含目录,

链接器——>附加库目录

链接器——>输入——>附加依赖项,把需要链接的静态库名字加进去

然后右边源文件——>新建文件main.cpp
输入代码:

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;

int main(int argc, const char* argv[]) 
	Mat src = imread("img.jpg");
	if (src.empty()) 
		printf("could not load image...\\n");
		return -1;
	
	namedWindow("test opencv setup", WINDOW_AUTOSIZE);
	imshow("test opencv setup", src);
	waitKey(0);
	return 0;

然后拷贝图片img.jpg跟源码放在一起,ctrl+f5编译运行:

以上是关于opencv cv2.findHomography sift、surf特征匹配 单应性矩阵理解的主要内容,如果未能解决你的问题,请参考以下文章

opencv 配置

OpenCV实战——OpenCV与图像处理

cmake错误:opencv2/opencv.hpp:opencv2/opencv.hpp:没有这样的文件或目录

opencv相机标定

opencv4opencv视频教程 C++(opencv教程)1opencv介绍和环境搭建

如何使用opencv实现图像匹配