how to remove shadow from the rgb image

28 ビュー (過去 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 Center および File ExchangeAgriculture についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by