Separating vegetation from bare soil
3 次查看(过去 30 天)
显示 更早的评论
I need to separate the vegetation pixels from bare soil on a thermal image. I got a NDVI map which can be used to distinguish the areas where vegatation is present and I have to find a threshold value on the NDVI map that separates bare soil from vegetation and and by using this threshold value, I need to perfom a mask on the thermal image finally. I do not have much Matlab knowledge and I am sorry for my question but does anyone know how to perfom this in Matlab? I can attach my NDVI map.
2 个评论
KALYAN ACHARJYA
2019-7-26
编辑:KALYAN ACHARJYA
2019-7-26
Please do attach, alos it would be help to answer, if you mentioned, what you have? and what you want?
采纳的回答
KALYAN ACHARJYA
2019-7-26
编辑:KALYAN ACHARJYA
2019-7-26
Which are green pixels, read about RGB color model, based on that you may distinct the color of the pixel till some extent.
image1=imread('NGRDI.png');
th=8; %Chnage as per your requirements
[rows colm]=size(image1);
for i=1:size(image1,1)
for j=1:size(image1,2)
if (image1(i,j,2)-th)>image1(i,j,1) && (image1(i,j,2)-th)>image1(i,j,3)
image1(i,j,1)=0;
image1(i,j,2)=250; % Choose any value 0-255, just represents color of planes
image1(i,j,3)=250; % Choose any value 0-255, just represents color of planes
end
end
end
imshow(image1);
I dont think there is any fixed threshold value (greenary veg and soil mixed up), which distinguish soil or veg, try with different th values, which fit best as per your desired results, you may consider.
There are number od ways you can do color thresholding, this is not efficients (because of loops), you get the idea, how it works easily, then you can implement in other ways.
Good Wishes!
2 个评论
KALYAN ACHARJYA
2019-7-26
Already vegetaion pixels are removed from the image (filled by cyan clolor).
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!