hello,
I'm trying to eliminate non-green background from an image. You can see my below codes, I think It's working. But the thing is, after this process (or any other suggestion), I want to keep leaves as exactly in original photos without background.
Many thanks in advance.
Orjinal photo:
I want to get like this(you can see background is black, means it's removed):
al1 = imread('23.JPG'); r=single(al1(:,:,1));g=single(al1(:,:,2));b=single(al1(:,:,3));ExGreen=2*g-r-b;ExRed=1.4*r-g-b;dev=imsubtract(ExGreen,ExRed);% otsu thresholding
thres_level = multithresh(dev,1); % automatic thresholding
seg_I = imquantize(dev,thres_level);RGB = label2rgb(seg_I,'gray');RGB2 = single(bwareaopen(RGB,1000000)); %clean the areas smaller than 1million pixels
k=imfuse(al1, RGB2,'montage'); %composite of 2images
imshow(k)
Best Answer