如何將下圖中孔的區域精確的找出來?用圖像處理的方法

使用閾值分割,或者邊緣提取,都不是特別精確,但是要求是要誤差不可以超過5毫米,而且實際環境複雜

原圖

(上圖)閾值分割後的(還用了腐蝕膨脹),閾值是自己選定的,graythresh獲得的閾值並不好,我希望最好是不用調整閾值的。

(上圖)區域生長

閾值分割或者區域增長劃分後的區域為紅色框框里的,但是我實際想要的是藍色框里區域。求各位大神,可以用交互(太費神的交互,比如描出來,就算了)。。。

實驗時,光線可以控制,實際情況會有偏差。


可以交互的話可以試試snake...

http://web.cs.ucla.edu/~dt/papers/ijcv88/ijcv88.pdf

兩萬多引用你值得試試。


5mm大概是幾個像素,說下

先區域生長你的紅框,然後在紅框里在找


如果光線可以控制,你發的這圖控制的也太差了。。。這麼精確的要求就不能弄個好一點的照明條件么。。。然後opencv隨便提取提取就出來了

要是光線不可控才坑爹呢。。。做過一個識別人臉面部表情的,光照條件不可控。。。那叫一個不可實現。。。


試了一下本科畢設時候用的一種方法,基於活動輪廓模型的區域生長法Localizing Region-Based Active Contours。效果如下,不知能否滿足題主要求。

原圖:

分割後:

只需要設定一個初始形狀,就可以生長迭代運行了,初始越接近目標分隔形狀,迭代次數就會少一些,具體的演算法現在沒有做這個領域就沒有深究了。


圖像處理的前提就是有個好圖像。

如果你肯把寫演算法的時間拿出那麼1/50。

學一下打光,我想你就不會有這種問題了。

給你兩個連接看看吧。

http://dwz.cn/Visionpro

http://dwz.cn/qscgyjmko

題主這種情況比較符合工業視覺。就是拍一個工件,找區域。工業上這一步之後一般是定位或者判斷工件好壞等其它操作

工業上的成像質量我不想說了,一般有過體會的都知道,沒有體會的說了也無法想像。

我給的兩個鏈接里的大部分圖都是打光不好絕對做不了的項目。

工業視覺需要一整套的相機,光源方案。

我剛到公司的時候,公司視覺剛起步,大家不重視打光,結果項目做起來又費勁,效果還很差。痛的越刻苦,感觸越深。

後來大家就重視打光了,點光源,紅光,藍光,綠光,條光,環形光,濾光片,暗視野,明視野。。。。

工業上都有相應的解決方案。

回到題主的問題,

題主的情況,光源的亮度必須提高,光源需要在物體正上方,和相機放一起。為了不產生陰影,需要環形光,或者從各個角度打光達到環形光的效果。當然環形光的大小和距離需要設置好。其實最好是非同軸漫射光或者同軸漫射光。


考慮改善打光,對比度做高點跟容易做出來你要的精度


可以打光上想想辦法


我第一張都沒找出來


如果像素不太低的話,可以考慮一下頻域的方法?


推薦閱讀:

萌新初入手圖像處理,想知道feature map 和activation map分別是指什麼?
當前主流的圖像分割研究方向都有哪些?
幾乎無C/C++基礎的前提下,如何去學習OpenCV?
運算量很大的圖像處理演算法有什麼意義呢?
做圖像處理的研究生除了要學習MATLAB外,還要學習什麼編程語言,利用什麼編程軟體?謝謝回答。謝謝?

TAG:圖像處理 | MATLAB | OpenGL | OpenCV |