图像阴影去除方法-MATLAB
如何去除简单图像的阴影?
1.将图像转换到HSV空间,利用明度和饱和度选中阴影区域像素,
2.调整阴影为区域像素白色,(可根据背景色修改HSV的取值,修改为不同色调和亮度)
HSV色差空间对照表
3.转回RGB空间
I=imread('yinying.jpeg');
subplot(121),imshow(I),title('原图')
HSV=rgb2hsv(I);h=HSV(:,:,1);v=HSV(:,:,3);s=HSV(:,:,2);
[width,height]=size(h);
for i=1:width
for j=1:height
if(v(i,j)<0.4&&0.2<h(i,j)<0.9)%阴影区域像素选中
s(i,j)=0;
h(i,j)=0;
v(i,j)=1;%调整阴影为白色,可根据背景色修改HSV的取值,修改为不同色调和亮度
end
end
end
HSV(:,:,1)=h;HSV(:,:,3)=v;HSV(:,:,2)=s;
I=hsv2rgb(HSV);
subplot(122),imshow(I),title('去除影阴');
支持可以关注我哦,持续分享编写的代码。