應該是大半年前了,老師帶領我做的一個項目主體部分已經(jīng)完成了,但是投入運行的時候有一個很小的問題,就是需要在圖像中知道一個圓形區(qū)域的邊緣,由于這個圓形區(qū)域的半徑是非遞減隨時間變化的而且圓心是固定的.當時解決的辦法是找到變化的規(guī)律,然后將半徑設置成隨時間變化即可.不過此方法治標不治本,萬一中途實際運行過程中發(fā)生了暫停類似時間,而程序還在計時,會有不同步的問題發(fā)生.后來希望由程序依托于圖像自動找到變化的半徑來解決這個問題,不過盡管最終識別的結(jié)果還算理想,但是考慮到系統(tǒng)已經(jīng)投入測試運行了,修改的過程涉及到多次的測試過程,而且發(fā)現(xiàn)設置為隨時間自動變化的效果還挺不錯,就沒把這段代碼給嵌入進實際運行的系統(tǒng)中了.
半年過去了,當我回顧這段代碼的時候,發(fā)現(xiàn)了以前寫代碼的一些問題,同時也希望再了解一下這個算法,下面就從要解決的問題和項目中的代碼中窺探過去.
要識別的原圖:
原圖
黃線為需要識別出來的圓
可能這樣的圖會比較好識別,但是如果是下面的這幾副可能就沒那么好識別了:
當時使用過大律法閾值判定,OpenCV的霍夫圓變換但效果都不是我想要的.
而且圖中需要識別出來的也并非為完整的圓.
前面也說過了,這個是在測試現(xiàn)場提出來的一個需求,時間比較緊迫.可能我也沒花太多時間去找更多的方法來適應這個問題.
好,下面是具體問題: