В чем может быть причина плохого сюжета изображения DICOM
Что может быть причиной того, что файл дикомы этого обычного рентгеновского снимка отображается неправильно:
Используемый алгоритм выглядит следующим образом:
Исходная матрица изображения 3d:
int [1:2014, 1:2014, 1:3] 110 51 99 113 52 101 111 53 102 110 ...
Этот RGB конвертируется в шкалу серого по формуле:
gray = 0.3*mat[,,1] + 0.59*mat[,,2] + 0.11*mat[,,3] ;
И тогда он строится после указания цвета как:
grey(0:64/64)
Где может быть ошибка?
Я использую пакет oro.dicom в R с функцией:
jj = readDICOMFile(fname, endian = "little", flipud = TRUE, DICM = TRUE, skipSequence = FALSE, pixelData = TRUE, warn = -1, debug = FALSE)
и он возвращает матрицу jj $ img, структура которой:
int [1:2014, 1:2014, 1:3] 110 51....
Я тогда преобразовываю это в серый цвет и строю это. Если бы это был rgba, матрица была бы 2014 * 2014 * 4, а не * 3. Заголовок изображения dicom упоминает «PhotometricInterpretation» как «RGB». Заголовок также упоминает строки и столбцы как 2014 каждый. Может ли это быть связано с битовой проблемой: leadtools.com/sdk/medical/dicom-spec17.htm
Редактировать: количество выделенных битов равно 8, число сохраненных битов равно 8, а старшего - 7.
Ниже приведена ссылка на образец изображения dicom, который имеет похожую матрицу изображения и дает похожую ошибку:http://www.barre.nom.fr/medical/samples/files/US-RGB-8-esopecho.gz