2014-04-29 24 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