При использовании этого кода я не получаю желаемый результат (см. Рисунок).
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 мне следует использовать (CV_32SC1, CV_32SC2, CV_32SC3, CV_32SC4 или другое), в чем разница между ними, нужно ли использовать битовую маску для предотвращения попадания мусора в остальные старшие биты и как я могу это сделать?сделать это?
[