fvs_enhancer.cpp

来自「这是一个用c++编写的实现指纹识别的程序」· C++ 代码 · 共 110 行

CPP
110
字号
/*########################################################################  Demo program that shows how to use the FVS library to improve  fingerprint images. At the moment the library supports the import  of bitmap images. The result is exported as a bitmap image as well.  Link this sample with the FVS library (libfvs)########################################################################*/#include "stdafx.h"#include "../ip-header/fvs_enhancer.h"
//#include "../enhancement.h"static void ExportImage(const FvsImage_t image, const FvsString_t filename){    FvsFile_t file = FileCreate();    if (file!=NULL)    {        //AfxMessageBox(CString("exporting resulting image to ")+CString(filename));        (void)FileOpen    (file, filename, FvsFileWrite);        (void)BitmapExport(file, image);        (void)FileClose   (file);        FileDestroy(file);    }}static void ImportImage(FvsImage_t image, const FvsString_t filename){    FvsFile_t file = FileCreate();    if (file!=NULL)    {        //AfxMessageBox(CString("Opening file  ")+CString(filename));        (void)FileOpen  (file, filename, FvsFileRead);        (void)AutoImport(file, image);        (void)FileClose (file);        FileDestroy(file);    }}void enhance(enhancement *enh,char *input, char *output){    FvsImage_t mask;    FvsImage_t image;    FvsFloatField_t direction;    FvsFloatField_t frequency;
//	enhancement *enh;//	enh->m_prog.SetRange32(0,100);    /* check if all parameters are there *//*  if (argc!=3)    {        printf("Usage: fvs input.bmp output.bmp\n");        return -1;    }*/    mask      = ImageCreate();    image     = ImageCreate();    direction = FloatFieldCreate();    frequency = FloatFieldCreate();    if (mask!=NULL && image!=NULL && direction!=NULL && frequency!=NULL)    {        ImportImage(image, input);        /* normalize the image */        (void)ImageNormalize(image, (FvsByte_t)128, (FvsUint_t)128*128);
		enh->m_text = " Determining the ridge direction ";
		enh->UpdateData(false);
		enh->m_prog.SetPos(10);
		        (void)FingerprintGetDirection(image, direction, 7, 2);
		
		enh->m_text = " Determining the ridge frequency ";
		enh->UpdateData(false);
		enh->m_prog.SetPos(20);        (void)FingerprintGetFrequency(image, direction, frequency);
		enh->m_text = " Creating the mask ";
		enh->UpdateData(false);
		enh->m_prog.SetPos(40);        (void)FingerprintGetMask(image, direction, frequency, mask);
		enh->m_text = " Enhancing the fingerprint image ";
		enh->UpdateData(false);
		enh->m_prog.SetPos(60);        (void)ImageEnhanceGabor(image, direction, frequency, mask);
		enh->m_text = " Exporting the image ";
		enh->UpdateData(false);
		enh->m_prog.SetPos(80);        
		ExportImage(image, output);
		
		enh->m_text = " Complete ";
		enh->UpdateData(false);
		enh->m_prog.SetPos(100);
    }    FloatFieldDestroy(frequency);    FloatFieldDestroy(direction);    ImageDestroy(image);    ImageDestroy(mask);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?