opencv IplImage类型数据与Uchar* 类型数据不能使用如下方式强制转换。
memcpy(Image->imageData,pData,sz.width*sz.height);
因为Image->widthStep的宽度并不等于sz.width
使用如下方式可以完成转换:
uchar* ptr;
for(i =0;i<Image->height;i++){
ptr =(uchar*)Image->imageData +i*Image->widthStep;
for(int j = 0;j<Image->width;j++)
{
pTemp[i*sz.width +j] = ptr[j];
}
}
DWORD t1 = GetTickCount();
FindAndSort(pTemp,sz.width,sz.height,10000);
for(i =0;i<Image->height;i++)
{
ptr =(uchar*)Image->imageData +i*Image->widthStep;
for(int j = 0;j<Image->width;j++)
{
ptr[j] = pTemp[i*sz.width +j];
}
}