查看单个帖子
旧 2008-04-09, 15:32   #1
hu17889
初级会员
 
注册日期: 2008-04-02
年龄: 38
帖子: 7
声望力: 0
hu17889 正向着好的方向发展
默认 [求助]图像归一化的问题

最近开始做指纹图像的预处理,编了一个归一化的程序,但是处理后的效果很差,请各位看看
谢谢!!!

不知道什么归一化方法好?
附件中是我用的归一化公式
下面是整个程序

function DestJu = MyConsistent(SourJu,BloWide)
%归一化函数
%将SourJu矩阵归一化到矩阵DestJu,BloWide子块大小

%求块灰度期望和方差
%m,n矩阵的长宽
[m,n]=size(SourJu);
bloi=ceil(m/BloWide); %分块后,块纵坐标
bloj=ceil(n/BloWide); %块横坐标
extSourJu=SourJu;
if ceil(m/BloWide)-m/BloWide~=0 || ceil(n/BloWide)-n/BloWide~=0
extSourJu(bloi*BloWide,bloj*BloWide)=0; %扩展矩阵,使得SourJu扩展后的长宽可以整除BloWide
end

%用blkproc内建函数
mi=blkproc(extSourJu,[BloWide BloWide],'mean2');%子块期望
vi=VarJu(extSourJu,BloWide);%子块方差


%求输入子块期望的期望m0和子块期望的方差var0
m0=mean2(mi);
var0=VarJu(mi,1);

DestJu=extSourJu;%初始化
%将extSourJu矩阵归一化到DestJu矩阵中,并输出DestJu
for i=1:floor(bloi*BloWide)
for j=1:floor(bloj*BloWide)
if extSourJu(i,j)>=m0
DestJu(i,j)=m0+((var0*(extSourJu(i,j)-mi(ceil(i/BloWide),ceil(j/BloWide)))^2)/vi(ceil(i/BloWide),ceil(j/BloWide)))^0.5;
else
DestJu(i,j)=m0-((var0*(extSourJu(i,j)-mi(ceil(i/BloWide),ceil(j/BloWide)))^2)/vi(ceil(i/BloWide),ceil(j/BloWide)))^0.5;
end
end
end

end


function v=VarJu(extSourJu,BloWide)
%方差
%sourJu输入的矩阵,求方差的块大小
[m,n]=size(extSourJu);
if BloWide>1
tJu=reshape(extSourJu(:,1:BloWide:end),BloWide,[]);
for i=2:BloWide
tJu=[tJu;reshape(extSourJu(:,i:BloWide:end),BloWide,[])];
end
v=reshape(var(tJu),m/BloWide,[]);
else
v=var(reshape(extSourJu,m*n,[]));
end

end
上传的图像
文件类型: jpg 无标题.jpg (23.8 KB, 55 次查看)
hu17889 当前离线   回复时引用此帖