3

我有兩個圖像處理問題,我正在使用Open-CV處理。如何根據顏色和大小分割對象?

  1. 識別彼此不同顏色的相似對象。
  2. 識別彼此不同大小的相似顏色的物體。

方案1和方案2的示例圖像;

Different colored

Different sized

兩個圖像有三種類型的感興趣的對象的。 (三種顏色或尺寸)

我遇到的技術包括閾值處理,然後使用像素計數侵蝕,使用RGB值進行顏色分割。

什麼是一個好的工作鏈,什麼是一個好的開始?

+0

如果你感興趣的對象是圓圈,我會查看[this](http://stackoverflow.com/questions/10404062/opencv-dot-target-detection-not-finding-all-targets-and -found-circles-are-offse/10416428#10416428),[this](http://stackoverflow.com/questions/6416117/simple-object-detection-using-opencv-and-machine-learning/6416361#6416361)和[this](http:// stackoverflow。COM /問題/ 10313602 /重塑,嘈雜的硬幣 - 到 - 一個圈表格/ 10316493#10316493)。 – karlphillip

回答

2
  1. 很明顯,使用RGB值可能是從這裏開始的最佳方式。使用函數cvSplit,它將給你三個分離的計劃B,G和R(BGR順序與OpenCV,而不是RGB)。在它們中的每一箇中,只能看到相應顏色的圓圈。

  2. 我會在這裏推薦首先用Canny算法執行邊緣檢測,在OpenCV中用cvCanny函數實現,然後用Hough算法做一個圓檢測,同樣在OpenCV中實現。如果我記得很清楚,Hough圈子的OpenCV函數將返回圓的屬性(半徑...),這將允許您根據其大小標識您的圓。 2.的另一個選項是Hit & Miss算法,使用形態學。我從來沒有用OpenCV形態學,只用Matlab。

玩得開心

+3

如果像在你的樣本圖像中那樣,你知道所有的物體都是圓形的,你可以放棄霍夫圓圈,並簡單地計算像素,因爲該區域以已知的方式與半徑成正比。 –

+0

沒錯,如果你確定圖片中只有圈子。 Soryy我已經習慣了少得多的控制計算機視覺問題^^ – CTZStef

+0

這將會是一個顆粒狀物體,它不一定是一個合適的圓圈。無論如何,在OpenCV中,我可以計算不規則斑點的像素來計算它們的大小? – Tru

2

看看cvBlob,它工作得很好,可以處理複雜的形狀。

6

對於色彩分割,你應該從RGB遠離類似的顏色不是線性相關。

作爲一個例子2相似的顏色(具有相同色調)可以具有非常不同的RGB值:

Same Hue and Very Different RGB values

這是更好的色彩空間,如LUV或HSV已經從亮度分離色彩工作。例如,您可以嘗試對LUV的U,V分量進行聚類算法。