2014-12-08 4 views
5

я должен записать код, показывающий ошибку я не м получаю это: Пожалуйста, помогите: Его показ мата не числовой кортеж:мата не числовой кортеж: OpenCV ошибка

import cv 
import cv2 
capture = cv2.VideoCapture("j.3gp") 

while(1): 

    _, frame1 = capture.read() 

    grayImage1 = cv2.cvtColor(frame1, cv2.COLOR_BGR2GRAY) 
    _, frame2 = capture.read() 
    grayImage2 = cv2.cvtColor(frame2, cv2.COLOR_BGR2GRAY) 
    differenceImage = cv2.absdiff(grayImage1,grayImage2) 
    thresholdImage = cv2.threshold(differenceImage,25,255,cv2.THRESH_BINARY) 
    cv2.imshow("Difference Image", differenceImage) 
    cv2.imshow("threshold Image", thresholdImage) 
    cv2.imshow("Image", frame1) 
    k = cv2.waitKey(30) & 0xff 


Error arising : 
----------------------------------------------------------------------------------------- 

Traceback (most recent call last): 
    File "Desk.py", line 15, in <module> 
    cv2.imshow("threshold Image", thresholdImage) 
TypeError: mat is not a numerical tuple 

ответ

10

Я получил ответ сам: cv2.threshold возвращает два значения и добавления дополнительной переменной в начале выпрямляет ошибку, как приведено ниже, как я сделал в capture.read()

thresholdImage = cv2.threshold(differenceImage,25,255,cv2.THRESH_BINARY) 

должно быть:

_ ,thresholdImage = cv2.threshold(differenceImage,25,255,cv2.THRESH_BINARY) 
+0

^^ ах, да. он также возвращает пороговое значение (в случае, если вы используете otsu) – berak

1

_, thresholdImage = cv2.threshold (differenceImage, 25255, cv2.THRESH_BINARY)

также может быть

thresholdImage = cv2.threshold(differenceImage,25,255,cv2.THRESH_BINARY)**[1]** 
Смежные вопросы