Getting Started with Webcam and IPCam in Matlab
In this tutorial, we will look at how to install the WEBCAM and IPCAM hardware package for MATLAB, which is necessary to access the hardware. We will also look at how to access the laptop's in-built WEBCAM and external USB webcam with Matlab code, to take snapshots, preview, and record video clips. <!--more--> We will understand more about the android application to convert mobile phone's camera as an IPCAM using Matlab.
A Web Camera (WEBCAM) is connected to a PC and can be used to make videos available to other users. The connection is normally through an USB. IP Cameras (IPCAM) involve the combination of high-end web functionality, PC and network interface to one network-ready product.
Prerequisites
To follow this tutorial along - the reader will need the following:
- Matlab installed on your PC.
- Webcam and Ipcam support packages installed.
- Webcam Android application installed on your mobile phone.
Table of contents
- Need for camera interface
- Installation of hardware support package
- Matlab code for accessing laptop’s inbuilt webcam and an external USB webcam
- How to access external USB camera
- Matlab code for capturing a live video clip
- Making mobile phone as an IP camera
- How to access the live video stream from your IP to your Matlab
- Conclusion
Need for camera interface
There are several projects which require either images or videos as primary input.
Few use cases where we require image or video as input are:
- Face identification and recognition.
- Face recognition-based security system and attendance system.
- Facial expression recognition.
- Object identification and classification.
- Fire detection on site.
- Vehicle license plate recognition and vehicle logging system.
- and many more...
Hardware support package installation
- Log in to your MathWork account at the top right corner of the Matlab window.
Signing into MathWork account
- Click on the
Add-Ons
drop-down arrow and select theGet hardware support package
.
Add-Ons to download hardware support package
- The hardware support package opens up and on the search tab, type
MATLAB support package for USB webcam
.
Search for MATLAB Support Package for USB webcam
- Then, click on the
Install
button.
Installation of package
For our case, the push button for Install
changes to Manage
since the package is already installed on our PC.
Since we are accessing the IP camera, we need the IP support package.
- Using the same process above, we will locate the
MATLAB support package for IP camera
and then install it.
Installing support package for IP Camera
Matlab code for accessing laptop's inbuilt webcam and an external USB webcam
To see the list of all attached cameras to your PC, execute the code below on the console:
webcamlist
First, create a camera object with a webcam
. Here, we use cam1
as the object:
cam1 = webcam %integrated webcam
We then execute using preview()
. This is to see the live stream of the video your camera object that is being captured.
preview(cam1)
You can take a snapshot using snapshot()
and save the frame.
This is done by executing the snapshot function and view the captured image using the imshow()
function.
The captured image is then stored in the variable img1
as shown:
img1 = snapshot(cam1);
imshow(img1)
Captured image using Internal web camera
Clear the camera object cam1
after the live stream and the snapshot, to free up the memory.
clear cam1
How to access external USB camera?
The command remains the same as that of accessing the internal webcam.
The difference is that you need to change the hardware name when defining the webcam.
cam2 = webcam('USB2.0 PC camera');
preview(cam2);
img2 = snapshot(cam2);
imshow(img2)
Captured image using External web camera
clear cam2
Matlab code for capturing a live video clip
To capture a live video clip, we first need to define the webcam
object:
cam = webcam('USB2.0 PC camera');
Then, we specify the duration t
to capture our video and define the frames per second fps
.
t = 20; % the time is in second
fps = 30;
The number of frames nof
will be the product of the time t
and the frames per second fps
.
We implement the above as follows:
nof = t* fps
We then declare the video writer object videowriter()
with your file name. This means that your output will be saved in the current directory folder with the file name of myvideo
.
vidwriter = videowriter('myvideo.mp4')
open(vidwriter)
Now, we define a for
loop to loop through the frames. This defines the number of frames you want to capture.
Here, we loop from 1
to nof
as shown:
for index = 1: nof
img = snapshot(cam); %this is to acquire the frame
We then write (save) the video by executing the writeVideo()
function:
writeVideo(vidWriter, img);
pause(t/nof)
end
By executing the snapshot(cam)
, each snapshot will be stored in img
, and at the same-time writing to vidWriter
.
The pause(t/nof)
command is a pause given proportionally to create the fps
.
Once this is done, we close the vidWrite
and clear the camera object cam
.
close(vidWriter)
clear cam
Making a mobile phone an IP camera
To make your mobile phone an IP camera, you need a third-party Android application by which you can convert your mobile phone as an IP camera.
To find and use the Android application, follow the steps below:
- Go to the
Google Play Store
on your mobile phone. - Search for IPCAM.
Note that, you will find many such applications. IP Webcam by Pavel (developer) is the most popular and preferred for converting mobile phones to IPCAMs.
Screenshot of the app to be downloaded
Once it is installed, follow the steps below to view the live stream video:
- Scroll down and select the start server option.
Starting the server
- Once the server is selected, the live stream video is visible on your phone.
Note that, at the lower part of the screen, you can see the IPv4 addresses.
IP addresses of live webcamera
The IPv4
address will be used to access the camera from our Matlab. So, we should make note of it.
This IP address can also be opened in your PC browser to see the live streaming from the mobile IP camera.
This can be done by simply copying your IP address by long press of your screen and searching it in your browser.
Note that, the Phone and the PC must connected to the same WiFi network.
How to access the live video stream from your IP to your Matlab?
We first create a camera object cam3
. When creating the camera object, we need the IP address of the IP camera.
cam3 = ipcam('http://192.168.1.4:8080/video');
%execute the preview command to get the video on your Matlab
preview(cam3)
For more information about the topic, check here
Conclusion
Matlab is a better software to use for live video streaming. This is because it has support packages that make this process easier.
It also easier to use and understand, since the codes are not bulky.
IPCAM and WEBCAM are very important. They can be utilized for every sector to improve and enhance the security. They can also be used to capture images for further analysis and projects related to data science.
Happy coding.
Peer Review Contributions by: Srishilesh P S