我需要基於連通分量算法的原理在MATLAB中實現圖像分割函數,但需要進行一些修改。這適用於非常簡單的2D圖像,背景顏色和一些不同顏色的物體。MATLAB中的圖像分割算法
這個想法是,以圖像作爲矩陣,我提供了一個工具來選擇背景顏色(它會根據每個圖像而有所不同)。然後,當選擇圖像背景的顏色值時,我必須分割圖像中的所有對象,並且結果應該是具有相同圖像大小的標記矩陣,0爲背景,並且每個對象的編號不同。
這是我的意思圖形例如:
我明白如何做到這一點的想法,但我不知道如何實現它的MATLAB。對於每個像素(矩陣位置),我應將其標記爲已訪問,然後如果該值對應於背景中的一個,則分配0,否則分配另一個值。物體可以由不同的顏色組成,所以最後我需要分割相鄰像素的組,不管它們的顏色是什麼。此外,我必須使用8連通性,以便將示例圖像的綠色對象僅計爲一個對象,而不是4個不同的對象。而且,對象應該從上到下,從左到右計數。
在MATLAB中有這樣一個簡單的方法嗎?我知道bwlabel
函數,但它僅適用於二元圖像,所以我想將其適用於我的情況。
你見過關於圖像分割的Matlab教程,http://www.mathworks.com/discovery/image-segmentation.html,具體來說我認爲Otsu方法會幫助你,更具體的看看'bwconncomp'函數 –