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

📄 变更内容.txt

📁 手掌采集程序
💻 TXT
字号:
void CPalmPriintRec::pretreat(BYTE *prlt,BYTE *pD,BYTE *pback)
{
	/*统计门限:
	TH_theta_1,TH_theta_2,TH_I_1,TH_I_2
	*/
	double TH_theta_1=38;          //85;
	double TH_theta_2=56;          //95;
	double TH_I_1=110;              //8;
	double TH_I_2=162;              //11;
	//////////////////////////////////////////////////////////////////////////
	double dR,dG,dB,
		   R1,G1,B1,
		   Y,U,V,
		   Y1,U1,V1,
		   theta,
		   Z_y,Z_i,Z_q;
	double pi=3.14159;
	double kLevel=20;
	//以下逐个像素进行处理
	/*
	灰度差别由klevel门限负责处理
	背景
	pback
	RGB2YUV(&Y1,&U1,&V1,B1,G1,R1);
	采集的照片
	pD
	RGB2YUV(&Y,&U,&V,dB,dG,dR);
	根据灰度变化提取出一部分像素
	abs(Y-Y1)≥klevel时,可以判断为可能的像素;
	------------------------------------------------------
	然后从颜色空间分析
	肤色范围:需要参考统计值
	*/
	for (int nhang=0;nhang<nH;nhang++)
	{
		for (int nlie=0;nlie<nL;nlie++)
		{
			dB=*(pD+(nlie+nhang*nL)*nrgb+0);
			dG=*(pD+(nlie+nhang*nL)*nrgb+1);
			dR=*(pD+(nlie+nhang*nL)*nrgb+2);
			RGB2YUV(&Y,&U,&V,dB,dG,dR);
			RGB2YIQ(&Z_y,&Z_i,&Z_q,dB,dG,dR);
			R1=*(pback+(nlie+nhang*nL)*nrgb+0);
			G1=*(pback+(nlie+nhang*nL)*nrgb+1);
			B1=*(pback+(nlie+nhang*nL)*nrgb+2);
			//条件:是肤色,与原背景图有差别
			RGB2YUV(&Y1,&U1,&V1,B1,G1,R1);
			theta=180*atan(V/U)/pi;
			theta=theta>=0 ? theta : 180+theta;
			//______theta应该在105°到150°之间
			//______I应该在30~100之间
//			if ((nhang==240) && (nlie==320))
//			{
//				AfxMessageBox("!");
//			}
			if (
				/*(theta>=TH_theta_1) && (theta<=TH_theta_2)
				&& (Z_i>=TH_I_1) && (Z_i<=TH_I_2)
//				)
				&& */
				(abs(dB-B1)>kLevel && abs(dG-G1)>kLevel && abs(dR-R1)>kLevel))
				//同时应满足背景与前景有一定的差别
			{
				*(prlt+(nlie+nhang*nL)*nrgb+0)=*(pD+(nlie+nhang*nL)*nrgb+0);
				*(prlt+(nlie+nhang*nL)*nrgb+1)=*(pD+(nlie+nhang*nL)*nrgb+1);
				*(prlt+(nlie+nhang*nL)*nrgb+2)=*(pD+(nlie+nhang*nL)*nrgb+2);
			}
			else
			{
				*(prlt+(nlie+nhang*nL)*nrgb+0)=0;
				*(prlt+(nlie+nhang*nL)*nrgb+1)=0;
				*(prlt+(nlie+nhang*nL)*nrgb+2)=0;
			}
		}
	}
}

⌨️ 快捷键说明

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