Matlab中的细化函数是怎样的?

最好给出例子:例如,现在有一个已经读入,且已经二值化的图像A,现在要得到细化后的图像B,给出程序代码优秀的追加50楼下的答案是已知了细化图像P的算法,而我现在要知道的是如... 最好给出例子:
例如,现在有一个已经读入,且已经二值化的图像A,现在要得到细化后的图像B,给出程序代码

优秀的追加50
楼下的答案是已知了细化图像P的算法,而我现在要知道的是如何将未细化的图像转化成细化图像
展开
 我来答
fxm8391
2008-06-15 · TA获得超过585个赞
知道小有建树答主
回答量:408
采纳率:0%
帮助的人:386万
展开全部
前几天刚做的指纹识别算法,细化部分,以指纹识别为例:getminu.m
%%%%%%%%%%%%%%%%%%%%%%%%%提取指纹细节点算法,P为细化后图像
function minu=getminu(P,smooth)
[height,width]=size(P);
minu=P;
cn_coding=zeros(height,width);%连接数编码初始化
for i=2:height-1
for j=2:width-1
if P(i,j)==1
cn_coding(i,j)=0.5*(abs(P(i,j+1)-P(i-1,j+1))+abs(P(i-1,j+1)-P(i-1,j))+abs(P(i-1,j)-P(i-1,j-1))+abs(P(i-1,j-1)-P(i,j-1))+abs(P(i,j-1)-P(i+1,j-1))+abs(P(i+1,j-1)-P(i+1,j))+abs(P(i+1,j)-P(i+1,j+1))+abs(P(i+1,j+1)-P(i,j+1)));
if cn_coding(i,j)==1%端点
minu(i-1,j)=1;
minu(i+1,j)=1;
minu(i,j-1)=1;
minu(i,j+1)=1;
minu(i-1,j-1)=1;
minu(i-1,j+1)=1;
minu(i+1,j-1)=1;
minu(i+1,j+1)=1;
elseif cn_coding(i,j)==3%交叉点
minu(i-1,j-1)=1;
minu(i-1,j+1)=1;
minu(i+1,j-1)=1;
minu(i+1,j+1)=1;
end

end
end
end
figure,imshow(1-minu);
%%%%消除伪细节点%%%%%%%%%%%%%

detail=P;%%初始化
mark=smooth;
for i=1:height
for j=1:width
if smooth(i,j)==8
mark(i,j)=0;
else mark(i,j)=1;
end
end
end
%figure,imshow(mark)%背景与前景标志
for i=2:height-1
for j=2:width-1
%%%%注意这块的逻辑关系,括号的作用很关键的
if (cn_coding(i,j)==1||cn_coding(i,j)==3)&&mark(i,j)==1&&mark(i,j+5)*mark(i-5,j)*mark(i,j-5)*mark(i+5,j)==0
cn_coding(i,j)=0;%置为伪细节点
end
if cn_coding(i,j)==1%端点
detail(i-1,j)=1;
detail(i+1,j)=1;
detail(i,j-1)=1;
detail(i,j+1)=1;
detail(i-1,j-1)=1;
detail(i-1,j+1)=1;
detail(i+1,j-1)=1;
detail(i+1,j+1)=1;
elseif cn_coding(i,j)==3%交叉点
detail(i-1,j-1)=1;
detail(i-1,j+1)=1;
detail(i+1,j-1)=1;
detail(i+1,j+1)=1;
end
end
end
figure,imshow(1-detail);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式