- 对象形变与位置变换
findHomography 发现两个平面的透视变换,生成变换矩阵
Mat cv::findHomography(
InputArray srcPoints,
InputArray dstPoints,
OutputArray mask,
int method = 0,
double ransacReprojThreshold = 3);
perspectiveTransform 透视变换
#include <opencv2/opencv.hpp>
#include <iostream>
#include <opencv2/xfeatures2d.hpp>
using namespace std;
using namespace cv;
using namespace cv::xfeatures2d;
int main(int argc, char** argv)
{
//步骤一:读取图片并将图片灰度化
Mat src1, src2;
src1 = imread("../path/obj.jpg", IMREAD_GRAYSCALE);
src2 = imread("../path/scene.jpg", IMREAD_GRAYSCALE);
if (src1.empty() || src2.empty())
{
cout << "could not load image..." << endl;
return -1;
}
namedWindow("src1", WINDOW_AUTOSIZE);
namedWindow("src2", WINDOW_AUTOSIZE);
imshow("src1", src1);
imshow("src2", src2);
//步骤二:提取特征并描述
// SURF特征检测
int minHessian = 400;定义阈值hessianThreshold为300
Ptr<SURF