图形图像模板匹配的实现算法
函数名称:Templat(BYTE* m_pdata,int wide, int height,int tempH,int tempW,int tempMX,int tempMY,float * fpArray,float fCoef)
参数:BYTE* m_pdata //指向原DIB图像指针
int wide 原图像宽度
int height 原图像高度
int tempH 模板高度
int tempW 模板宽度
int tempMX 模板的中心元素X坐标(<tempW-1)
int tempMY 模板的中心元素Y坐标(<tempH-1)
float * fpArray 指向模板数组的指针
float fCoef 模板系数
返回值:处原文请找腾讯752018766理成功返回true;处理失败返回false
功能 :用指定模板对灰度图像进行操作
Void Bian YuanJian CeDib::Tempat(BYTE* m_pdata,int wide, int height,int tempH,int tempW,int tempMX,int tempMY,float * fpArray,float fCoef)
{ int i,j,k,l; //循环变量
BYTE* temp= new BYTE[wide*height]; //新图像缓冲区
//初始化新图像为原始图像
Memcpy(temp,m_pdata,wide*height);
float fResult; //像素值计算结果
for(j=tempMY;j<height-tempH+tempMY+1;j++)
for(i=tempMX;i<wide-tempW+tempMX+1;i++)
{ //计算像素值
fResult=0;
for(k=0,k<tempH,k++)
for(l=0,l<tempW,l++) fResult=fResult+m_pdata[(j-tempMY+k)*(i-tempMX+1)]*fpArray[k*tempW+1];
//乘上系数
fResult*=fCoef;
//取绝对值
fResult=(float)fabs(fResult);
//判断是否超过255
if(fResult>255)
//若超过255,直接赋值为255
temp[j*wide+i]=255;
else
//未超过255,赋值为计算结果
temp[j*wide+i]=(int)(fResult+0.5);
}
memcpy(m_pdata,temp,wide*height); //复制处理后的图像
delete temp ;
}
函数名称:Templat24bit(BYTE *m_pdata, int DibWidth, int height, int tempH, int tempW, int tempMX, int tempMY, float *fpArray, float fCoef)
函数类型:void 毕业论文http://www.youerw.com/
参数:BYTE* m_pdata:指向原DIB图像指针
int DibWidth:原图像宽度
int height:原图像高度
int tempH:模板高度
int tempW:模板宽度
int tempMX:模板的中心元素X坐标(<tempW-1)
int tempMY:模板的中心元素Y坐标(<tempH-1)
float *fpArray:指向模板数组的指针
float fCoef:模板系数
返回值:处理成功返回TRUE;处理失败返回FALSE。
功能:用指定模板对24位彩色图像进行操作。
Void BianYuanJianCeDib::Templat24bit(BYTE *m_pdata, int DibWidth, int height, int tempH, int tempW, int tempMX, int tempMY, float *fpArray, float fCoef)1780