How to access phone camera using python script
You can do this using IP Webcam android application.
Steps -
- Install the application in your android phone.
- Connect your Laptop and Phone in a local network (you can use mobile hotspot).
- Start application and select Start Server option, the application will start capturing video and show you IP addresses.
- Use this IP address to read the video feed using the following python code.
- Process the video using OpenCV.
Python code -
import urllib
import cv2
import numpy as np
import ssl
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
url = 'Your URL'
while True:
imgResp = urllib3.urlopen(url)
imgNp = np.array(bytearray(imgResp.read()), dtype=np.uint8)
img = cv2.imdecode(imgNp, -1)
cv2.imshow('temp',cv2.resize(img,(600,400)))
q = cv2.waitKey(1)
if q == ord("q"):
break;
cv2.destroyAllWindows()
You can find the android application here - IP Webcam
And this video will explain better - How to use with OpenCV
Use IP Webcam android application. url is given by ip webcam and at the end I have added video for video streaming or you can url = 'http://192.168.137.138:8080/shot.jpg' inside for loop before cap.read()
This works for me flawlessly with 1280 x 720 resolution NOTE your url ip will change but add video in the last
import cv2
import numpy as np`
url = 'http://192.168.137.138:8080/video'
cap = cv2.VideoCapture(url)
while(True):
ret, frame = cap.read()
if frame is not None:
cv2.imshow('frame',frame)
q = cv2.waitKey(1)
if q == ord("q"):
break
cv2.destroyAllWindows()