Skip to content

Instantly share code, notes, and snippets.

@thearn
Last active January 12, 2023 17:01
Show Gist options
  • Star 38 You must be signed in to star a gist
  • Fork 17 You must be signed in to fork a gist
  • Save thearn/5562029 to your computer and use it in GitHub Desktop.
Save thearn/5562029 to your computer and use it in GitHub Desktop.
python-opencv ip camera example
import base64
import time
import urllib2
import cv2
import numpy as np
"""
Examples of objects for image frame aquisition from both IP and
physically connected cameras
Requires:
- opencv (cv2 bindings)
- numpy
"""
class ipCamera(object):
def __init__(self, url, user=None, password=None):
self.url = url
auth_encoded = base64.encodestring('%s:%s' % (user, password))[:-1]
self.req = urllib2.Request(self.url)
self.req.add_header('Authorization', 'Basic %s' % auth_encoded)
def get_frame(self):
response = urllib2.urlopen(self.req)
img_array = np.asarray(bytearray(response.read()), dtype=np.uint8)
frame = cv2.imdecode(img_array, 1)
return frame
class Camera(object):
def __init__(self, camera=0):
self.cam = cv2.VideoCapture(camera)
if not self.cam:
raise Exception("Camera not accessible")
self.shape = self.get_frame().shape
def get_frame(self):
_, frame = self.cam.read()
return frame
@tmkasun
Copy link

tmkasun commented Oct 9, 2013

thanks

@raurey
Copy link

raurey commented Oct 1, 2015

any brand?? i'm going to work with a foscam IP cam....

@haaku
Copy link

haaku commented Nov 26, 2015

Got error
error: [Errno 10054] An existing connection was forcibly closed by the remote host

@baijuep
Copy link

baijuep commented Mar 13, 2016

I tried the above code and gets error as
File "z-live_feed.py", line 14
def init(self, 192.168.1.103, user=admin, password=1234QWER):
^
IndentationError: expected an indented block
I had edited these lines
class ipCamera(object):
def init(self, 192.168.1.103, user=admin, password=1234QWER):
self.url = url

@danielAlbuquerque
Copy link

danielAlbuquerque commented May 11, 2016

@baijuep, you need to write URI inside quotes, like that: 'http://192.168.1.103'

@villamarinella
Copy link

How can it run?
This is only def, no main.
I am not same smart like you

@Bhulok
Copy link

Bhulok commented Aug 21, 2016

what is this?
Process finished with exit code 0

@ekangBoyong
Copy link

goodday new to this one. how can use this example. thanks

@neeraj55206
Copy link

how to use this code ?

@iareizagau
Copy link

How can I use this code?
I need to connect to IP cameras using user and password. Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment