當前位置:編程學習大全網 - 源碼下載 - 如何使用OPENCV的matchShapes進行輪廓匹配?

如何使用OPENCV的matchShapes進行輪廓匹配?

主步驟1。讀取壹張圖片,二值化。2.進行形態學處理,減少孔洞等次要特征,保持其主要特征。3.執行邊緣提取。4.匹配形狀的輪廓得到其匹配值,從而判斷是否為同壹形狀。

下面是演示代碼:

#包括

#包含" opencv2/opencv.hpp "

usingnamespacestd

usingnamespacecv

intmain()

{

Matk=imread("E:/TestGit/8.jpg ",0);

Matf

matk 1 = im read(" E:/test git/9 . jpg ",0);

matf 1;

threshold(k,f,50,255,THRESH _ BINARY);//將圖像二值化

threshold(k1,f1,50,255,THRESH _ BINARY);

matcloserect = getStructuringElement(MORPH _ RECT,Size(3,3));//生成結構運算符

morphologyEx(f,f,MORPH_OPEN,close rect);

morphologyEx(f1,f1,MORPH_OPEN,close rect);//執行形態學運算。

Matdst=Mat::zeros(k.rows,k.cols,CV _ 8uc 3);

matdst 1 = Mat::zeros(k 1 . rows,k1.cols,CV _ 8uc 3);

vector & gtw,w 1;

vectorhierarchy,等級1;

findContours(f,w,hierarchy,RETR_CCOMP,CHAIN _ APPROX _ SIMPLE);//選擇大綱元素

findContours(f1,w1,hierarchy1,RETR_CCOMP,CHAIN _ APPROX _ SIMPLE);

FileStoragefs("f.dat ",file storage::WRITE);

滿量程

intidx = 0;

doubleffff=matchShapes(w[0],w1[0],CV_CONTOURS_MATCH_I3,1.0);//執行輪廓匹配

標準::cout

系統(“暫停”);

return0

}

這樣,我們得到的輪廓邊緣提取和匹配,滿足了需要。不同的運算符有不同的匹配運算符方法。

  • 上一篇:深圳順德旅遊景點深圳順德旅遊景點圖片
  • 下一篇:用友U8報錯。
  • copyright 2024編程學習大全網