这是一个将img转为积分图的函数,哪位大虾帮忙看一下,Mat的数据操作那个地方有错啊,郁闷?????
void createIntegralImage(Mat img)
{uchar * img_data = img.data;
float * inteimgdata = (float *)integralImg.data;
int imgW = img.cols;
int imgH = img.rows;
int imgstep = img.step;
int instep = integralImg.step;
int insize = instep/integralImg.cols;
int t_d = *img_data;
* inteimgdata = t_d;
for (int i=1;i<imgH;i++)
{
t_d = *(img_data+i*imgstep);
*(inteimgdata + i*instep) = t_d + *(inteimgdata+(i-1)*instep);
}
for (int i=1;i<imgW;i++)
{
t_d = *(img_data+i);
*(inteimgdata + insize*i) = t_d + *(inteimgdata+insize*(i-1));
}
float t_d3,t_d4,t_d5,t_d2;
for (int i=1;i<imgH;i++)
{
for (int j=1;j<imgW;j++)
{
t_d = *(img_data+i*imgstep +j);
t_d3 = *(inteimgdata+(i-1)*instep + insize*j);
t_d4 = *(inteimgdata+i*instep +insize*(j-1));
t_d5 = *(inteimgdata+(i-1)*instep + insize*(j-1));
t_d2 = t_d +t_d3 + t_d4 - t_d5;
*(inteimgdata + i*instep +insize*j) =t_d2;
}
}
}