使用此代码时,我没有得到我想要的结果(见图)。
DicomImage *image = new DicomImage("/home/000001.dcm");
cv::Mat inputImage(int(image->getHeight()), int(image->getWidth()), CV_16UC1, (uchar*)image->getOutputData(16));
因为图像的深度为 17,如果将 CV_16UC1 更改为 CV_32xx,我会得到一个无意义的图像。显然 17 位需要超过 16 位才能正确存储。我的问题是,我应该使用哪种 Opencv Map 类型(CV_32SC1,CV_32SC2,CV_32SC3,CV_32SC4 或其他),它们之间有什么区别,我是否必须使用位掩码来防止在其余高位中出现垃圾,我该如何去做?
[