【发布时间】:2020-03-27 18:54:18
【问题描述】:
我有用于将图像转换为“CV_32FC1”的 C++ 代码,但我想在 Python 中做同样的事情。这是我的 C++ 代码。
img.convertTo(img, CV_32FC1);
我如何在 Python 中做同样的事情?
【问题讨论】:
标签: python image opencv image-processing opencv3.0
我有用于将图像转换为“CV_32FC1”的 C++ 代码,但我想在 Python 中做同样的事情。这是我的 C++ 代码。
img.convertTo(img, CV_32FC1);
我如何在 Python 中做同样的事情?
【问题讨论】:
标签: python image opencv image-processing opencv3.0
Python 使用numpy 来管理图像像素数据,你可以在 numpy 中做这样的事情来改变矩阵的数据类型:
img = img.astype("float32")
正如@HansHirse 在 cmets 中添加的那样,此操作只会更改矩阵的数据类型,但如果要更改像素值的比例,则应使用img = img.astype("float32")/255,将所有像素值转换为范围0.0 - 1.0
【讨论】:
convertTo,记错了。实际上,convertTo 不会自动缩放,但也会改变数据类型。因此,普通的.astype 将正确模仿convertTo 的行为。
cvtColor() 是否有用吗?
src 相同大小和深度的输出图像。 所以,不 – 类型转换不应该使用cv2.cvtColor。
您可以使用该功能
cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
【讨论】: