-
-
Save pknowledge/623515e8ab35f1771ca2186630a13d14 to your computer and use it in GitHub Desktop.
import cv2 | |
import numpy as np | |
cap = cv2.VideoCapture('vtest.avi') | |
frame_width = int( cap.get(cv2.CAP_PROP_FRAME_WIDTH)) | |
frame_height =int( cap.get( cv2.CAP_PROP_FRAME_HEIGHT)) | |
fourcc = cv2.VideoWriter_fourcc('X','V','I','D') | |
out = cv2.VideoWriter("output.avi", fourcc, 5.0, (1280,720)) | |
ret, frame1 = cap.read() | |
ret, frame2 = cap.read() | |
print(frame1.shape) | |
while cap.isOpened(): | |
diff = cv2.absdiff(frame1, frame2) | |
gray = cv2.cvtColor(diff, cv2.COLOR_BGR2GRAY) | |
blur = cv2.GaussianBlur(gray, (5,5), 0) | |
_, thresh = cv2.threshold(blur, 20, 255, cv2.THRESH_BINARY) | |
dilated = cv2.dilate(thresh, None, iterations=3) | |
contours, _ = cv2.findContours(dilated, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) | |
for contour in contours: | |
(x, y, w, h) = cv2.boundingRect(contour) | |
if cv2.contourArea(contour) < 900: | |
continue | |
cv2.rectangle(frame1, (x, y), (x+w, y+h), (0, 255, 0), 2) | |
cv2.putText(frame1, "Status: {}".format('Movement'), (10, 20), cv2.FONT_HERSHEY_SIMPLEX, | |
1, (0, 0, 255), 3) | |
#cv2.drawContours(frame1, contours, -1, (0, 255, 0), 2) | |
image = cv2.resize(frame1, (1280,720)) | |
out.write(image) | |
cv2.imshow("feed", frame1) | |
frame1 = frame2 | |
ret, frame2 = cap.read() | |
if cv2.waitKey(40) == 27: | |
break | |
cv2.destroyAllWindows() | |
cap.release() | |
out.release() |
@mihuzz what is the file extension of the video you are trying to run this code on?
If it is not avi
you will need to handle the video with the appropriate openCV codec for your file tyoe.
For example, for an MP4 you could use:
fourcc = cv2.VideoWriter_fourcc(*"X264")
out = cv2.VideoWriter("output.mp4", fourcc, 15.0, (1280, 360))
i got this error
Traceback (most recent call last):
File "basic_motion_detection_opencv_python.py", line 22, in
contours, _ = cv2.findContours(dilated, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
Hello,
can you help me to find velocity of moving objects in this code?
Can you help me to count how many person in the video?
I copied the code, the detection and tracking worked well, but after that, i got this error, can anyone help me?
Traceback (most recent call last):
File "/Users/guosicheng/PycharmProjects/test1/test11.py", line 19, in
diff = cv2.absdiff(frame1, frame2)
cv2.error: OpenCV(4.2.0) /Users/travis/build/skvark/opencv-python/opencv/modules/core/src/arithm.cpp:669: error: (-209:Sizes of input arguments do not match) The operation is neither 'array op array' (where arrays have the same size and the same number of channels), nor 'array op scalar', nor 'scalar op array' in function 'arithm_op'
i got this error
Traceback (most recent call last):
File "basic_motion_detection_opencv_python.py", line 22, in
contours, _ = cv2.findContours(dilated, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
i got this error
Traceback (most recent call last):
File "basic_motion_detection_opencv_python.py", line 22, in
contours, _ = cv2.findContours(dilated, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
HI!
Read tutuorial by link below, u forgot about "dilated":
https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_imgproc/py_contours/py_contours_begin/py_contours_begin.html
Hey, I have a question. Is this code not using any deep learning models for detection?? from what I can see, it is only detecting motion by extracting contours in the successive frames.
i got this error
Traceback (most recent call last):
File "basic_motion_detection_opencv_python.py", line 22, in
contours, _ = cv2.findContours(dilated, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
change contours, to contours,hierarchy
in next line change cnts into contours
@mihuzz what is the file extension of the video you are trying to run this code on?
If it is notavi
you will need to handle the video with the appropriate openCV codec for your file tyoe.For example, for an MP4 you could use:
fourcc = cv2.VideoWriter_fourcc(*"X264") out = cv2.VideoWriter("output.mp4", fourcc, 15.0, (1280, 360))
Ive got Error. Please help
Cant run this code
`Traceback (most recent call last):
File "/home/mihuzz/PycharmProjects/CV2/bas.py", line 15, in
print(frame1.shape)
AttributeError: 'NoneType' object has no attribute 'shape'Process finished with exit code 1
`
It is working even for mp4. These lines are working without any error. It might be an issue with IDE, I am using Spyder.
cap = cv2.VideoCapture('video.mp4')
frame_width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
frame_height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
fourcc = cv2.VideoWriter_fourcc('X', 'V', 'I', 'D')
out = cv2.VideoWriter("output.mp4", fourcc, 5.0, (1280,720))
ret, frame1 = cap.read()
ret, frame2 = cap.read()
print(frame1.shape)
You have imported cv2 as cv, and using cv2.
Replace cv2 with cv in program not while importing.
import cv2 as cv
cap=cv.VideoCapture("video.mp4);
Do like this.
You have imported cv2 as cv, and using cv2.
Replace cv2 with cv.
Hey @Geeky-star,
Same error
maybe the reason why is throwing an error is opencv version?
@tonycpp
You have imported cv2 as cv, and using cv2.
Replace cv2 with cv.Hey @Geeky-star,
Same error
maybe the reason why is throwing an error is opencv version?
Are you using VS Code? I was also facing same issues with it but the same code will run well in any other IDE.
Quick fix if you still want to use VSCode, follow this thread https://stackoverflow.com/questions/50612169/pylint-not-recognizing-cv2-members
use cv instead of cv2 ,because you have imported cv2 as cv
how can i get the test video???
hi! How can I get the sample video shown in your youtube video?
hi! How can I get the sample video shown in your youtube video?
I guess these two videos will help you
https://www.youtube.com/watch?v=MkcUgPhOlP8&t=2s
https://www.youtube.com/watch?v=PEApucRsaJ4&list=PLyhJeMedQd9QrXtCspclJ9ace2urp05o0&index=25
hey there, does anyone know how to get the centroids of the boxes
Ive got Error. Please help
Cant run this code
`Traceback (most recent call last):
File "/home/mihuzz/PycharmProjects/CV2/bas.py", line 15, in
print(frame1.shape)
AttributeError: 'NoneType' object has no attribute 'shape'Process finished with exit code 1
`
I am having the same problem, are there any solutions
Hello,
I have a query. In this video, there is a No one is present in the video or No one Movement in the video.
So what code do I write for the No movement
I used lots of if statements in this code but is the problem is No Movement only 1-time display.
Simple I want to create Present or absent in the screen. I case the user left the screen so display Absent or User arrived so display Prenet
Can you Please Help Me
Ive got Error. Please help
Cant run this code
`Traceback (most recent call last):
File "/home/mihuzz/PycharmProjects/CV2/bas.py", line 15, in
print(frame1.shape)
AttributeError: 'NoneType' object has no attribute 'shape'Process finished with exit code 1
`
It does not run in my Python IDE also. It is not capturing any video that's why frame has None values and None does not have any shape.
print(frame1.shape)
AttributeError: 'NoneType' object has no attribute 'shape'
Ive got Error. Please help
Cant run this code
Traceback (most recent call last): File "/home/mihuzz/PycharmProjects/CV2/bas.py", line 15, in print(frame1.shape) AttributeError: 'NoneType' object has no attribute 'shape' Process finished with exit code 1
I am having the same problem, are there any solutions
Ive got Error. Please help
Cant run this code
Traceback (most recent call last): File "/home/mihuzz/PycharmProjects/CV2/bas.py", line 15, in print(frame1.shape) AttributeError: 'NoneType' object has no attribute 'shape' Process finished with exit code 1
It does not run in my Python IDE also. It is not capturing any video that's why frame has None values and None does not have any shape.
print(frame1.shape)
AttributeError: 'NoneType' object has no attribute 'shape'
For some reason when I change video source file to be mp4 it works. avi file gives me this error
cap = cv2.VideoCapture('filename.mp4')
Ive got Error. Please help
Cant run this code
`Traceback (most recent call last):
File "/home/mihuzz/PycharmProjects/CV2/bas.py", line 15, in
print(frame1.shape)
AttributeError: 'NoneType' object has no attribute 'shape'
Process finished with exit code 1
`