MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [求助]图像归一化的问题 (https://www.labfans.com/bbs/showthread.php?t=2157)

hu17889 2008-04-09 15:32

[求助]图像归一化的问题
 
2 个附件
最近开始做指纹图像的预处理,编了一个归一化的程序,但是处理后的效果很差,请各位看看
谢谢!!!

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

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


所有时间均为北京时间。现在的时间是 12:51

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.