2014-04-29 31 views
-1

我想知道如何使用matlab函數regionprops來執行像素值測量,根據程序的幫助,可以使用灰度圖像作爲函數的輸入但是我用下面的代碼:matlab REGIONPROPS需要I作爲輸入來計算'MinIntensity'

A=imread('siluetagris.jpg'); 
    A=rgb2gray(A); 
    imshow(A);impixelinfo; 
    s=regionprops(A,'MaxIntensity'); 
    s.MaxIntensity 

,我總是得到以下錯誤: REGIONPROPS需要我作爲輸入 計算「MinIntensity」

任何幫助將非常感激。

+0

閱讀有關地區道具的[documentation](http://www.mathworks.com/help/images/ref/regionprops.html)。圖像不是有效的輸入。您需要先對圖像進行細分/標註,並使用地區道具在標籤上進行操作。如果你只是想要一個圖像的最大值,你應該使用'max(im(:))' – Raab70

+0

這是我在你的評論後嘗試的: A = imread('siluetagris.jpg'); A = im2bw(A); A = bwlabel(A); imshow(A == 82); impixelinfo; s = regionprops(A,'MaxIntensity'); s.MaxIntensity 這清楚地使用標籤分割圖像,但程序的輸出是相同的。 –

回答

0

這裏是一個工作示例:

im=imread('peppers.png'); 
im=rgb2gray(im); 
imbw=im2bw(im); 
im_label=bwlabel(imbw); 
s=regionprops(im_label,im,'MaxIntensity'); 

注意,在文檔中存在的像素值測量的部分,這些都需要一個標籤圖像和強度圖像來計算。在那個例子之後,s.MaxIntensity應該是一個數組,每個數值對應於該區域內的最大強度。

+0

嗨,感謝你的例子,我改變它有點像這樣:im = imread('peppers.png'); im = rgb2gray(im); imbw = im2bw(im); C = bwlabel(imbw), s = regionprops(imbw,im,'MaxIntensity');我這樣做是因爲文檔說:regionprops的第一個輸入(BW, CC或L)標識I –

+0

中的區域您還可以將's = regionprops(imbw,im,'MaxIntensity');'s = regionprops(C,im,'MaxIntensity');'標籤是有用的,因爲它們爲每個區域提供唯一的標識符。更新的答案反映。 – Raab70