制作简单的指纹图集,并对其进行处理

制作简单的指纹图集,并对其进行处理

前言

在学习tensorfow时,我第一个做的任务就是用自己的图集简单的认识一下整体的框架,这篇文章先简单的记录一下指纹图集的制作过程。

一、指纹图集采集

指纹图集的制作其实很简单,用印泥即可,下图是两张我采集的图片。
在这里插入图片描述
在这里插入图片描述
这两张的效果还比较好,制作图集时容易产生指纹一边颜色深,一边颜色浅的问题,比如:
在这里插入图片描述
这一张就是在采集的时候用力不均匀的时候产生的,但是指纹的走向还是比较清晰。同时也会产生比较模糊的情况,比如:
在这里插入图片描述

二、对指纹进行处理

对于提取到的指纹图集,需要进行预处理,我是使用matlab软件对这个图片的进行的处理,因为不确定那种方法比较好,所以试了很多种方法,代码也参考了网上的许多代码。(放在下面共享)

clc
clear all

%% 读取图片
img_rgb = imread('1.jpg');
img = rgb2gray(img_rgb);
% img=im2double(img);  %将f转换为归一化的double类图像
figure();
imshow(img);
%进行均值滤波
a_bmp = filter2(fspecial('average',3),img)/255; %进行3*3均值滤波

%%边缘提取
bw1 = edge(a_bmp,'sobel');
bw2 = edge(a_bmp,'roberts');
bw3 = edge(a_bmp,'log');
bw4 = edge(a_bmp,'canny');
figure
subplot(2,2,1); imshow(bw1);title('sobel算子');
subplot(2,2,2);imshow(bw2);title('roberts算子');
subplot(2,2,3);imshow(bw3);title('log算子');
subplot(2,2,4);imshow(bw4);title('canny算子');

%空域锐化
p1 =fspecial('sobel');
figure();
add1 =imfilter(a_bmp,p1);
out1=add1+a_bmp;
imshow(out1);
title('sobel锐化结果');


p2 =fspecial('prewitt');
figure();
add2 =imfilter(a_bmp,p2);
out2=add2+a_bmp;
imshow(out2);
title('prewitt锐化结果');

%%
p3 =fspecial('laplacian');
figure();
add3 =imfilter(a_bmp,p3);
out3=add3+a_bmp;
imshow(out3);
title('laplacian锐化结果');

%%
%进行高斯滤波及频域锐化;
%图像的边缘、细节主要位于高频部分,而图像的模糊是由于高频成分弱化而产生的。
gaus=fspecial('gaussian', [3,3], 1);
figure
gausout=imfilter(a_bmp,gaus,'replicate');
imshow(gausout)
title('高斯频域滤波');
f= double(img);[r,c]=size(f);  
F=fft2(f);G=fftshift(F);  
d0=15; %半径范围  
n=2;%巴特沃斯阶次  
a=0.2;b=2.0; %高频强调滤波传递函数系数  
mu=floor(r/2);mv=floor(c/2);  
for u=1:r  
    for v=1:c  
        d=sqrt((u-mu)^2+(v-mv)^2);  
        Hlpbtw=1/(1+0.414*(d/d0)^(2*n));  
        Hhpbtw=1-Hlpbtw;    Ghpbtw(u,v)=Hhpbtw*G(u,v);  
        Hhfebtw=a+b*Hhpbtw; Ghfebtw(u,v)=Hhfebtw*G(u,v);  
    end  
end  
ghpbtw=ifftshift(Ghpbtw);  
fhpbtw=uint8(real(ifft2(ghpbtw)));  
subplot(1,3,1);imshow(fhpbtw);title(' 巴特沃斯高通');  
ghfebtw=ifftshift(Ghfebtw);  
fhfebtw=uint8(real(ifft2(ghfebtw)));  
subplot(1,3,2);imshow(fhfebtw);title('巴特沃斯高频强调滤波');  
histeq_fhfebtw=histeq(fhfebtw,256);  
subplot(1,3,3);imshow(histeq_fhfebtw);title('均衡化结果');


%% 二值化
thresh = graythresh(histeq_fhfebtw)  %自动确定二值化阈值;
A=im2bw(I,thresh); % thresh=0.5 表示将灰度等级在128以下的像素全部变为黑色,将灰度等级在128以上的像素全部变为白色。
imshow(A)

运行了上面的代码,得到了许多处理结果,下面是几个比较主要的处理结果。

拉普拉斯锐化结果:
在这里插入图片描述

prewitt锐化结果在这里插入图片描述
sobel算子锐化结果在这里插入图片描述
均衡化结果在这里插入图片描述

总结

以就是自己简单的记录了一下制作指纹图集的过程,为做深度学习做数据集。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
制作Cocos图集(Sprite Sheet),你可以使用专门的工具将多个图像合并成一个大图,并生成一个与每个图像位置对应的描述文件。 以下是一个常用的工具和步骤: 1. TexturePacker:这是一个流行的纹理打包工具,可用于创建Cocos图集。你可以从其官方网站(https://www.codeandweb.com/texturepacker)下载并安装TexturePacker。 2. 准备图像:将你要打包的图像准备好,可以是PNG、JPG等常见格式。确保这些图像已经按照你所需的位置和大小进行了切割。 3. 打开TexturePacker:打开TexturePacker软件,并点击"New"创建一个新项目。 4. 添加图像:点击"Add Sprite(s)"按钮,选择要添加到图集的图像文件。你可以一次选择多个文件。 5. 配置设置:在右侧面板中,你可以设置图集的输出格式、最大尺寸、旋转、缩放等选项。根据你的需求进行配置。 6. 导出图集:点击"Publish"按钮,选择导出图集的文件夹和文件名。通常,TexturePacker会同时生成一个图像文件(通常是PNG格式)和一个描述文件(通常是.plist或.json格式)。 7. 导入到Cocos项目:将生成的图像文件和描述文件(以及任何其他相关文件)导入到Cocos项目的资源目录中。 8. 使用图集:在Cocos代码中,你可以使用`SpriteFrameCache`来加载图集,并使用`Sprite`或其他节点来显示图集中的图像。使用描述文件中提供的图像名称或帧索引来获取对应的精灵帧。 这样,你就可以成功制作和使用Cocos图集了。 请注意,上述步骤仅提供了一种常见的方法,你也可以尝试其他工具或库来制作和使用图集

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值