Mat is not a numerical tuple: openCV error

I will write a code showing the error, I do not get 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 
+5
source share
2 answers

I myself got the answer: cv2.threshold returns two values, and adding an additional variable at the beginning corrects the error, as described below, as I did in capture.read()

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

it should be:

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

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

could also be

 thresholdImage = cv2.threshold(differenceImage,25,255,cv2.THRESH_BINARY)**[1]** 
+1
source

Source: https://habr.com/ru/post/1208604/


All Articles