自动对比度的代码如下,如何修改这段代码来修改自动对比度
for i=1:r
for j=1:c
a = I(i,j); // Original Image intensity value assign to a
if a<alow
a1=amin;
elseif a>ahigh
a1=amax;
else
a1 = amin +((a - alow) * ((amax - amin) / (ahigh - alow)));
end
J(i,j) = a1;
end
end
如果我说对了,你想要拉伸亮度水平,这样它的最小值将被映射到0,它的最大值将被映射到255(注意,你的第2个if
将永远不会被使用)。
代码应该是:
mInputImage = imread('SomeGrayScaleImage.png');
mInputImage = double(mInputImage) / 255;
inputImageMinVal = min(mInputImage(:));
inputImageMaxVal = max(mInputImage(:));
mOutputImage = (mInputImage - inputImageMinVal) / (inputImageMaxVal - inputImageMinVal);
。
这里是自动对比代码。
你必须用K=255和你的图像
来调用这个函数 function I=autoContrast(I,K)
if length(size(I))==3
I=rgb2gray(I);
end
[r,c]=size(I);
amin=0;
amax=K-1;
alow=min(min(I));
ahigh=max(max(I));
for x=1:r
for y=1:c
a=I(x,y);
a1=amin+(a-alow)*((amax-amin)/(ahigh-alow));
I(x,y)=a1;
end
end