⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fvs_minutia.c

📁 c代码
💻 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 + -