亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? img_base.c

?? 基于C開(kāi)發(fā)的指紋識(shí)別源程序.rar
?? C
字號(hào):
/*############################################################################# * 文件名:img_base.c * 功能:  一些基本的圖像操作 * modified by  PRTsinghua@hotmail.com#############################################################################*/#include "img_base.h"#include "histogram.h"#include <math.h>#include <stdlib.h>#include <string.h>/******************************************************************************  * 功能:圖像二值化  * 參數(shù):image       指紋圖像  *       size        閾值  * 返回:錯(cuò)誤編號(hào)******************************************************************************/FvsError_t ImageBinarize(FvsImage_t image, const FvsByte_t limit){    FvsInt_t n;    FvsByte_t *pimg = ImageGetBuffer(image);    FvsInt_t size = ImageGetSize(image);    if (pimg==NULL)        return FvsMemory;    /* 循環(huán)遍歷 */    for (n = 0; n < size; n++, pimg++)    {        /* 閾值化 */        *pimg = (*pimg < limit)?(FvsByte_t)0xFF:(FvsByte_t)0x00;    }    return ImageSetFlag(image, FvsImageBinarized);}/******************************************************************************  * 功能:圖像翻轉(zhuǎn)操作  * 參數(shù):image       指紋圖像  * 返回:錯(cuò)誤編號(hào)******************************************************************************/FvsError_t ImageInvert(FvsImage_t image){    FvsByte_t* pimg = ImageGetBuffer(image);    FvsInt_t size = ImageGetSize(image);    FvsInt_t n;    if (pimg==NULL)        return FvsMemory;    for (n = 0; n < size; n++, pimg++)    {        *pimg = 0xFF - *pimg;    }    return FvsOK;}/******************************************************************************  * 功能:圖像合并操作  * 參數(shù):image1    第一個(gè)指紋圖像,用于保存結(jié)果  *       image2    第二個(gè)指紋圖像  * 返回:錯(cuò)誤編號(hào)******************************************************************************/FvsError_t ImageAverage(FvsImage_t image1, const FvsImage_t image2){    FvsByte_t* p1 = ImageGetBuffer(image1);    FvsByte_t* p2 = ImageGetBuffer(image2);    FvsInt_t size1 = ImageGetSize(image1);    FvsInt_t size2 = ImageGetSize(image2);    FvsInt_t i;    if (p1==NULL || p2==NULL)        return FvsMemory;    if (size1!=size2)        return FvsBadParameter;    for (i = 0; i < size1; i++, p1++)    {        *p1 = (*p1+*p2++)>>1;    }    return FvsOK;}/******************************************************************************  * 功能:圖像邏輯合并操作  * 參數(shù):image1    第一個(gè)指紋圖像,用于保存結(jié)果  *       image2    第二個(gè)指紋圖像  * 返回:錯(cuò)誤編號(hào)******************************************************************************/FvsError_t ImageLogical    (    FvsImage_t image1,    const FvsImage_t image2,    const FvsLogical_t operation    ){    FvsByte_t* p1 = ImageGetBuffer(image1);    FvsByte_t* p2 = ImageGetBuffer(image2);    FvsInt_t size1 = ImageGetSize(image1);    FvsInt_t i;    if (p1==NULL || p2==NULL)        return FvsMemory;    if (ImageCompareSize(image1, image2)==FvsFalse)        return FvsBadParameter;    switch (operation)    {    case FvsLogicalOr:        for (i = 0; i < size1; i++, p1++)            *p1 = (*p1) | (*p2++);                            break;    case FvsLogicalAnd:        for (i = 0; i < size1; i++, p1++)            *p1 = (*p1) & (*p2++);        break;    case FvsLogicalXor:        for (i = 0; i < size1; i++, p1++)            *p1 = (*p1) ^ (*p2++);        break;    case FvsLogicalNAnd:        for (i = 0; i < size1; i++, p1++)            *p1 = ~((*p1) & (*p2++));        break;    case FvsLogicalNOr:        for (i = 0; i < size1; i++, p1++)            *p1 = ~((*p1) | (*p2++));        break;    case FvsLogicalNXor:        for (i = 0; i < size1; i++, p1++)            *p1 = ~((*p1) ^ (*p2++));        break;    }    return FvsOK;}/******************************************************************************  * 功能:圖像合并操作  *       使用了模計(jì)算,0和255的結(jié)果是0而不是上一個(gè)函數(shù)的127。  * 參數(shù):image1    第一個(gè)指紋圖像,用于保存結(jié)果  *       image2    第二個(gè)指紋圖像  * 返回:錯(cuò)誤編號(hào)******************************************************************************/FvsError_t ImageAverageModulo(FvsImage_t image1, const FvsImage_t image2){    FvsByte_t* p1 = ImageGetBuffer(image1);    FvsByte_t* p2 = ImageGetBuffer(image2);    FvsInt_t size1 = ImageGetSize(image1);    FvsInt_t size2 = ImageGetSize(image2);    FvsInt_t i;    FvsByte_t v1, v2;    if (size1!=size2)        return FvsBadParameter;    if (p1==NULL || p2==NULL)        return FvsMemory;    for (i = 0; i < size1; i++)    {        v1 = *p1;        v2 = *p2;        if (v1<128) v1+=256;        if (v2<128) v2+=256;        v1 += v2;        v1 >>=1;        v1 = v1%256;        *p1++ = (uint8_t)v1;    }    return FvsOK;}/******************************************************************************  * 功能:圖像平移操作  * 參數(shù):image    指紋圖像  *       vx       X方向的平移量  *       vy       Y方向的平移量  * 返回:錯(cuò)誤編號(hào)******************************************************************************/FvsError_t ImageTranslate(FvsImage_t image, const FvsInt_t vx, const FvsInt_t vy){	return FvsOK;}#define P(x,y)      p[((x)+(y)*pitch)]/******************************************************************************  * 功能:圖像紋理  * 參數(shù):image       指紋圖像  *       horizontal  水平或垂直紋理  * 返回:錯(cuò)誤編號(hào)******************************************************************************/FvsError_t ImageStripes(FvsImage_t image, const FvsBool_t horizontal){    FvsByte_t* p = ImageGetBuffer(image);    FvsInt_t w     = ImageGetWidth (image);    FvsInt_t h     = ImageGetHeight(image);    FvsInt_t pitch = ImageGetPitch (image);    FvsInt_t x,y;    if (p==NULL)        return FvsMemory;    if (horizontal==FvsFalse)    {        for (y = 0; y < h; y++)        for (x = 0; x < w; x++)            P(x,y) = (FvsByte_t)x%256;    }    else    {        for (y = 0; y < h; y++)        for (x = 0; x < w; x++)            P(x,y) = (FvsByte_t)y%256;    }    return FvsOK;}/******************************************************************************  * 功能:改變圖像的發(fā)光度,使其在[255..255]之間變動(dòng)  * 參數(shù):image         指紋圖像  *       luminosity    相關(guān)的發(fā)光度  * 返回:錯(cuò)誤編號(hào)******************************************************************************/FvsError_t ImageLuminosity(FvsImage_t image, const FvsInt_t luminosity){    FvsByte_t* p = ImageGetBuffer(image);    FvsInt_t  w = ImageGetWidth (image);    FvsInt_t  h = ImageGetHeight(image);    FvsInt_t pitch = ImageGetPitch (image);    FvsInt_t x,y;    FvsFloat_t fgray, a, b;    if (p==NULL)        return FvsMemory;    if (luminosity>0)    {        a = (255.0 - abs(luminosity)) / 255.0;        b = (FvsFloat_t)luminosity;    }    else    {        a = (255.0 - abs(luminosity)) / 255.0;        b = 0.0;    }    for (y = 0; y < h; y++)    for (x = 0; x < w; x++)    {        fgray = (FvsFloat_t)P(x,y);        fgray = b + a*fgray;        if (fgray < 0.0)    fgray = 0.0;        if (fgray > 255.0)  fgray = 255.0;        P(x,y)= (uint8_t)fgray;    }    return FvsOK;}/******************************************************************************  * 功能:改變圖像的對(duì)比度,使其在[-127..127]變動(dòng)  * 參數(shù):image      指紋圖像  *       contrast   對(duì)比度因子  * 返回:錯(cuò)誤編號(hào)******************************************************************************/FvsError_t ImageContrast(FvsImage_t image, const FvsInt_t contrast){    FvsByte_t* p = ImageGetBuffer(image);    FvsInt_t  w = ImageGetWidth (image);    FvsInt_t  h = ImageGetHeight(image);    FvsInt_t pitch = ImageGetPitch (image);    FvsInt_t x,y;    FvsFloat_t fgray, a, b;    if (p==NULL)        return FvsMemory;    a = (FvsFloat_t)((127.0 + contrast) / 127.0);    b = (FvsFloat_t)(-contrast);    for (y = 0; y < h; y++)    for (x = 0; x < w; x++)    {        fgray = (FvsFloat_t)P(x,y);        fgray = b + a*fgray;        if (fgray < 0.0)    fgray = 0.0;        if (fgray > 255.0)  fgray = 255.0;        P(x,y)= (uint8_t)fgray;    }    return FvsOK;}/******************************************************************************  * 功能:圖像軟化操作,通過(guò)計(jì)算均值實(shí)現(xiàn)  * 參數(shù):image     指紋圖像  *       size      軟化窗口大小  * 返回:錯(cuò)誤編號(hào)******************************************************************************/FvsError_t ImageSoftenMean(FvsImage_t image, const FvsInt_t size){    FvsByte_t* p1  = ImageGetBuffer(image);    FvsByte_t* p2;    FvsInt_t   w   = ImageGetWidth (image);    FvsInt_t   h   = ImageGetHeight(image);    FvsInt_t pitch = ImageGetPitch (image);    FvsInt_t pitch2;    FvsInt_t x,y,s,p,q,a,c;    FvsImage_t im2;    im2 = ImageCreate();        if (im2==NULL || p1==NULL)        return FvsMemory;    s = size/2;		/* 大小 */    a = size*size;	/* 面積 */        if (a==0)	return FvsBadParameter;	    /* 拷貝圖像進(jìn)行計(jì)算 */    ImageCopy(im2, image);    p2 = ImageGetBuffer(im2);    if (p2==NULL)    {	ImageDestroy(im2);	return FvsMemory;    }    pitch2 = ImageGetPitch (im2);        for (y = s; y < h-s; y++)    for (x = s; x < w-s; x++)    {	c = 0;	for (q=-s;q<=s;q++)	for (p=-s;p<=s;p++)	{    	    c += p2[(x+p)+(y+q)*pitch2];	}        p1[x+y*pitch] = c/a;    }        ImageDestroy(im2);    return FvsOK;}/******************************************************************************  * 功能:圖像歸一化操作,使其具有給定的均值和方差  * 參數(shù):image     指紋圖像  *       mean      給定的均值  *       variance  給定的標(biāo)準(zhǔn)方差  * 返回:錯(cuò)誤編號(hào)******************************************************************************/FvsError_t ImageNormalize(FvsImage_t image, const FvsByte_t mean, const FvsUint_t variance){    FvsByte_t* p = ImageGetBuffer(image);    FvsInt_t   w = ImageGetWidth (image);    FvsInt_t   h = ImageGetHeight(image);    FvsInt_t   pitch = ImageGetPitch (image);    FvsInt_t   x,y;    FvsFloat_t fmean, fsigma, fmean0, fsigma0, fgray;    FvsFloat_t fcoeff = 0.0;    FvsHistogram_t histogram = NULL;    FvsError_t nRet;    if (p==NULL)        return FvsMemory;    histogram = HistogramCreate();    if (histogram!=NULL)    {        /* 計(jì)算直方圖 */        nRet = HistogramCompute(histogram, image);        if (nRet==FvsOK)        {            /* 計(jì)算方差和均值 */            fmean   = (FvsFloat_t)HistogramGetMean(histogram);            fsigma  = sqrt((FvsFloat_t)HistogramGetVariance(histogram));            fmean0  = (FvsFloat_t)mean;            fsigma0 = sqrt((FvsFloat_t)variance);            if (fsigma>0.0)                fcoeff = fsigma0/fsigma;            for (y = 0; y < h; y++)            for (x = 0; x < w; x++)            {                fgray = (FvsFloat_t)P(x,y);                fgray = fmean0 + fcoeff*(fgray - mean);                if (fgray < 0.0)    fgray = 0.0;                if (fgray > 255.0)  fgray = 255.0;                P(x,y)= (uint8_t)fgray;            }        }        HistogramDestroy(histogram);    }    return nRet;}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲人成在线播放网站岛国| 亚洲激情综合网| 色综合久久六月婷婷中文字幕| 一区二区三区.www| 26uuu色噜噜精品一区| 欧美日韩一区高清| 成人avav影音| 国内精品写真在线观看| 丝袜亚洲另类丝袜在线| 1区2区3区欧美| 中文字幕国产一区二区| 欧美成人a∨高清免费观看| 色狠狠av一区二区三区| 大美女一区二区三区| 蜜桃av一区二区在线观看| 一二三四区精品视频| 欧美经典一区二区| 久久综合五月天婷婷伊人| 欧美欧美欧美欧美首页| 色欧美日韩亚洲| 91亚洲精品乱码久久久久久蜜桃| 国内精品久久久久影院薰衣草| 日本最新不卡在线| 午夜国产精品影院在线观看| 亚洲精品成a人| 亚洲美女视频在线观看| 国产精品三级久久久久三级| 国产性天天综合网| 26uuu另类欧美| 久久亚洲私人国产精品va媚药| 日韩一区二区三区电影| 91精品国产综合久久久久久久| 欧美另类高清zo欧美| 欧美三区在线观看| 欧美视频一区二区三区在线观看| 在线免费观看日韩欧美| 91成人在线免费观看| 欧美日韩一区二区三区四区 | 精品国产91乱码一区二区三区 | 国产91丝袜在线播放九色| 狠狠色丁香婷婷综合久久片| 久久av老司机精品网站导航| 麻豆精品视频在线| 精品一二三四在线| 国产精品一区二区你懂的| 国产成人av电影在线观看| 高清不卡一区二区在线| www.亚洲在线| 91国偷自产一区二区开放时间| 色猫猫国产区一区二在线视频| 色婷婷久久久久swag精品| 欧美私模裸体表演在线观看| 欧美美女bb生活片| 欧美tickling挠脚心丨vk| 精品国产一区二区三区久久久蜜月 | 亚洲成人一区二区在线观看| 亚洲一本大道在线| 日韩电影在线观看网站| 国内精品伊人久久久久av影院| 国产99久久久国产精品免费看| 99久久精品国产观看| 欧美日韩综合不卡| 欧美一区二区免费观在线| 久久蜜桃av一区精品变态类天堂| 国产精品美日韩| 亚洲在线观看免费| 精品午夜久久福利影院| 99久久精品国产网站| 欧美日韩精品一区二区三区蜜桃| 日韩三区在线观看| 自拍偷拍亚洲激情| 日本一不卡视频| 成人午夜电影网站| 欧美日韩国产123区| 久久久天堂av| 亚洲电影欧美电影有声小说| 国内精品免费**视频| 欧美最猛性xxxxx直播| 日韩精品中文字幕一区二区三区| 国产精品久久99| 日日夜夜精品视频免费| 成人免费高清视频在线观看| 欧美日韩国产综合久久| 国产日产亚洲精品系列| 亚洲va天堂va国产va久| 成人免费视频视频| 欧美不卡在线视频| 亚洲激情中文1区| 国产最新精品免费| 欧美区在线观看| 国产精品久久久久aaaa| 久久99精品久久久久久国产越南 | 国产精品国产三级国产有无不卡| 亚洲bt欧美bt精品777| 成人午夜精品一区二区三区| 91麻豆精品国产91久久久| 一区在线观看免费| 国产一区在线视频| 欧美精品一卡二卡| 一区二区视频在线| 国产成人综合视频| 日韩美女在线视频| 午夜精品久久久久久久| 99久久精品免费观看| 亚洲精品在线免费观看视频| 亚洲一区自拍偷拍| 99久久99久久精品免费看蜜桃| 日韩美一区二区三区| 亚洲国产毛片aaaaa无费看| 成人福利视频在线| 国产色综合一区| 精品一区二区三区久久久| 欧美三级在线看| 最好看的中文字幕久久| 成人精品鲁一区一区二区| 日韩午夜精品视频| 天堂一区二区在线| 欧美日韩国产在线观看| 亚洲综合偷拍欧美一区色| 99久久精品免费观看| 国产精品视频yy9299一区| 国产黑丝在线一区二区三区| 精品国产91九色蝌蚪| 日本伊人色综合网| 91精品在线观看入口| 日韩中文字幕区一区有砖一区 | 欧美日本在线看| 亚洲成av人影院在线观看网| 欧美性猛交xxxx乱大交退制版| 亚洲人成精品久久久久久| 不卡一区二区三区四区| 欧美激情在线一区二区三区| 国产盗摄女厕一区二区三区| 久久一日本道色综合| 精品系列免费在线观看| www国产精品av| 国产精品中文字幕一区二区三区| 久久久三级国产网站| 国产成人精品影视| 国产免费久久精品| 99久久精品免费| 亚洲欧美经典视频| 欧美日韩一区二区三区免费看| 一区二区三区四区在线免费观看| 在线一区二区三区| 丝袜诱惑制服诱惑色一区在线观看| 精品视频一区三区九区| 三级影片在线观看欧美日韩一区二区| 欧美日韩在线观看一区二区 | 日韩一区二区精品在线观看| 蜜臀av国产精品久久久久| 欧美精品一区二区三区蜜桃| 国产精品一线二线三线精华| 国产精品乱人伦| 色哟哟一区二区在线观看 | 韩国v欧美v日本v亚洲v| 国产日韩欧美精品一区| 一本久久精品一区二区| 水蜜桃久久夜色精品一区的特点| 日韩亚洲欧美高清| 国产成人在线视频网站| 亚洲日本va午夜在线影院| 欧美精品v国产精品v日韩精品| 奇米精品一区二区三区四区 | 91美女在线看| 午夜av区久久| 久久久综合激的五月天| a级高清视频欧美日韩| 亚洲精品国产无套在线观| 欧美区在线观看| 国产精品99久久久久| 一区二区三区日韩在线观看| 日韩亚洲欧美中文三级| 成人午夜av电影| 首页欧美精品中文字幕| 久久久久99精品国产片| 欧美午夜在线一二页| 精品一区二区三区影院在线午夜 | 91麻豆精品国产| 成人av在线电影| 麻豆久久久久久久| 亚洲欧洲综合另类| 欧美精品一区二区三区蜜桃| 91在线观看一区二区| 免播放器亚洲一区| 亚洲欧美激情一区二区| 亚洲精品在线免费播放| 在线观看日韩毛片| 国产精品一区二区久久不卡| 亚洲午夜在线电影| 国产欧美日韩精品在线| 91精品国模一区二区三区| 色综合久久六月婷婷中文字幕| 韩国精品一区二区| 午夜一区二区三区在线观看| 国产精品欧美久久久久无广告| 91精品国产色综合久久不卡电影| 99re热这里只有精品视频| 国产在线视频一区二区| 亚洲成av人片在线观看无码|