HUX布斯
2019-07-29 16:03:48
如何使用OpenCV檢測(cè)簡(jiǎn)單的幾何形狀我有這個(gè)項(xiàng)目,我需要(在iOS上)檢測(cè)圖像內(nèi)的簡(jiǎn)單幾何形狀。在搜索互聯(lián)網(wǎng)后,我得出結(jié)論,最好的工具是OpenCV。事情是,直到兩個(gè)小時(shí)前,我不知道OpenCV是什么,我甚至從未做過(guò)任何涉及圖像處理的事情。我的主要經(jīng)驗(yàn)是JS / HTML,C#,SQL,Objective-C ......我從哪里開(kāi)始呢?我已經(jīng)找到了這個(gè)答案,我能夠消化并通過(guò)閱讀其他東西,我知道OpenCV應(yīng)該返回帶有點(diǎn)/角的形狀數(shù)組,這是真的嗎?它還將如何代表一個(gè)圓圈或半圓圈?還有形狀方向呢?你知道任何可以展示類似功能的Demo iOS項(xiàng)目嗎?
3 回答

揚(yáng)帆大魚(yú)
TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超9個(gè)贊
答案取決于其他形狀的存在,噪聲水平(如果有)和您想要提供的不變性(例如旋轉(zhuǎn),縮放等)。這些要求不僅將定義算法,還將定義預(yù)處理階段以提取特征。
上面提到的模板匹配在形狀沒(méi)有旋轉(zhuǎn)或縮放以及周圍沒(méi)有類似形狀時(shí)效果很好; 換句話說(shuō),它在模板所在的圖像中找到最佳翻譯:
double minVal, maxVal;Point minLoc, maxLoc;Mat image, template, result; // template is your shapematchTemplate(image, template, result, CV_TM_CCOEFF_NORMED);minMaxLoc(result, &minVal, &maxVal, &minLoc, &maxLoc); // maxLoc is answer
幾何散列是一種在旋轉(zhuǎn)和縮放方面獲得不變性的好方法; 這種方法需要提取一些輪廓點(diǎn)。
廣義Hough變換可以處理不變性,噪聲并且具有最少的預(yù)處理,但是比其他方法更難實(shí)現(xiàn)。OpenCV具有線條和圓形的變換。
在形狀數(shù)量有限的情況下,計(jì)算力矩或計(jì)算凸包頂點(diǎn)可能是最簡(jiǎn)單的解決方案:openCV結(jié)構(gòu)分析
添加回答
舉報(bào)
0/150
提交
取消