小编Ell*_*lie的帖子

函数"im2uint8"(在MATLAB中)和"bytescale"(在Python中)之间的区别

我想将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)

python matlab dicom

5
推荐指数
1
解决办法
484
查看次数

标签 统计

dicom ×1

matlab ×1

python ×1