How to access phone camera using python script

You can do this using IP Webcam android application.

Steps -

  1. Install the application in your android phone.
  2. Connect your Laptop and Phone in a local network (you can use mobile hotspot).
  3. Start application and select Start Server option, the application will start capturing video and show you IP addresses.
  4. Use this IP address to read the video feed using the following python code.
  5. 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()