我正在研究指纹毛孔提取项目,并陷入毛孔(白色像素簇)提取的最后阶段。我有两个输出图像,我们可以从中获取毛孔,但不知道该怎么做。这两个图像的尺寸不同..image1 的尺寸为 240*320,image2 的尺寸为 230*310 ..这是我的图像..
image 1 (240*320) image2 (230*310)
这就是我正在做的提取白色毛孔簇的方法。
for i = 1:230
for j = 1:310
if image1(i,j)==1 && image2(i,j)==1
result(i,j)=1;
else
result(i,j)= 0;
end;
end;
end;
figure(4);imshow(result,[]);
这是我的输出
output (230*310) expected (different than input image)
图片3(输出)显示了上面代码的结果图像..这些错误可能是由于我认为的两个图像的大小差异造成的...那么我应该怎么做才能获得毛孔(白色簇)..注意第四个图像(预期)与输入图像不同,只是为了向您展示输出应该是什么样子......提前致谢......
我以前做过这种“类型”的特征提取。通常我看到它是如何完成的(我在某种程度上是我过去工作过的一家公司中这个过程的发明者)是:
一维斑点检测:
- 从左到右(或从右到左)逐个像素地移动每行
- 如果您从黑色像素移动到其右侧的像素,在那里您过渡到白色的定义(由阈值设置),然后标记该点
- 从黑到白的过渡,您现在集中精力寻找白到黑的过渡
- 当找到白到黑时,将黑到白过渡边界和白到黑过渡边界配对成(我所说的)“一维斑点”并存储在一维斑点列表中
2D Blob 相关性:
- 现在有了 1D Blob 列表后,您需要通过查找相邻的 Blob 将 1D Blob 关联到 2D Blob
您可以通过多种不同的方式定义边界:
- 像素是否高于或低于阈值的二元决策(最简单且最快)
- 过渡的底部、中间或顶部点,其中从黑到白/白到黑的过渡可能很慢,也可能很快(这称为瞬态响应),也称为您正在寻找的斜率
在您的情况下,您的图像看起来好像是真正的二值图像(黑白,没有灰色阴影),因此二值阈值处理效果很好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)