opencv mat如何保存16位图像?不降低Depth

使用OpenCV 的 Mat 转存16位数据时,开辟Mat 即使为 CV_16UC1,但赋值时mat.data仍然是uchar,如何能保持原始16位数据(unsinged short),不降低精度(depth)?


 
   
Mat矩阵中数据指针Mat.data是uchar类型指针,CV_8U系列可以通过计算指针位置快速地定位矩阵中的任意元素。

你用的类型是CV_16UC1,是不能用Mat.data的

应该是:
CvMat* mat=cvCreateMat(M,N,CV_16UC1);
unsinged short * ptr=(unsinged short *)(mat->data.ptr+(m-1)*mat->step);
其中*(ptr+n-1)就是要访问的数值。




OpenCV Mat数据类型及位数总结

猜你喜欢

转载自blog.csdn.net/tony2278/article/details/80066270
今日推荐