tmp_c= (c * 255).astype(“uint8”)
ssimw = compare_ssim(c, b, win_size=3, data_range=c.ptp())
ssimw = compare_ssim(c, b, win_size=3, data_range=255)
newimg = (fake_BB + 1) * 0.5 * 4095
show_image(newimg)
print("new_img = ", newimg.dtype)
tmp_newimg = newimg
tmp_newimg = (tmp_newimg - np.min(tmp_newimg)) / (np.max(tmp_newimg) - np.min(tmp_newimg))
print("tmp_newimg1=", tmp_newimg.dtype, tmp_newimg.shape, tmp_newimg.min(), tmp_newimg.max())
# tmp_newimg1= float32 (512, 512) 0.0 1.0
tmp_newimg = (tmp_newimg * 255).astype("uint16")
print("tmp_newimg2=", tmp_newimg.dtype, tmp_newimg.shape, tmp_newimg.min(), tmp_newimg.max())
# tmp_newimg2= uint16 (512, 512) 0 255
newimg = tmp_newimg
ds.PixelRepresentation = 1
ds.SeriesInstanceUID = dsa
# newimg[newimg == 0] = -2000
if ds[0x0028, 0x0100].value == 16: # 如果dicom文件矩阵是16位格式
newimg = newimg.astype(np.int16, casting="safe")
elif ds[0x0028, 0x0100].value == 8:
newimg = newimg.astype(np.int8)
else:
raise Exception("unknow Bits Allocated value in dicom header")