📄 fvs_minutia.c
字号:
/*############################################################################# * 文件名:fvs_matching.c * 功能: 指纹图像细节点提取 * modified by zhaowufeng#############################################################################*/#include "fvs.h"
#include <time.h>int main(int argc, char *argv[]){ FvsImage_t mask1; FvsImage_t image1; FvsFloatField_t direction1; FvsFloatField_t frequency1; FvsMinutiaSet_t minutia1;
FvsImage_t mask2;
FvsImage_t image2;
FvsFloatField_t direction2;
FvsFloatField_t frequency2;
FvsMinutiaSet_t minutia1;
FvsByte_t bmfh[14];
BITMAPINFOHEADER bmih;
RGBQUAD rgbq[256];
clock_t start,finish; if (argc!=3) { printf("Usage: fvs input1.bmp input2.bmp\n"); return -1; } direction = FloatFieldCreate(); frequency = FloatFieldCreate(); mask = ImageCreate(); image = ImageCreate(); minutia = MinutiaSetCreate(5000); if (direction!=NULL && frequency!=NULL && mask!=NULL && image!=NULL && minutia!=NULL) { FvsImageImport(image, argv[1],bmfh,&bmih,rgbq); (void)ImageSoftenMean(image, 3);
fprintf(stdout, "1/8 Determining the ridge direction\n"); (void)FingerprintGetDirection(image, direction, 5, 8); fprintf(stdout, "2/8 Determining the ridge frequency\n"); (void)FingerprintGetFrequency(image, direction, frequency); fprintf(stdout, "3/8 Creating the mask\n"); (void)FingerprintGetMask(image, direction, frequency, mask); fprintf(stdout, "4/8 Enhancing the fingerprint image\n"); (void)ImageEnhanceGabor(image, direction, frequency, mask, 4.0); start=clock();
fprintf(stdout, "5/8 Binarize\n"); (void)ImageBinarize(image, (FvsByte_t)0x80); fprintf(stdout, "6/8 Thinning\n"); (void)ImageThinHitMiss(image);
FvsImageExport(image,"d:\\temp\\roughthin.bmp",bmfh,&bmih,rgbq);
ImageRemoveSpurs(image);
FvsImageExport(image,"d:\\temp\\thin.bmp",bmfh,&bmih,rgbq); fprintf(stdout, "7/8 Detecting minutia\n"); (void)MinutiaSetExtract(minutia, image, direction, mask); fprintf(stdout, "8/8 Drawing minutia\n"); (void)ImageClear(image); (void)MinutiaSetDraw(minutia, image);
finish=clock();
printf("Elapse time: %dms\n",finish-start); FvsImageExport(image,argv[2],bmfh,&bmih,rgbq); } fprintf(stdout, "Cleaning up and exiting...\n"); MinutiaSetDestroy(minutia); ImageDestroy(image); ImageDestroy(mask); FloatFieldDestroy(frequency); FloatFieldDestroy(direction); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -