我想使用matlab中的公式计算自适应图像对比度
Ca(i,j)=A*C(i,j)+(1-A)*Imax(i,j)-Imin(i,j)
,其中
C(i,j)=Imax(i,j)-Imin(i,j)/Imax(i,j)+Imin(i,j)
A=(Std/128)^y
C(i,j)表示图像像素(i,j)的对比度,Imax(i,j)和Imin(i,j)表示(i,i)的局部邻域窗口内的最大和最小强度。 j),窗口大小分别为
3.(Imax(i, j ) − Imin(i, j ))
是指归一化为[0,1]的局部图像梯度。“A”是局部对比度和基于文档图像统计信息控制的局部梯度之间的权重。“Std”表示文档图像强度标准偏差,'y'是预定义的参数,参数'y'应设置为1。
答案 0 :(得分:0)
使用im2col matlab函数,您可以将每个像素邻域重新排列为新DxN矩阵的列,其中D是邻域的像素数,N是图像的像素数。所以,你可以这样做:
%Assuming you have your image in the I variable,
%and [Dr,Dc] is the neighborhood size
[Nr,Nc] = size(I);
Inew = im2col(padarray(I,floor([Dr,Dc]/2),NaN),[Dr Dc]);
Imax = reshape( max(Inew,[],1), [Nr,Nc] );
Imin = reshape( min(Inew,[],1), [Nr,Nc] );
有了这个,您应该能够正常计算C和Ca.
此致