Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में वेबकैम मोशन डिटेक्टर प्रोग्राम?

इसमें हम पाइथन प्रोग्राम लिखने जा रहे हैं जो वेबकैम से ली गई छवियों का विश्लेषण करने जा रहा है और आंदोलन का पता लगाने और एक सीएसवी फ़ाइल में वेबकैम वीडियो के समय-अंतराल को संग्रहीत करने का प्रयास करता है।

आवश्यक पुस्तकालय

हम उसके लिए OpenCV और पांडा लाइब्रेरी का उपयोग करने जा रहे हैं। यदि यह पहले से स्थापित नहीं है, तो आप इसे पाइप का उपयोग करके, कुछ इस तरह से स्थापित कर सकते हैं:

$pip install opencv2, pandas

उदाहरण कोड

#Import required libraries
import cv2
import pandas as pd
import time
from datetime import datetime

#Initialise variables
stillImage = None
motionImage = [ None, None ]
time = []

# Initializing the DataFrame with start and end time
df = pd.DataFrame(columns = ["start", "end"])

# Capturing video
video = cv2.VideoCapture(0)

while True:
   # Start reading image from video
   check, frame = video.read()
   motion = 0

   # Convert color image to gray_scale image
   gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
   gray = cv2.GaussianBlur(gray, (21, 21), 0)
   if stillImage is None:
      stillImage = gray
      continue
   # Still Image and current image.
   diff_frame = cv2.absdiff(stillImage, gray)

   # change the image to white if static background and current frame is greater than 25.
   thresh_frame = cv2.threshold(diff_frame, 25, 255, cv2.THRESH_BINARY)[1]
   thresh_frame = cv2.dilate(thresh_frame, None, iterations = 2)
   # Finding contour and hierarchy from a moving object.
   contours,hierachy = cv2.findContours(thresh_frame.copy(),
      cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
   for contour in contours:
      if cv2.contourArea(contour) < 10000:
         continue
      motion = 1
      (x, y, w, h) = cv2.boundingRect(contour)
      cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 3)
   # Append current status of motion
   motionImage.append(motion)
   motionImage = motionImage[-2:]
   # Append Start time of motion
   if motionImage[-1] == 1 and motionImage[-2] == 0:
      time.append(datetime.now())

   # Append End time of motion
   if motionImage[-1] == 0 and motionImage[-2] == 1:
      time.append(datetime.now())
   # Displaying image in gray_scale
   cv2.imshow("Gray_Frame", gray)

   # Display black and white frame & if the intensity difference is > 25, it turns white
   cv2.imshow("Threshold Frame", thresh_frame)
   # Display colored frame
   cv2.imshow("Colored_Frame", frame)

   key = cv2.waitKey(1)
   # Press q to stop the process
   if key == ord('q'):
      if motion == 1:
         time.append(datetime.now())
      break

# Append time of motion
for i in range(0, len(time), 2):
   df = df.append({"Start":time[i], "End":time[i + 1]}, ignore_index = True)

# Creating a csv file in which time of movements will be saved
df.to_csv("FrameInMotion_time.csv")

video.release()

# close window
cv2.destroyAllWindows()

आउटपुट

पायथन में वेबकैम मोशन डिटेक्टर प्रोग्राम?

हम देख सकते हैं कि हमें 3 अलग-अलग विंडोज़ मिलेंगे जो वेबकैम से हमारे वर्तमान आंदोलन को तीन अलग-अलग मोड (ग्रेस्केल, रंगीन और ब्लैक एंड व्हाइट) में प्रदर्शित करने जा रहे हैं।

यह हमारे वेबकैम मोशन के डेटाटाइम को एक सीएसवी में भी स्टोर करेगा और सीएसवी से हमारा आउटपुट कुछ इस तरह होगा:

FrameMotion_time.csv (आउटपुट)

start     end      End                            Start
0                  2019-02-21 18:10:59.718005     2019-02-21 18:08:35.791487

  1. पायथन प्रोग्राम में सिलेक्शन सॉर्ट

    इस लेख में, हम Python 3.x में सिलेक्शन सॉर्ट और उसके कार्यान्वयन के बारे में जानेंगे। या पहले। चयन क्रम . में एल्गोरिथम, एक सरणी को पुनरावर्ती रूप से अनसोल्ड भाग से न्यूनतम तत्व ढूंढकर और शुरुआत में सम्मिलित करके सॉर्ट किया जाता है। किसी दिए गए सरणी पर चयन क्रम के निष्पादन के दौरान दो उप-सरणी बनते

  1. ओपनसीवी पायथन प्रोग्राम एक छवि को धुंधला करने के लिए?

    OpenCV इमेज प्रोसेसिंग के लिए सबसे अच्छे पायथन पैकेज में से एक है। साथ ही जैसे सिग्नल से जुड़ा शोर होता है, छवियों में भी मुख्य रूप से स्रोत (कैमरा सेंसर) से विभिन्न प्रकार के शोर होते हैं। पायथन ओपनसीवी पैकेज इमेज स्मूथिंग के तरीके प्रदान करता है जिसे ब्लरिंग भी कहा जाता है। यही हम इस खंड में करने

  1. OpenCV का उपयोग करके छवि के किनारों का पता लगाने के लिए पायथन प्रोग्राम

    इस समस्या में, हम देखेंगे कि पायथन किसी छवि या वीडियो फ़ाइल के किनारों का पता कैसे लगा सकता है। इसे प्राप्त करने के लिए, हमें OpenCV लाइब्रेरी की आवश्यकता है। OpenCV लाइब्रेरी मुख्य रूप से कंप्यूटर विज़न के लिए डिज़ाइन की गई है। यह खुला स्रोत है। मूल रूप से इसे इंटेल द्वारा डिजाइन किया गया था। यह ओप