利用图像中物体轮廓做简单的图像匹配

来源:互联网 发布:阿里云服务器机房地址 编辑:程序博客网 时间:2024/06/07 08:27
int main(){   IplImage *mode = cvLoadImage("D:\\mode.jpg", 1);   IplImage *test = cvLoadImage("D:\\test.jpg", 1);     IplImage* bw_mode = cvCreateImage(cvGetSize(mode),mode->depth,1);   IplImage* bw_test = cvCreateImage(cvGetSize(test),mode->depth,1);   IplImage* canny_mode = cvCreateImage(cvGetSize(mode),mode->depth,1);   IplImage* canny_test = cvCreateImage(cvGetSize(test),mode->depth,1);   CvMemStorage *mode_mems=cvCreateMemStorage();   CvSeq *mode_seqs;   CvMemStorage *test_mems=cvCreateMemStorage();   CvSeq *test_seqs;   cvCvtColor(mode,bw_mode,CV_RGB2GRAY);   cvCvtColor(test,bw_test,CV_RGB2GRAY);      //model contours   cvCanny(bw_mode,canny_mode,50,60);   cvFindContours( canny_mode, mode_mems,                  &mode_seqs,sizeof(CvContour),CV_RETR_TREE);   //test contours   cvCanny(bw_test,canny_test,50,60);   cvFindContours( canny_test, test_mems,                  &test_seqs,sizeof(CvContour),CV_RETR_TREE);   double matching=cvMatchShapes( canny_test, canny_mode, CV_TM_CCORR);   cout << matching << endl;   cvNamedWindow("Mode",1);   cvShowImage("Mode",mode);   cvNamedWindow("Test",1);   cvShowImage("Test",test);   cvNamedWindow("ModeCanny",1);   cvShowImage("ModeCanny",canny_mode);   cvNamedWindow("TestCanny",1);   cvShowImage("TestCanny",canny_test);}


0 0