图像匹配算法c语言,OpenCV图像匹配算法之freak

下面是编程之家 jb51.cc 通过网络收集整理的代码片段。

编程之家小编现在分享给大家,也给大家做个参考。

//freak.cpp

#include "stdafx.h"

#include

#include

#include "utils.h"

#include

using namespace std;

void freak(char* path1,char* path2,INFO& info,bool show)

{

double t1,t2;

t1=cvGetTickCount();

initModule_nonfree();

Mat img1,img2;

img1=imread(path1,0);

img2=imread(path2,0);

if(img1.data==NULL)

{

cout<

system("pause");

exit(-1);

}

if(img2.data==NULL)

{

cout<

system("pause");

exit(-1);

}

vector kpts1_freak,kpts2_freak;

Mat desc1_freak,desc2_freak;

Ptr<:descriptormatcher> matcher_l1 = DescriptorMatcher::create("BruteForce-Hamming"); //二进制汉明距离匹配

vector > dmatches_freak;

vector matches_freak,inliers_freak;

SurfFeatureDetector dfreak(200,4);

dfreak.detect(img1,kpts1_freak);

dfreak.detect(img2,kpts2_freak);

info.n1 = kpts1_freak.size();

info.n2 = kpts2_freak.size();

FREAK freak;

freak.compute(img1,kpts1_freak,desc1_freak);

freak.compute(img2,kpts2_freak,desc2_freak);

matcher_l1->knnMatch(desc1_freak,desc2_freak,dmatches_freak,2);

matches2points_nndr(kpts1_freak,matches_freak,DRATIO);

info.m=matches_freak.size()/2;

compute_inliers_ransac(matches_freak,inliers_freak,MIN_H_ERROR,false);

info.rm=inliers_freak.size()/2;

t2=cvGetTickCount();

info.t=(t2-t1)/1000000.0/cvGetTickFrequency();

Mat img1_rgb_freak = imread(path1,1);

Mat img2_rgb_freak = imread(path2,1);

Mat img_com_freak = Mat(Size(img1.cols*2,img1.rows),CV_8UC3);

if(show == true)

{

draw_inliers(img1_rgb_freak,img2_rgb_freak,img_com_freak,2);

imshow("freak",img_com_freak);

waitKey(0);

}

return;

}

使用

INFO freak_info;

freak(path1,path2,freak_info,true);

showInfo(freak_info);

以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

小编个人微信号 jb51ccc

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值