在opencv中更改图像的比例和dtype

时间:2017-09-02 11:50:21

标签: python python-2.7 opencv image-processing

我正在阅读图片并尝试将其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时,它会显示fguint8。我做错了什么?

1 个答案:

答案 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)