how to remove shadow from the rgb image

조회 수: 15 (최근 30일)
syed salma banu s
syed salma banu s 2018년 12월 29일
댓글: Keerthi D 2020년 7월 2일
Hi,
I am doing my project in leaf disease detection and classification. i have to do background removal for image preprocessing .but still i got the shadow of leaf in the image. i am struggling to remove the shadow .please can anyone suggest me the appropriate solution .
This is my initial iimage
sample1.JPG
my output image
Screenshot (59).png
and my code to remove the background
I=imread('sample1.jpg');
imshow(I);
I=im2double(I);
img=rgb2gray(I);
imshow(img);
size(img);
mask = zeros(size(img));
mask(25:end-25,25:end-25) = 1;
maskimg=activecontour(img,mask,300);
imshow(maskimg);
maskimg=im2uint8(maskimg);
maskimg=imcomplement(maskimg);
imshow(maskimg);
maskimg=im2double(maskimg);
channel1 = maskimg(:,:,1);
channel2 = maskimg(:,:,1);
channel3 = maskimg(:,:,1);
actualImg = cat(3,channel1,channel2,channel3);
imshow(actualImg);
res=imadd(I,actualImg);
imshow(res);
res1=rgb2lab(res);
imshow(res1);
res1=imadd(I,res);
imshow(res1);

답변 (2개)

Image Analyst
Image Analyst 2018년 12월 29일
Use the Color Thresholder on the Apps tab of the tool ribbon. Then fill holes and take the largest blob. Erase the background, if you want to. See attached m-file.
0000 Screenshot.png
  댓글 수: 5
Damodar Reddy Ch
Damodar Reddy Ch 2019년 6월 14일
Sir, how to get the backgroung part (apart from leaf) in white color.
Image Analyst
Image Analyst 2019년 6월 14일
You can say
out = rgbImage % Initialize output image.
mask3d = cat(3, mask, mask, mask); % Create mask
out(~mask3d) = 255; % Apply the mask.
Now out should have white everywhere outside the leaf.

댓글을 달려면 로그인하십시오.


Keerthi  D
Keerthi D 2020년 6월 29일
The complex leaf image background is first removed to get a clear leaf sample before further processing. So l using here background elimination mathod. Algorithm is, 1.Manually select ROI in I and store it in R. 2.generate binary mask. 3. set J to I. 4.for each pixel (m,n)in I 5. if pixel(m,n) is in R 6. set J(m,n) to 1. 7. else 8. Set J(m,n) to 0. 9.compute complement J'. 10.set I to I+J'. 11.Crop I to eliminate unwanted image parts. Please send me it's Matlab code. My email ID : keerthidev36@gmail.com </matlabcentral/answers/uploaded_files/323605/Screenshot_20200629_165725.jpg>
  댓글 수: 7
Keerthi  D
Keerthi D 2020년 7월 2일
Okey. How to remove shadow on the leaf image
Keerthi  D
Keerthi D 2020년 7월 2일

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Agriculture에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by