Я пытаюсь использовать изображение dicom и манипулировать им с помощью OpenCV в среде Python. До сих пор я использовал библиотеку pydicom для чтения данных изображения dicom (.dcm) и использования атрибута массива пикселей для отображения изображения с использованием метода imshow OpenCV. Но на выходе просто пустое окно. Вот фрагмент кода, который я использую в данный момент.
import numpy as np
import cv2
import pydicom as dicom
ds=dicom.dcmread('sample.dcm')
cv2.imshow('sample image dicom',ds.pixel_array)
cv2.waitkey()
Если я распечатаю массив, который используется здесь, вывод будет отличаться от того, что я получил бы с обычным массивом numpy. Я также пробовал использовать метод imshow matplotlib, и он смог отобразить изображение с некоторыми искажениями цвета. Есть ли способ преобразовать массив в разборчивый формат для OpenCV?
cv2.waitKey
. Без него графический интерфейс не работает (читайте документацию). - person Dan Mašek   schedule 10.12.2018np.int16
? Какой диапазон (минимальное/максимальное значение)? Он одноканальный? - person Dan Mašek   schedule 10.12.2018imshow
просто делит все на 256, чтобы отобразить его. Если в исходном изображении используется только небольшая часть всего диапазона, результат будет почти полностью черным (или очень темно-серыми, которые очень трудно различить на глаз). Matplotlib выполняет более сложное отображение. - person Dan Mašek   schedule 10.12.2018