cv :: UMat :: convertTo в питоне - PullRequest
       4

cv :: UMat :: convertTo в питоне

0 голосов
/ 27 апреля 2019

Я хочу преобразовать 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 Ответ

1 голос
/ 27 апреля 2019

UMat имеет метод get(), возвращающий numpy.array.Назовите его, затем используйте numpy методы преобразования типов.Например,

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

Чем вы можете преобразовать его обратно в UMat:

array255fum = cv2.UMat(array255f)

array255fum будет иметь тип cv2.CV_32F.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...