Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   Python IP camera (http://www.chiefdelphi.com/forums/showthread.php?t=148648)

hamza.mahdi 25-05-2016 13:53

Python IP camera
 
Hello,

I am using an axis camera and python to do visual tracking. I have a problem with the set up. There is no problem with the code interpreting. This is my first time using an IP camera so i'm not sure if I'm even doing it correctly.

Here's my code(spacing is correct on my computer)

import numpy as np
import cv2
cap = cv2.VideoCapture()
cap.open("http://169.254.197.26/")

while(cap.isOpened()):
# Capture frame-by-frame
ret, frame = cap.read()

# Our operations on the frame come here
print "hi"

# Display the resulting frame
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break

# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()

kylelanman 25-05-2016 15:06

Re: Python IP camera
 
I don't think this code works. If it does then we really over complicated the way we did it.
Code:

cap = cv2.VideoCapture()
cap.open("http://169.254.197.26/")

I just made this repo public. We haven't officially cleaned it up and done our 2016 code release but it provides an example of how to read images from an IP camera in python.

https://github.com/Frc2481/paul-buny...Camera/main.py

hamza.mahdi 25-05-2016 15:18

Re: Python IP camera
 
Thanks for your reply,

I tried your program but it's missing a library networktables

I'm getting this error
Traceback (most recent call last):
File "C:/Users/Hamza/Pictures/chiefdelphi/main.py", line 5, in <module>
from networktables import NetworkTable
ImportError: No module named networktables

kylelanman 25-05-2016 16:15

Re: Python IP camera
 
Using it verbatim might not be the best idea. You can extract the portion that actually reads the image from the camera.

Regardless the README for the repo details how to install networktables https://github.com/Frc2481/paul-bunyan

virtuald 25-05-2016 16:34

Re: Python IP camera
 
Your URL is incorrect, you need to point at the stream page (I forget the particular URL). Additionally, your OpenCV needs to be linked to libav/ffmpeg for open-by-url to work correctly.

I wouldn't recommend doing it that way anyways, as libav/ffmpeg introduces significant latency because of the way that the stream is decoded (as of the last time I checked, which was 2 years ago).

and3212 25-05-2016 19:51

Re: Python IP camera
 
We also decided to use an AXIS IP Camera for this years game. For connecting to our IP Camera we used the following code. Just don't forget to change the IP Address that we have to the one of your camera as it is most likely different.

Code:

import cv2
import requests
import logging
import sys
from time import sleep

logging.basicConfig(level=logging.DEBUG)

if len(sys.argv) != 2:
    print("Error: specify an IP to connect to!")
    exit(0)

ip = sys.argv[1]

#Wait for IP camera to connect. Will not exit until this works
while(True):
    try:
        url = 'http://10.4.1.19/mjpg/video.mjpg' # IP Address of the Camera
        stream = requests.get(url, stream=True)
        bytes = b''
        print('Connected to IP Camera')
        break
    except:
        sleep(0.5)
        print('No cam yet')
        pass
   

while(True):

    # When nothing is seen there is a divide by zero error, so this skips over those frames
    try:
        # Takes frames from the camera that we can use
        bytes+=stream.raw.read(16384)
        a = bytes.find(b'\xff\xd8')
        b = bytes.find(b'\xff\xd9')
        if a!=-1 and b!=-1:
            jpg = bytes[a:b+2]
            bytes= bytes[b+2:]
            frame = cv2.imdecode(np.fromstring(jpg, dtype=np.uint8),cv2.IMREAD_COLOR)
            img = frame
       
        # Continue code here.....

We had trouble normally connecting to the IP Camera using just OpenCV so we decided to use the requests module. I assume you are using Python 2.7 because of your print statements but if you would like the syntax for Python 3 just message me.


All times are GMT -5. The time now is 10:15.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi