I have this code that detects vegetation from a picture. i want to remove it. how should i do that?
1 次查看(过去 30 天)
显示 更早的评论
Image1 = im2double(imread('image\8.jpg'));
g=rgb2gray(Image1);
[row column page] = size(Image1)
mask = Image1(:,:,2) > Image1(:,:,1) & Image1(:,:,2) > Image1(:,:,3);
Image2 = Image1 .* mask(:,:,[1 1 1]);
figure,imshow(Image2);
title('light green');
mask = Image2(:,:,2) + 20 > Image2(:,:,1) & Image2(:,:,2) + 20 > Image2(:,:,3);
Image3 = Image2 .* mask(:,:,[1 1 1]);
figure,imshow(Image3);
title('dark green');
0 个评论
采纳的回答
Image Analyst
2016-2-3
See my color segmentation demos in my File Exchange http://www.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A31862
Or else search on the tag "leaf".
Or else use imseggeodesic(). Look up examples in the help for it.
2 个评论
Image Analyst
2016-2-3
Set a breakpoint on the call to menu(). Chances are you clicked somewhere and that popup dialog box then went underneath whatever you clicked on.
更多回答(1 个)
Walter Roberson
2016-2-3
Remember when you im2double() you change the data to the range 0 to 1. Your value +20 suggests you are still thinking in terms of uint8 values in the range 0 to 255. If so then the corresponding increment in 0 to 1 range would be 20/255 rather than 20.
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!