Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2008-04-02
年龄: 38
帖子: 7
声望力: 0 ![]() |
![]()
最近开始做指纹图像的预处理,编了一个归一化的程序,但是处理后的效果很差,请各位看看
谢谢!!! 不知道什么归一化方法好? 附件中是我用的归一化公式 下面是整个程序 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 |
![]() |
![]() |
主题工具 | |
显示模式 | |
|
|
![]() |
||||
主题 | 主题作者 | 版面 | 回复 | 最后发表 |
【求助】关于图像畸变复原的matlab实现,求助各位了 | 鸣子 | MATLAB论坛 | 3 | 2009-05-06 12:16 |
BMP图像转换成时间序列 | zlnhappy | MATLAB论坛 | 0 | 2008-04-28 17:53 |
[求助]车型识别matlab实现模糊识别 | lingyu | MATLAB论坛 | 0 | 2008-04-18 11:25 |
【求助】matlab load 的奇怪问题 | dnping | MATLAB论坛 | 1 | 2007-07-26 11:34 |
【求助】产生随机数?? | wpy6609 | MATLAB论坛 | 4 | 2007-06-25 22:45 |