计算特征点通过单应矩阵后的坐标的小函数
来源:互联网 发布:淘宝牙齿矫正器有用吗 编辑:程序博客网 时间:2024/05/21 11:01
在图像处理中,常常需要用两幅图的对应特征点来计算单应矩阵。一般会用findHomography之类的函数来找这个单应矩阵。
我一直很好奇特征点通过找到的矩阵变换后会在什么位置。所以自己写了个小函数,可以计算点通过单应矩阵后的坐标。
代码如下:
#include <opencv2/opencv.hpp>
#include <opencv2/features2d/features2d.hpp>
#include <opencv2/imgproc/imgproc_c.h>
#include <opencv2/nonfree/nonfree.hpp>
#include <stdio.h>
#include <stdlib.h>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
using namespace std;
int getpoint(vector< Point2f > a_in,vector< Point2f >*a_out,Mat H)
{
Mat Ma;
Mat Mb;
Ma.create(3,1,CV_64F);
Mb.create(3,1,CV_64F);
for(int i=0;i<a_in.size();i++)
{
Ma.at<double>(0,0)=a_in[i].x;
Ma.at<double>(1,0)=a_in[i].y;
Ma.at<double>(2,0)=1;
Mb=H*Ma;
Point2f f=Point2f(Mb.at<double>(0,0),Mb.at<double>(1,0));
a_out->push_back(f);
// cout<<Mb;
}
return 0;
}
int main()
{
vector<Point2f> a,b;
a.push_back(Point2f(1,2));
a.push_back(Point2f(2,3));
a.push_back(Point2f(3,4));
Mat H=(Mat_<double>(3,3)<<1,2,3,4,5,6,7,8,9);
getpoint(a, &b, H);
cout<<b;
return 0;
}
- 计算特征点通过单应矩阵后的坐标的小函数
- 计算显示坐标旋转后点的坐标
- OpenCV,计算两幅图像的单应矩阵
- OpenCV,计算两幅图像的单应矩阵
- opencv 图像仿射变换 计算仿射变换后对应特征点的新坐标 图像旋转、缩放、平移
- opencv 图像仿射变换 计算仿射变换后对应特征点的新坐标 图像旋转、缩放、平移
- java通过经纬度计算两坐标点之间的距离
- java通过经纬度计算两坐标点之间的距离
- 通过经纬度坐标计算两个点之间的距离
- 计算三点的坐标
- 根据两个点坐标计算距离的函数
- 通过Touch的相应函数来获得触摸点坐标
- opencv的单应矩阵相机标定
- 利用四元树来计算一个坐标点绕任意轴旋转后,新坐标点的推导过程
- 给定RGB值计算色谱上相应的坐标
- 坐标DP 小奇的矩阵(matrix)
- 计算两个坐标点之间的距离
- (非常好)计算匹配点的三维坐标
- 常用网络诊断的命令收集
- kali-linux网络配置
- 关于virtualBox无法打开virtual device 的错误
- hadoop学习第九节:Mahout介绍、安装与应用案例
- 内网渗透的转发工具姿势
- 计算特征点通过单应矩阵后的坐标的小函数
- # freeradius3.x扩展模块开发
- cpu流水线技术(80486)
- 【BLE】CC2541之设置出厂时的配对密码
- 【Markdown】使用Markdown编辑器写博客
- HTML语言之web服务器的文件管理
- 【WCF】HTTP 无法注册 URL 进程,不具有此命名空间的访问权限
- dpi
- Thread+IO文件的加密解密