我正在嘗試查找圖像上某些區域的區域。MATLAB圖像處理幫助!
alt text http://img821.imageshack.us/img821/7541/cell1.jpg
例如,我要找到深大區域的左上側區域。 我想從圖像中找到任何封閉幾何圖形的區域。
我該怎麼在matlab中做到這一點。
我在網上看,我嘗試了regionprops(),但它沒有標識不同的地區。
我正在嘗試查找圖像上某些區域的區域。MATLAB圖像處理幫助!
alt text http://img821.imageshack.us/img821/7541/cell1.jpg
例如,我要找到深大區域的左上側區域。 我想從圖像中找到任何封閉幾何圖形的區域。
我該怎麼在matlab中做到這一點。
我在網上看,我嘗試了regionprops(),但它沒有標識不同的地區。
使用'imfilter'過濾您的圖片。使用'fspecial'來定義你的過濾器。然後使用活動輪廓模型來分割大對象。谷歌'主動輪廓matlab'。使用「多邊形」和麪積函數來查找封閉輪廓的面積。
要添加到hkf的答案中,您可能需要對圖像應用一些預處理,以便於處理。
我覺得你正處在降低噪音的正確軌道上。您的輪廓看起來相對容易檢測 - 也許您可以簡單地對圖像進行二值化處理,應用imdilate,imclose和imerode組合處理僞影(這主要是試驗和錯誤),然後嘗試檢測輪廓。
然後,當然,挑戰是找到適用於所有圖像的配方,而不僅僅是一個樣品。
我可以reccomand你幾個方法可以做到這一點:
一)算術均值濾波:
f = imfilter(g, fspecial('average', [m n]))
二)幾何均值濾波
f = exp(imfilter(log(g), ones(m, n), 'replicate')) .^ (1/(m*n))
C)調和平均數過濾
f = (m*n) ./ imfilter(1 ./ (g + eps), ones(m, n), 'replicate');
其中n
和m
是一個面具的大小(例如,你可以設置m=3 n=3
)
我認爲你可以使用輪廓方法來解決這個問題。最後,您可以藉助輪廓數據提取功能進行提取。研究,你會在Mathworks網站上看到它。
我嘗試了一些代碼從mathworks網站主動輪廓。其中一些有效,但我無法獲得任何區域,而且這對小區域無效! 我想先裁剪圖片,爲了消除任何噪音,然後我用imadjust調整一點對比度。 我需要任何例子來更好地理解它。 – Beho86 2010-06-12 21:13:01
您應該能夠使用[C,h] =輪廓(...)提取輪廓的x和y座標。請參閱http://www.mathworks.com/access/helpdesk/help/techdoc/ref/contour.html 然後查看此鏈接以查找該區域:http://www.mathworks.com/access/ helpdesk/help/techdoc/ref/polyarea.html 像任何其他圖像處理方法一樣的主動輪廓並不完美。您將不得不嘗試模型的參數以滿足您的需求。另外一個好主意是在主動輪廓方法上進行文獻搜索,並在MATLAB中自己實現它們。它應該很有趣! – hkf 2010-06-14 15:58:45