2013-04-29 98 views
3

雖然我使用R相當多,但是剛開始一個圖像分析項目,我正在使用EBImage包。我需要從圓形/橢圓形圖像中收集大量數據。內置功能computeFeatures給出最大和最小半徑。但是我需要計算所有的半徑。尋找圖像邊界

這是代碼。我已經讀過這個圖像,被限制和填充。

actual.image = readImage("xxxx") 
image = actual.image[,2070:4000] 
image1 = thresh(image) 
image1 = fillHull(image1) 

由於有圖像中的幾個對象,我用下面的標記

image1 = bwlabel(image1) 

我生成使用功能的內置函數

features = data.frame(computeFeatures(image1,image)) 

現在,computeFeatures給人最大半徑和最小半徑。我需要計算出的所有對象的所有半徑用於我的分析。至少如果我得到所有對象的邊界座標,我可以通過其他代碼計算半徑。

我知道圖像存儲爲矩陣,並可以找出一個複雜的方式來找到邊界,然後計算半徑。但是,想知道是否有更優雅的方法?

+0

你不就是想爲每個功能的's.radius.mean'價值? – 2013-04-29 09:11:38

+0

不,我不想說卑鄙。我想要他們計算的所有值來計算均值。現在,對於每個對象,我可以獲得最小,最大和平均值。但是,在內部,他們必須計算他們計算的100或1000半徑,這意味着最小值和最大值。我想要的是他們用來計算最小值,最大值和平均值的所有半徑。 – Murthy 2013-04-29 10:00:00

回答

1

您可以嘗試提取每個對象+一些填充,並繪製每個對象的x和y軸強度輪廓。強度分佈只不過是行/列的總和,可以使用rowSumscolSums來計算R

然後,通過將每個強度分佈分成兩半並計算最接近的最小值,您可以找到它落在哪裏。

也許一個例子將有助於明確的東西: enter image description here

希望這是有道理的