Сохранение изображения DICOM в формате JPEG без потерь - PullRequest
0 голосов
/ 03 октября 2018

Мое оригинальное изображение в формате DICOM, и я хочу сохранить его в формате jpg без потерь (или, по крайней мере, сохранить как можно больше информации !!!).Как я могу сделать это в Python?В настоящее время я использую следующий код, который создает изображение с потерями PNG.Я называю это lossy png, потому что изображение png отличается от изображения dicom, когда я вижу изображение dicom в браузере dicom.Кроме того, как я могу изменить это изображение, чтобы получить изображение JPG, а не PNG изображение.

import numpy as np
import png
import pydicom
ds = pydicom.dcmread("./MyImage.dcm")
shape = ds.pixel_array.shape
# Convert to float to avoid overflow or underflow losses.
image_2d = ds.pixel_array.astype(float)
# Rescaling grey scale between 0-255
image_2d_scaled = (np.maximum(image_2d,0) / image_2d.max()) * 256
# Convert to uint
image_2d_scaled = np.uint8(image_2d_scaled)
# Write the PNG file
with open("out.png", 'wb') as png_file:
    w = png.Writer(shape[1], shape[0], greyscale=True)
    w.write(png_file, image_2d_scaled)

1 Ответ

0 голосов
/ 03 октября 2018

Проблема потери информации зависит от глубины пикселя, а не от сжатия изображения.Ваше изображение DICOM имеет около 11 бит на пиксель (от -1024 до 1023), может быть даже больше.И вы конвертируете его в 8-битное изображение без установки окна интенсивности.

Это означает, что исходный пиксель со значением -1024 становится черным, пиксель с +1023 становится белым, но самая важная часть изображения, от -100 до +300, становится серым цветом.Если вас интересуют легкие, то важные значения ниже, если вы хотите видеть кости, то они выше и т. Д. Самое главное, что вы не можете видеть все части изображения DICOM на одном изображении png / jpg / bmp.Вам нужен специальный просмотрщик, который позволяет устанавливать уровни серого.Наиболее распространенным немедицинским форматом, который может обрабатывать всю глубину пикселей, является TIFF, но все же вам нужен специальный просмотрщик.

...