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

📄 fvs_createtestimages.c

📁 指纹识别 C代码
💻 C
字号:
/*############################################################################# * 文件名:fvs_createtestimages.c * 功能:  创建测试图像集 * modified by  PRTsinghua@hotmail.com#############################################################################*/#include "fvs.h"#define IMG_SIZE 256static void GenerateLineImage(FvsImage_t img, FvsInt_t spacing, FvsInt_t angle){    FvsInt_t x, y, w, h;    char name[1024];    FvsFloat_t dir   = angle*M_PI/180.0;    FvsFloat_t piom, s, c;    FvsByte_t* p     = ImageGetBuffer(img);    FvsInt_t pitch   = ImageGetPitch(img);    if (p==NULL)    {        printf("Error, NULL pointer in function GenerateTestImage\n");        return;    }    w = ImageGetWidth(img);    h = ImageGetHeight(img);    s = sin(dir);    c = cos(dir);    printf("Generating a test image with spacing %3i and angle %3i\n", spacing, angle);    (void)ImageClear(img);    piom = 2*M_PI / (FvsFloat_t)(spacing);    for (y = 0; y < h; y++)    for (x = 0; x < w; x++)    {        p[x+y*pitch] = (uint8_t)(127.5*(1+cos(piom*(-x*s + y*c))));    }    (void)snprintf(name, (size_t)1000, "testimg%03i%03i.bmp", spacing, angle);    (void)FvsImageExport(img, name);}static void GenerateCircleImage(FvsImage_t img, FvsInt_t spacing){    FvsInt_t x, y, w, h;    char name[1024];    FvsFloat_t piom, d;    FvsByte_t* p     = ImageGetBuffer(img);    FvsInt_t pitch   = ImageGetPitch(img);    if (p==NULL)    {        printf("Error, NULL pointer in function GenerateCircleImage\n");        return;    }    w = ImageGetWidth(img);    h = ImageGetHeight(img);    printf("Generating a circle test image with spacing %3i\n", spacing);    (void)ImageClear(img);    piom = 2*M_PI / (FvsFloat_t)(spacing);    for (y = 0; y < h; y++)    for (x = 0; x < w; x++)    {        d = sqrt((h/2-y)*(h/2-y) + (w/2-x)*(w/2-x));        p[x+y*pitch] = (uint8_t)(127.5*(1+cos(piom*d)));    }    (void)snprintf(name, (size_t)1000, "testimgcircle%03i.bmp", spacing);    (void)FvsImageExport(img, name);}int main(int argc, char *argv[]){    FvsImage_t img = ImageCreate();    FvsInt_t   spacing, angle;    FvsError_t nRet;    printf("Creating a new image\n");        if (img==NULL) return -1;    printf("Setting the size\n");    nRet = ImageSetSize(img, IMG_SIZE, IMG_SIZE);    if (nRet==FvsOK)    {        for (spacing=4; spacing <= 16; spacing+=4)	{            for (angle=0; angle < 180; angle+=15)                GenerateLineImage(img, spacing, angle);	    GenerateCircleImage(img, spacing);	}    }    printf("Cleaning up\n");    ImageDestroy(img);    return 0;}

⌨️ 快捷键说明

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