形态商数图像(MQI)是一种用于照明标准化的方法,它在[-1 - ]中提出:
在Retinex理论[-2-]中,图像I(x,y)可以建模为反射函数R(x,y)和亮度函数L(x,y)的乘积:
I(x,y)= R(x,y)L(x,y)
与图像场景中物体特征有关的反射率R(x,y)取决于场景表面的反照率,而亮度L(x,y),
与落在观察场景上的照明量有关,由照明源确定。由于反射率R(x,y)仅与物体中的物体有关
在图像中,很明显,当成功估计时,它可以是输入图像的照明不变表示。因此,为了获得照明不变
在图像表示中,通常首先估计图像的亮度L(x,y)。然后,将反射率表示为图像I(x,y)与其亮度L(x,y)的商,如下所示:
R(x,y)= I(x,y)/ L(x,y)
在基于MQI的照明归一化方法中,通过将具有固定大小模板的形态学关闭操作应用于图像I(x,y)来估计亮度L(x,y)。
通过这种方法,[-1-]得到了这个结果,但我的实现结果是:both results
这是我的MATLAB函数:
function mytest1
for i=1:4
img= imread(strcat(num2str(i),'.bmp'));
cimg= gsClose(img, 7,7);
mqi= histeq(img./cimg);
subplot(2,4,i), imshow(img);
subplot(2,4,4+i), imshow(mqi);
end
end
function img= gsClose(img, x, y)
img= uint8(gsDilation(gsErosion(img,x,y),x,y));
end
function img= gsErosion(img, x, y)
img=ordfilt2(img,1,ones(x,y),-ones(x,y));
end
function img= gsDilation(img, x, y)
img=ordfilt2(img,9,ones(x,y),ones(x,y));
end
我不知道,哪里出错了!请指导我。我也上传了图片: download
[ - 1-] J. Wang,L。Wu,X。他和J. Tian。一种新的光照不变人脸识别方法。在Proc。国际创新计算大会,2007:139-142
[ - 2-] E. H. Land和J. J. McCann。亮度和Retinex理论。美国光学学会杂志,61(1):1-11,1971。
答案 0 :(得分:1)
实施是正确的。我只是采取了错误的方式来显示最终图像。 我在MATLAB中使用了imshow方法:
imshow(image)
但我应该使用:
imshow(image, [])