![0000 Screenshot.png](https://www.mathworks.com/matlabcentral/answers/uploaded_files/199888/0000%20Screenshot.png)
how to remove shadow from the rgb image
21 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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](https://www.mathworks.com/matlabcentral/answers/uploaded_files/199886/sample1.jpeg)
my output image
![Screenshot (59).png](https://www.mathworks.com/matlabcentral/answers/uploaded_files/199887/Screenshot%20(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);
0 commentaires
Réponses (2)
Image Analyst
le 29 Déc 2018
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](https://www.mathworks.com/matlabcentral/answers/uploaded_files/199888/0000%20Screenshot.png)
5 commentaires
Damodar Reddy Ch
le 14 Juin 2019
Sir, how to get the backgroung part (apart from leaf) in white color.
Image Analyst
le 14 Juin 2019
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
le 29 Juin 2020
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 commentaires
Voir également
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!