簡體   English   中英

匹配輪廓並使用OpenCV,EmguCV或其他替代庫對其進行平滑處理

[英]Matching contours and smoothing them using OpenCV, EmguCV or other alternative library

我是使用OpenCV和EmguCV的初學者。 我在尋找輪廓時遇到兩個問題(請參見下圖)。 問題A是關於不同輪廓如何相互匹配的問題。 問題B是關於如何獲得更平滑的輪廓的。

在此處輸入圖片說明

要檢測我正在使用的輪廓:

FindContours(Emgu.CV.CvEnum.CHAIN_APPROX_METHOD.CV_CHAIN_APPROX_NONE,Emgu.CV.CvEnum.RETR_TYPE.CV_RETR_LIST);

有人可以提供一些建議嗎?

非常感謝!!

骨架化是您第一個問題的解決方案。 請注意,有幾種骨架化的樣式,因此,如果嘗試的一種沒有產生所需的輸出,請嘗試另一種。

對於問題B,如果不放大圖像(人為增加其尺寸),則不可能使輪廓更平滑。 至於使輪廓以4個連接連續(因此對角線不計算在內),可以修改找到的輪廓的鏈碼。

CV_CHAIN_APPROX_NONE絕對存儲所有輪廓點。 也就是說,輪廓的任意兩個后續點(x1,y1)和(x2,y2)將是水平,垂直或對角線鄰居 ,即max(abs(x1-x2),abs(y2-y1)) == 1。

對於每個輪廓,請遍歷其鏈碼數組。 如果在兩個后續點之間的坐標中遇到對角線變化,請在鏈代碼數組中插入一個新點,以根據自己的喜好“填充對角線”。 例如:

    xxx                    becomes     xxxx          or   xxx
       xxx                                xxx               xxxx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM