背景太過雜亂,導致濾波的時候可能把輪廓濾斷

試過canny邊緣檢測,findcontour,區域生長,都很難把輪廓精確提取出來

求大佬們抽空相助!


這個感覺做區域分割可能會比邊緣檢測好做一些,因為存在多個灰度和紋理特徵均勻的區域,而圖像本身邊緣並不清晰連貫。

可以嘗試考慮結合以下思路:

1.各向異性擴散濾波,或者雙邊濾波,或curvature濾波,一定程度上保邊去噪。中值濾波對那種雜訊可能也有效果,多嘗試。

2.subpixel演算法進行局部聚類形成subpixel塊,聚類塊的目標大小不能太小。

3.對subpixel塊再進行聚類(簡單的就是通過計算subpixel塊的統計特徵,根據灰度紋理統計特徵的相似性使用fuzzy c means clustering進行聚類;複雜一點則可結合概率圖,比如馬爾科夫隨機場,將subpixel塊之間的位置關係建模進去,可以做到聚合結果空間連貫性更高)。

4.聚類完之後,背景區域的subpixel塊之間因為紋理和平均灰度相似性高,應該會聚為一類,簡單後處理可以去除背景區域,留下前景。

最後總結一下思路,利用背景區域的紋理特徵,應該是很好的切入點,因為背景紋理相比於其他區域特徵區別大。


先把數據特效分析好,再有針對性地找方法。

一方面你這圖裡想提取的物體是啥?是有統一的外形?或者有沒有什麼一致性特徵,或者和背景差別明顯的特徵?這些特徵能不能考慮直接用(當作模版)用於提取輪廓或者增強一下再使用深度模型?

另一方面,為啥會有背景雜訊?產生的原因是啥?有啥特徵?是高斯白還是有特定分布?從空間域或者頻域能不能儘可能抑制/濾波一下。

別啥啥啥都想著上深度模型,能用rule的就不BB,有時候越暴力越好。


如果你樣本多,那你用用深度學習(開玩笑的)

只要能解決問題的,我感覺不管用什麼方法都可以,傳統演算法並不比深度學習差。你這背景噪點太多,傳統提取邊緣的演算法的濾波器太小了,會讓噪點產生邊緣,所以有個辦法就是把邊緣檢測的濾波器變成適合檢測這種噪點邊緣的。還有一個方法就是去噪,你會因為你這個裡面噪點的分布比較統一,可以通過以點為中心去噪。當然肯定去不完全,最後個別的噪點可以通過構建一個濾波器去掉,去噪完了就可以通過邊緣檢測正常處理。


建議先用濾波把外圍的雜亂的特徵過濾掉,找到黑色邊緣,用邊緣檢測方法定位邊緣,最後嘗試在原圖通過分割的方法進行目標提取,僅供參考。


這種雜訊這麼大,頻域濾波會好很多,主要是選擇綠波方式,和形態學方法組合


樣本多直接上全卷積的深度神經質網路,問題不大的。

如果傳統做法一般可以考慮金字塔+輪廓提取。每層都做可以有效減少邊緣的不連貫。


區域紋理差別大,當分割做下試試,用Gabor提下特徵,然後分類


推薦閱讀:
相关文章