第20集 图像轮廓匹配

wKioL1PseuKietuQAAHNJprsbMU804.jpg

图像轮廓匹配时减少和消除图像缩放,平移,旋转造成的影响

计算普通矩和中心矩(cvMoments)

通过普通矩和中心矩计算hu矩(cvGetHuMoments)

可直接用cvMatchShapes比较两幅图像的相似度

程序:

wKioL1PsewbjxmN9AADu2rKsZ6w530.jpg

wKioL1PsewaT7TkqAADzB9BAGWw705.jpg

wKiom1Psee6g60jhAADeOl61R0Y997.jpg

wKioL1PseweBztbWAADoe8p8ZDM517.jpg

wKiom1Psee-TNaybAADxjCyuYiY029.jpg

#include "cv.h"
#include "cxcore.h"
#include "highgui.h"
#include <iostream>
int MatchShapes(int argc,char** argv)
{
IplImage* src=cvLoadImage("e:\\picture\\6.jpg",0);
IplImage* src2=cvLoadImage("e:\\picture\\6666.jpg",0);
cvNamedWindow("src");
cvNamedWindow("src2");
cvShowImage("src",src);
cvShowImage("src2",src2);
double result=cvMatchShapes(src,src2,1);  //方法1值越小匹配度越高
std::cout<<"result is "<<result<<std::endl;
cvWaitKey(0);
cvDestroyWindow("src");
cvDestroyWindow("src2");
cvReleaseImage(&src);
cvReleaseImage(&src2);
return 0;
}


你可能感兴趣的:(opencv,轮廓匹配)