匹配_尋對號

來源:互聯網
上載者:User

有段時間沒寫日誌後了,上傳一個符合代碼,不過這代碼有點問題

// 匹配法_尋對號.cpp : 定義控制台應用程式的進入點。///*=========================================================================名稱:匹配_尋對號時間:2013.08說明:=========================================================================*/#include "stdafx.h"#include "cv.h"#include "highgui.h"#include "cxcore.h"//-------------------匹配函數------------------//double OpencvChinaCom_getSimilarity(IplImage* src1,IplImage* src2){CvMemStorage* mem1,*mem2;//聲明兩個記憶體空間mem1 = cvCreateMemStorage();//初始化記憶體空間mem2 = cvCreateMemStorage();CvSeq* contours1,*contours2;//尋找輪廓cvFindContours(src1,mem1,&contours1,sizeof(CvContour),CV_RETR_LIST);cvFindContours(src2,mem2,&contours2,sizeof(CvContour),CV_RETR_LIST);double match = cvMatchShapes(contours1,contours2,3);//匹配函數//釋放記憶體空間cvClearMemStorage(mem1);cvClearMemStorage(mem2);return match;}//-------------------主函數-------------------//int _tmain(int argc, _TCHAR* argv[]){//----載入待處理映像與出去頭部大小不一樣部分----//IplImage *src1 = cvLoadImage("./1.jpg", 0);//載入時強制轉為灰階圖片IplImage *src3 = cvLoadImage("./3.jpg", 0);CvSize size;size.width = src1->width;size.height = src1->height - src3->height;IplImage *dst1 = cvCreateImage(size, src1->depth, 1);cvSetImageROI(src1, cvRect(0, src3->height, src1->width, src1->height-src3->height));cvCopy(src1, dst1);cvResetImageROI(src1);//-------載入參考圖片--------//IplImage *src2 = cvLoadImage("./2.jpg", 0);IplImage *dst2 = cvCreateImage(cvGetSize(src2), src2->depth, 1);cvThreshold(src2, src2, 100, 255, CV_THRESH_BINARY_INV);//-------擷取待匹配圖片--------//for(double x=0; cvRound(x)<=(dst1->height - src2->width); x=x+src2->width){for(double y=0; cvRound(y)<=(dst1->height - src2->height); y=y+src2->height){cvSetImageROI(dst1, cvRect(x, y, src2->width, src2->height));cvCopy(dst1, dst2);cvThreshold(dst2,dst2,100,255,CV_THRESH_BINARY_INV);//初始化src1,設定對比參考cvResetImageROI(dst1);//-----------調用匹配函數來對比並輸出傳回值------------//double similarity = 0;similarity = OpencvChinaCom_getSimilarity(src2,dst2);printf("匹配結果 %f\n" , similarity);}}printf("結果說明  匹配結果中 值越小的  越與源映像相似\n");//釋放記憶體cvReleaseImage(&src1);cvReleaseImage(&src2);cvReleaseImage(&src3);cvReleaseImage(&dst1);cvReleaseImage(&dst2);cvReleaseImage(&dsr3);return 0;}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.