how to identify clear leaf in this image.
Show older comments
I am trying to identify greenness with the help of Tuned Tri-threshold Fuzzy Intensification Operators. I tried a lot to remove white pixels which around the edges of the final image.please help me to identify clear leaf of greenness.
Function
function out = TTFIO(image, tao, zeta)
[row col]=size(image);
%% Calculating the Membership Function
img = (image - min(image(:)))./(max(image(:)) - min(image(:)));
%% Applying Intensification Operators
for j = 1:row
for k = 1:col
if img(j,k) <= tao
enhanced(j,k) = 2*img(j,k)^2;
else
enhanced(j,k) = 1-2*(1-img(j,k))^2;
end
end
end
%% Tuning the Output
out=((enhanced).^(tao+zeta));
Read Image
zeta=.5;
x=im2double(imread('corn seedling wheat straw on sunny day.jpg'));
x=imresize(x,[256 256]);
figure; imshow(x);
img1=rgb2hsv(x);
H=img1(:,:,1).*255;
S=img1(:,:,2).*255;
V=img1(:,:,3).*255;
H( (H<5) | (H>150)) = 0;
H(H>65&H<80&S>2&10&V>150) = 0;
figure,imshow(uint8(S));
% x_R=x(:,:,1); x_G=x(:,:,2); x_B=x(:,:,3);
tao_R=.9; tao_G=.8; tao_B=.5;
R=(TTFIO(H,tao_R,zeta));
G=(TTFIO(S,tao_G,zeta));
B=(TTFIO(V,tao_B,zeta));
out=cat(3,R,G,B);
t=graythresh(out);
BW=im2bw(out,t);
figure,imshow(out)
BW=bwareaopen(BW,175);
BW = imclearborder(BW);
figure;
imshow(BW)

this is the original image

final result.
Accepted Answer
More Answers (0)
Categories
Find more on Image Arithmetic in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!