pythonopencvvideo-captureimutils

Why I am facing an error in moving object detection using opencv python?


I am using VS code as a IDE for writing my code for Moving object detection using Opencv python but I have error

Traceback (most recent call last):
  File "d:\Programming\Python programming\Moving_Object_detection.py", line 13, in 
    img = imutils.resize(img, width=500)
  File "D:\Python Vscode\lib\site-packages\imutils\convenience.py", line 69, in resize
    (h, w) = image.shape[:2]
AttributeError: 'NoneType' object has no attribute 'shape'

So can you give me the solution for it. I am providing you my code

import cv2
import time
import imutils

cam = cv2.VideoCapture(2)
time.sleep(1)

firstFrame = None
area = 500
# count = 0

while True:
    _, img = cam.read()
    text = "Normal"
    img = imutils.resize(img, width=500, height=500)
    grayImg = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    gaussianImg = cv2.GaussianBlur(grayImg, (21, 21), 0)
    if firstFrame is None:
        firstFrame = gaussianImg
        continue
    imgDiff = cv2.absdiff(firstFrame, gaussianImg)
    threshImg = cv2.threshold(imgDiff, 25, 255, cv2.THRESH_BINARY)[1]
    threshImg = cv2.dilate(threshImg, None, iterations=2)
    cnts = cv2.findContours(threshImg.copy(), cv2.RETR_EXTERNAL,
                            cv2.CHAIN_APPROX_SIMPLE)
    cnts = imutils.grab_contours(cnts)
    for c in cnts:
        if cv2.contourArea(c) < area:
            continue
        (x, y, w, h) = cv2.boundingRect(c)
        cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)
        # count = count +  1
        text = "Moving Object detected"
    print(text)
    cv2.putText(img, text, (10, 20),
                cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2)
    cv2.imshow("cameraFeed", img)
    key = cv2.waitKey(1) & 0xFF
    if key == ord("q"):
        break

cam.release()
cv2.destroyAllWindows()


Solution

  • Most likely your issue is that openCV can't read you webcam either the index of your webcam might be wrong or it doesn't have permission to view your webcam. If you still need some more help here is a link to open CVs guide to resolving none type issues.

    A page on resolving none type errors
    https://www.pyimagesearch.com/2016/12/26/opencv-resolving-nonetype-errors/