图像数组在进行加减时,可能自动转换为np.float64,如果后续保存为图像时,可能存在问题。
f1数组元素类型为np.float64位时,若进行cv2.imwrite(os.path.join(save_dir,file),f1),
会将np.float64自动转为unit8位,该转换过程不是线性映射,而是自动截断,将大于255的元素赋值为255.
因此,在imwrite时,需要将数组先转换为uint16, f1 = f1.astype(“uint16”)
再次imwrite,然后通过imread读取可以看到元素类型为uint16