Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

mat is not a numerical tuple : openCV error

Tags:

python

opencv

i have write down a code showing error i ma not getting it: Please help: Its showing mat is not a numerical tuple:

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
like image 768
user3218971 Avatar asked Dec 08 '14 19:12

user3218971


2 Answers

I got the answer myself: cv2.threshold returns two values and adding an extra variable at the start rectifies the error like given below as I did in capture.read()

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

should be:

_ ,thresholdImage = cv2.threshold(differenceImage,25,255,cv2.THRESH_BINARY)
like image 186
user3218971 Avatar answered Nov 12 '22 23:11

user3218971


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

could also be

thresholdImage = cv2.threshold(differenceImage,25,255,cv2.THRESH_BINARY)**[1]**
like image 2
gobrandal Avatar answered Nov 12 '22 23:11

gobrandal