Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何将列表转换为cv::UMat?_Python 3.x_Opencv - Fatal编程技术网

Python 3.x 如何将列表转换为cv::UMat?

Python 3.x 如何将列表转换为cv::UMat?,python-3.x,opencv,Python 3.x,Opencv,我有这个列表,这个列表来自dlib探测器: dets = detector(frame, 0) dets = [list(rect_to_bb(dets[0]))] print(dets) [[277, 294, 150, 149]] 如何将此列表转换为Umat faces = cascade.detectMultiScale(gray, 1.3, 5) print(faces) [[259 264 182 182]] 例外情况是,当我使用列表时 _, landmarks = fac

我有这个列表,这个列表来自dlib探测器:

dets = detector(frame, 0)
dets = [list(rect_to_bb(dets[0]))]
print(dets)
[[277, 294, 150, 149]]
如何将此列表转换为Umat

faces = cascade.detectMultiScale(gray, 1.3, 5)
print(faces)
[[259 264 182 182]]
例外情况是,当我使用列表时

    _, landmarks = facemark.fit(gray, dets)
TypeError: Expected cv::UMat for argument 'faces'

请看

为什么您认为需要将其转换为UMat?因为错误消息?如果是这样,那么这很可能是一个X-Y问题。当参数类型解析失败时,通常会出现此消息。它首先尝试转换为Mat,然后在第二次尝试时尝试UMat,只有最后一次失败才会产生错误,因此可能会产生误导。如果您只需要将dets设置为一个简单的numpy数组而不是列表,我不会感到惊讶。很难说准确无误。支持丹的评论。对于cv2.FillConverExpoly的points参数,我得到了相同的错误,因为我传递了一个numpy数组。在我的例子中,解决方案只是将数组的dtype设置为np.int32,因此不需要实际转换为UMat。
dets = cv2.UMat(np.array(dets, dtype=np.uint8))