图像拷贝 错位 O_o
自己写了一个这样的函数:
实现将 原始图像 ---src 指向其数据img->imageData, 其中 img是灰度图,其步长为 widStep
中 rect 区域 拷贝到 dst 中。。。。
void copyData(void * src, int widStep, void * dst, void * rect)
{
ScRect* r = (ScRect*)rect;
int i = 0, j = 0;
unsigned char* pSrc = (unsigned char*)src;
unsigned char* pDes = (unsigned char*)dst;
for(i = r->y; i < r->y + r->h;i ++)
{
pSrc = (unsigned char*)src+ i * widStep + r->x;
for(j = 0;j < r->w;j++)
{
*pDes++ = *pSrc++;
}
}
r = NULL;
}
int main()
{
IplImage *img = cvLoadImage("D:\\vv.jpg", 0);
CvRect r = cvRect(0, 0, 200, 200);
IplImage *eye = cvCreateImage(cvSize(200, 200), 8, 1);
copyData((void *)img->imageData, img->widthStep , eye->imageData, &r);
cvShowImage("eye", eye);
cvWaitKey(-1);
}