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 + -
显示快捷键?