MATLAB - 如何消除图像上的阴影背景
MATLAB - How to eliminate shadowed background on an image
我正在尝试处理图片。有一张 RGB 叶子照片,我只想提取叶子本身。
我遵循的程序是
- 我从文件中读取图像
- 转换为灰度
- 应用 5x5 中值滤波器
- 转换为 BW
如您所见,右下角的阴影贴在黑白图像上。有没有办法只 select 叶子。
I = imread(files{404});
hcsc = vision.ColorSpaceConverter;
hcsc.Conversion = 'RGB to intensity';
Ig = step(hcsc, I);
medFilt= vision.MedianFilter([f f]);
Ig = step(medFilt, Ig);
at = vision.Autothresholder;
Ibw = step(at, Ig);
我没有将其转换为灰度图像,而是将其转换为 HSV 并取其 V 部分。现在效果更好了。
I = imread(files{404});
I = rgb2hsv(I);
Ig = I(:,:,3);
medFilt= vision.MedianFilter([f f]);
Ig = step(medFilt, Ig);
at = vision.Autothresholder;
Ibw = step(at, Ig);
我正在尝试处理图片。有一张 RGB 叶子照片,我只想提取叶子本身。
我遵循的程序是
- 我从文件中读取图像
- 转换为灰度
- 应用 5x5 中值滤波器
- 转换为 BW
如您所见,右下角的阴影贴在黑白图像上。有没有办法只 select 叶子。
I = imread(files{404});
hcsc = vision.ColorSpaceConverter;
hcsc.Conversion = 'RGB to intensity';
Ig = step(hcsc, I);
medFilt= vision.MedianFilter([f f]);
Ig = step(medFilt, Ig);
at = vision.Autothresholder;
Ibw = step(at, Ig);
我没有将其转换为灰度图像,而是将其转换为 HSV 并取其 V 部分。现在效果更好了。
I = imread(files{404});
I = rgb2hsv(I);
Ig = I(:,:,3);
medFilt= vision.MedianFilter([f f]);
Ig = step(medFilt, Ig);
at = vision.Autothresholder;
Ibw = step(at, Ig);