在python中的cv :: UMat :: convertTo

时间:2019-04-27 15:24:41

标签: python numpy opencv

我想将UMat转换为其他类型。

我已经尝试使用UMat方法convertTo导致出现以下错误:

AttributeError: 'cv2.UMat' object has no attribute 'convertTo'

我还尝试使用numpy方法np.float32,该方法显然不适用于UMat

TypeError: float() argument must be a string or a number, not 'cv2.UMat'

我将使用一个numpy数组,但我需要使用UMat格式的其他方法。


这是有问题的代码:

array255 = cv2.UMat(int(height), int(width), type=cv2.CV_8UC1, s=(255))

...

hsv_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)

...

lhsv = cv2.split(hsv_frame)
s = cv2.subtract(array255, lhsv[1])
v = cv2.subtract(array255, lhsv[2])
#s = s.convertTo(cv2.CV_32F)
#v = v.convertTo(cv2.CV_32F)
s = np.float32(s)
v = np.float32(v)

1 个答案:

答案 0 :(得分:1)

UMat的方法为get(),返回一个numpy.array。调用它,而不是使用numpy类型转换方法。例如

array255f = array255.get().astype('f')

比您可以将其转换回UMat

array255fum = cv2.UMat(array255f)

array255fum的类型为cv2.CV_32F