在使用Mat 与 unsigned char*互转时,可以搜到最简单的方法是利用opencv中Mat.data函数,如下:
Mat srcimg = Mat(ysize, xsize, CV_8UC1, up, 0); // unsigned char* up => Mat srcimg
unsigned char *up = srcimg.data; // Mat => unsigned char*
但在Mat转 unsigned char*时,经过imshow出来的图片跟实际的不一样(好像是地址不对),导致出现的图总是偏移,查了好久程序没错,就是一直出不来结果,换成利用循环赋值也不行,后面利用
memcpy(up,srcimg.data,ysize* xsizesizeof(unsigned char));赋值后才正确显示图像。