1

我是 Matlab 的新手。我有一张图片,其中包括一座建筑物、一个人、一条小河和一些树木。我需要对绿色带设置阈值(我猜)以检测具有侵蚀膨胀等的树木。但是,我似乎什至无法制作图像颜色的直方图。我认为图片中的所有其他对象也有一些绿色(我使用了 myImage(:,:,2) < 130 ),不仅是绿色,而且几乎所有其他对象都在二进制图片中(人的黑色外套、河流等)。你能告诉我一种方法吗?我想先得到一个直方图,但不知道如何使用它。

myImage = imread('myIm.JPG');

?? imhist(myImage); 不起作用。

任何帮助,将不胜感激。

如果我什至设法得到一个直方图,我怎么能用它来检测树木?我可以同时使用阈值绿色和其他颜色吗?

4

2 回答 2

0

您可能希望首先将图像转换为另一个颜色空间,例如HSV。您可以执行以下操作:

myImage = imread('myIm.JPG');
hsv_myImage = rgb2hsv(myImage);
imhist(hsv_myImage(:,:,1));         %just look at the hue component of the image

然后您的直方图将指示所有不同的色调。

于 2011-03-06T16:15:59.943 回答
0

使用 matlab 中的 hist() 函数获取彩色图像

于 2013-05-29T06:38:49.287 回答