我正在阅读图片并尝试将其dtype更改为float32,将值更改为范围0-1
。这是我的代码:
img = cv2.imread('sample.png')
fg = np.ones_like(img)*255
fg[(img >0).any(-1)] = 0
fg = cv2.convertScaleAbs(fg, 1.0/255.0, cv2.CV_32FC3)
但是当我检查dtype
的{{1}}和min and max
时,它会显示fg
和uint8
。我做错了什么?
答案 0 :(得分:1)
不应使用cv2.convertScaleAbs
,而应将其替换为:
fg = fg / 255.0
现在,当您检查fg
中的最小值和最大值时,它们将按以下方式返回:
np.min(fg)
Out[150]: 0.0
np.max(fg)
Out[151]: 0.0
您也可以尝试:
fg = np.float32(fg / 255)