MATLAB 线性动态范围调整
理想中的效果
实际中的效果。。。。。。。。。。。。。。。
我吐了,你们呢!!!!!!!!!!!!!
实现代码
clear all
clc
close all
I=imread('p1.jpg');
[L,R,D]=size(I);
figure(1)
subplot(1,1,1);
imshow(I);
title('原图')
IR=I(:,:,1);
IG=I(:,:,2);
IB=I(:,:,3);
fa=90;
fb=200;
for a=1:L
for b=1:R
if IR(a,b) < fa
g1(a,b)=0;
elseif IR(a,b)>=fa && IR(a,b)<fb
g1(a,b)=255*((IR(a,b)-fa)/(fb-fa));
elseif IR(a,b) >fb
g1(a,b)=255;
end
end
end
for a=1:L
for b=1:R
if IG(a,b) < fa
g2(a,b)=0;
elseif IG(a,b)>=fa && IG(a,b)<fb
g2(a,b)=255*((IG(a,b)-fa)/(fb-fa));
elseif IG(a,b) >fb
g2(a,b)=255;
end
end
end
for a=1:L
for b=1:R
if IB(a,b) < fa
g3(a,b)=0;
elseif IB(a,b)>=fa && IB(a,b)<fb
g3(a,b)=255*((IB(a,b)-fa)/(fb-fa));
elseif IB(a,b) >fb
g3(a,b)=255;
end
end
end
g(:,:,1)=g1;
g(:,:,2)=g2;
g(:,:,3)=g3;
figure(2)
subplot(1,1,1);
imshow(g);
title('线性动态范围调整')
效果有点。。。。。哈哈