Python JPG图片转DCM

和dcm转dcm一样的方法,同样是通过修改dcm.PixelData来改变dcm的像素内容。

下面是将一个三通道黑白JPG图片(512,512,3)转为dcm文件的例子:

注意:黑白二值图的三个通道,每个通道的数值都是一样的,取一个就行,这样就得到(512,512)的二维数组了。

import pydicom
import numpy as np
import os
from pydicom.uid import ExplicitVRLittleEndian
import cv2
img = cv2.imread("001.jpg")
print(img.shape)    #(512, 512, 3)
# cv2.imshow("001.jpg",img)
# cv2.waitKey()
print(img.dtype)    #uint8
img_arr16 = np.array(img, dtype=np.int16)
#print(data_changed)
data_changed = img_arr16[:, :, 0]
print(data_changed.shape)   #(512, 512)
pd = data_changed.tobytes()
print(len(pd))  #524288
dcm = pydicom.dcmread("001.dcm")
dcm.PixelData = pd
dcm.file_meta.TransferSyntaxUID = ExplicitVRLittleEndian
dcm.save_as("002.dcm")

输出:

(512, 512, 3)
uint8
(512, 512)
524288

Python JPG图片转DCM_第1张图片

 002.dcm:

Python JPG图片转DCM_第2张图片

 

你可能感兴趣的:(Python,dicom,python,图像处理)