归一化为 [0,1] 后图像全黑

Image fully black after normalizing to [0,1]

我正在尝试将图像规范化为 [0,1],如下所示:

img = cv2.imread('/home/images/' + name)
norm_image = cv2.normalize(img, None, alpha=0, beta=1, norm_type=cv2.NORM_MINMAX)

当我尝试展示它时:

cv2.imshow('normalized', norm_image)
cv2.waitKey()

图像全黑。我该如何解决这个问题?

使用cv2.imread打开图片时,默认数据类型为整数

当您使用 cv2.normalize 且未指定输出数据类型时,默认为与输入相同的类型,在本例中为 integer

只有使用 float 值将图像归一化在 0 - 1 之间才有意义。否则它只是 0 或 1。

尝试添加输出数据类型参数dtype=cv2.CV_32F

norm_image = cv2.normalize(img, None, alpha=0, beta=1, norm_type=cv2.NORM_MINMAX, dtype=cv2.CV_32F)