我想将DICOM图像从int16转换为uint8.我已经在Python中使用了它Z_axis = bytescale(img),但是这给出了与im2uint8在MATLAB中使用不同的结果.在MATLAB中,使用uint8转换后的DICOM图像的最小值和最大值im2uint8分别为(124,136).但是使用转换后Python中的这些值bytescale是(0,255).
Python代码:
for person in range(0, len(dirs1)):
if not os.path.exists(os.path.join(directory, dirs1[person])):
Pathnew = os.path.join(directory, dirs1[person])
os.makedirs(Pathnew)
for root, dirs, files in os.walk(os.path.join(path, dirs1[person])):
dcmfiles = [_ for _ in files if _.endswith('.dcm')]
for dcmfile in dcmfiles:
dcm_image = pydicom.read_file(os.path.join(root, dcmfile))
img = dcm_image.pixel_array
Z_axis = bytescale(img)
minVal = Z_axis.min()
maxVal = Z_axis.max()
Run Code Online (Sandbox Code Playgroud)
Matlab代码:
for j = 1 : length(Files2)
img = dicomread([galleryPath Files2(j).name]);
Z_axis = im2uint8(img);
minVal = min(min(Z_axis));
maxVal …Run Code Online (Sandbox Code Playgroud)