OpenCV drawMatches没有任何作用
OpenCV drawMatches do nothing
我正试图在两张图像上找到匹配的兴趣点。这个项目的最终目的是建造全景图。
我有这个代码
SIFT detector(0);
src1 = imread( folder + inputName1 , 1 );
cvtColor( src1, src1_gray, CV_BGR2GRAY );
// Detect first image
vector<KeyPoint> keypoints1;
detector.detect(src1_gray, keypoints1);
//Draw keypoints back to source image
drawKeypoints(src1,keypoints1,src1,Scalar::all(-1), 1);
imwrite(folder + outputName1,src1);
src2 = imread( folder + inputName2 , 1 );
cvtColor( src2, src2_gray, CV_BGR2GRAY );
// Detect second image
vector<KeyPoint> keypoints2;
detector.detect(src2_gray, keypoints2);
//Draw keypoints back to source image
drawKeypoints(src2,keypoints2,src2,Scalar::all(-1), 1);
imwrite(folder + outputName2,src2);
vector<DMatch> matches;
Mat output;
drawMatches(src1,keypoints1,src2,keypoints2,matches,output);
imwrite(folder + "matches.jpg",output);
但在最终图像matches.jpg
中,显示了所有点,并且矢量matches
为空。我做错了什么?我想,只有匹配的点才会出现在最终的图像中,在向量matches
中,我找到坐标来绘制点之间的线。
或者我应该使用RANSAC来查找匹配点吗?
您没有匹配任何点。看看这个例子:http://docs.opencv.org/doc/user_guide/ug_features2d.html.
例如,您需要提取描述符,然后将它们与FLANN进行匹配。然后你可以抽签;)
相关文章:
- 类和构造函数中的函数根本不起作用,并且不返回任何错误
- 如何将csv中的数据放入c++中的字符串向量中,而绝对没有任何作用
- clang的"-Ofast"选项在实践中有什么作用,特别是对于与gcc的任何差异?
- 程序在C++ Tutor中执行时有效,但在其他任何地方都不起作用
- 从教科书中一对一复制的代码绝对没有任何作用
- 为什么重载运算符上的异常说明符'<<'不适用于任何 std::ostream 对象,但对库中定义的运算符不起作用?
- 操作系统在C 汇编过程中是否有任何作用
- 输入字母f或任何字母,并像ABC ABCD ABCDE ABCDEF一样cout字母模式,但仅在我按0时起作用
- 编译错误libgcc_s_dw2-1.dll缺少任何内容都不起作用
- Strchr不起作用,或者我需要一个替代方案来检查给定字符串中的任何字符是否是另一个字符串的一部分
- 如果新的大小与旧的大小相同,标准是否保证std::string::resize不会起任何作用
- 我需要在C++中构建一些单词搜索功能,但似乎它不起作用.任何线索
- 使用objcopy从共享库中剥离符号不会有任何作用
- 选择排序方法似乎没有任何作用
- 在C++命名空间中,当在头中声明的非成员子例程前面加前缀时,“static”限定符是否有任何作用
- OpenCV drawMatches没有任何作用
- 我没有任何编译错误,但我的代码不起作用。怎么了?
- 为什么#后面跟着一个数字在C + +中似乎没有任何作用
- C++指针赋值语句似乎不起作用/做任何事情
- 使用远程线程的DLL注入在执行时不起任何作用