3 回答

TA貢獻1798條經(jīng)驗 獲得超7個贊
首先,我發(fā)現(xiàn)您的初始方法相當不錯,我可能會嘗試相同的方式(我特別欣賞行/列投影以及直方圖,這是一種被低估的方法,通常在實際應用中非常有效)。
但是,由于您希望采用更健壯的處理管道,因此以下建議可以完全自動化(同時通過ImageMagick消除去偏斜):
特征提?。和ㄟ^廣義霍夫變換提取圓。正如其他答案所建議的那樣,您可以使用OpenCV的Python包裝器。檢測器可能會漏掉一些圓圈,但這并不重要。
使用圓心應用魯棒的對準檢測器。您可以使用此處所述的Desloneux無參數(shù)檢測器。不用擔心數(shù)學,該過程很容易實現(xiàn)(您可以在線找到示例實現(xiàn))。
通過選擇方向來消除對角線。
找到直線的交點以獲得點。您可以通過假設這些相交的理想固定位置來將這些坐標用于偏斜校正。
該管道可能會占用一些CPU資源(尤其是步驟2,該過程將繼續(xù)進行某種貪婪的搜索),但是它應該非常健壯和自動。

TA貢獻1863條經(jīng)驗 獲得超2個贊
正確的方法是對圖像使用Connected Component分析,將其分割為“對象”。然后,您可以使用更高級別的算法(例如,在分量質(zhì)心上進行霍夫變換)來檢測網(wǎng)格,并通過查看網(wǎng)格包含的活動像素數(shù)來確定每個單元的開/關(guān)狀態(tài)。

TA貢獻1864條經(jīng)驗 獲得超6個贊
如果您將分量質(zhì)心的位置視為輸入到hough變換中的數(shù)據(jù)點(而不是單個像素)的位置,則會對單元格所在的行進行非??焖俚摹暗头直媛省狈治?。這也可以刪除需要預先校正。另一種選擇是使用Ransac來確定網(wǎng)格的布置。從像素級升級到組件級后,事情將變得更加直觀,您基本上可以輕松地提出強大的解決方案。
添加回答
舉報