本人有一个函数
函数原型: int __stdcall FP_FeatureExtract(unsigned char cScannerType,unsigned char
cFingerCode,unsigned char * pFingerImgBuf,unsigned char * pFeatureData)。
参数: unsigned char cScannerType 。输入参数。
unsigned char cFingerCode 。输入参数。
unsigned char * pFingerImgBuf 图像数据指针,指纹图像为RAW格式。输入参数。
unsigned char * pFeatureData 图像特征数据指针,存储生成的图像特征数据,由调
用者分配内存空间,输出参数。
返回值: 调用成功,返回1;否则返回错误代码,错误代码值应符合B.4的要求。
本人调用以后
nRlt = FP_FeatureExtract(17, 11, imageRAW, pFeatureData);
这个pFeatureData指针就有了值。
现在是一个for循环,每次imageRAW都会变,所以pFeatureData也会变。
本人现在要用pFeatureData这个值,for循环3次 本人需要3个pFeatureData值。
所以本人想问 怎么样在for循环里面把这个值保存下来。 一直到本人整个函数结束。
函数原型: int __stdcall FP_FeatureExtract(unsigned char cScannerType,unsigned char
cFingerCode,unsigned char * pFingerImgBuf,unsigned char * pFeatureData)。
参数: unsigned char cScannerType 。输入参数。
unsigned char cFingerCode 。输入参数。
unsigned char * pFingerImgBuf 图像数据指针,指纹图像为RAW格式。输入参数。
unsigned char * pFeatureData 图像特征数据指针,存储生成的图像特征数据,由调
用者分配内存空间,输出参数。
返回值: 调用成功,返回1;否则返回错误代码,错误代码值应符合B.4的要求。
本人调用以后
nRlt = FP_FeatureExtract(17, 11, imageRAW, pFeatureData);
这个pFeatureData指针就有了值。
现在是一个for循环,每次imageRAW都会变,所以pFeatureData也会变。
本人现在要用pFeatureData这个值,for循环3次 本人需要3个pFeatureData值。
所以本人想问 怎么样在for循环里面把这个值保存下来。 一直到本人整个函数结束。
解决方案
40
static unsigned char pFeatureData[3][512]; do { capEnd = GetTickCount() - capStart; for(int i=0;i<3;i++) { //采集RAW图像 nRlt = LIVESCAN_GetFPRawData(0, imageRAW); fingercount++; //获取图像的质量 unsigned char pnScore[1]; nRlt = FP_GetQualityScore(imageRAW, pnScore); int QualityScore = pnScore[0]; if(QualityScore<=50) { continue; } str.Format(L"%d",QualityScore); if(i==0) { text1=str; } else if(i==1) { text2=str; } else { text3=str; } //采集一帧Bmp图像 nRlt = LIVESCAN_GetFPBmpData(0, imageBMP); HBITMAP hbitmap = BufferToHBITMAP(GetDC()->m_hDC,imageBMP); DisBMPByHBitmap(GetDlgItem(IDC_BMPF1+i)->m_hWnd,hbitmap,1); DeleteObject(hbitmap); nRlt = FP_FeatureExtract(17, 11, imageRAW, pFeatureData[i]); /*strcpy(p,pFeatureData[i])*/ if(i==2) { m_text = "产生注册结果..."; UpdateData(false); } else { m_text = "请再次按压手指..."; UpdateData(false); } Sleep(1000); } //注册结果 for (int i=0;i<3;i++) TRACE("%d [%s]]n",i,pFeatureData[i]); int regRes = pFeatureData[2]; break; } while ((capEnd <= sTimeOut * 1000));
注意看TRACE在IDE中输出窗口中都输出了什么。