Connect your android phone camera to OpenCV Python (original) (raw)
Last Updated : 03 Jan, 2023
Prerequisites: OpenCV
OpenCV is a huge open-source library for computer vision, machine learning, and image processing. OpenCV supports a wide variety of programming languages like Python, C++, Java, etc. It can process images and videos to identify objects, faces, or even the handwriting of a human.
Many a time, while doing Computer Vision or Image Processing using our PC’s webcam is not a very option. Maybe we want to increase the camera quality of our webcam, or we want to create some image processing applications which will use an android camera as the medium.
This article uses Windows to do this. But the basics of the code will be same on other Operating systems too.
Approach
- Download and install IP Webcam application on your mobile phone.
- Then make sure your PC and Phone both are connected to the same network. Open your IP Webcam application on your both, click “Start Server” (usually found at the bottom). This will open a camera on your Phone.
- A URL is being displayed on the Phone screen, type the same URL on your PC browser, and under “Video renderer” Section, click on “Javascript”.
- You can see video captured on your phone, which starts showing up on your browser. Now, what we will be going to do is, taking image data from the URL using the request module and convert this to an image frame using NumPy, and finally, start using our Android camera as a webcam in Python.
- In the code:
- Import module
- Add URL displayed in your phone
- Continuous fetch data from URL
- Keep displaying this data collected
- Close window
Program:
Python3
import
requests
import
cv2
import
numpy as np
import
imutils
while
True
:
`` img_resp
=
requests.get(url)
`` img_arr
=
np.array(bytearray(img_resp.content), dtype
=
np.uint8)
`` img
=
cv2.imdecode(img_arr,
-
1
)
`` img
=
imutils.resize(img, width
=
1000
, height
=
1800
)
`` cv2.imshow(
"Android_cam"
, img)
`` if
cv2.waitKey(
1
)
=
=
27
:
`` break
cv2.destroyAllWindows()
Output: