-1

我正在尝试将视频读入python(无论是实时的还是预先录制的都无关紧要),然后使用阈值算法处理每一帧,以将视频转换为 2 色格式。

使用简单的阈值方法,我收到此错误:

cv2.imshow('newFrame',newFrame) TypeError: Expected Ptr<cv::UMat> for argument 'mat'

图像的阈值化似乎很简单,但我似乎无法将阈值化方法产生的数据转换为任何其他东西都能识别的格式。我在下面包含了完整的代码。

import numpy as np
import cv2

cap = cv2.VideoCapture('Loop_1.mov')

while(cap.isOpened()):
    ret, frame = cap.read()
    if ret==True:

        threshed = cv2.threshold(frame,50,255,cv2.THRESH_BINARY)
        newFrame = np.array(threshed)

        cv2.imshow('newFrame',newFrame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break

# Release everything if job is finished
cap.release()
#out.release()
cv2.destroyAllWindows()
4

1 回答 1

0

阈值函数应该返回两个参数

retval, 阈值 = cv2.threshold(frame, 50, 255, cv2.THRESH_BINARY)

于 2020-02-18T17:15:31.333 回答