How do I use my smart phone camera as a webcam in MATLAB?

75 visualizaciones (últimos 30 días)
Ashish Uthama
Ashish Uthama el 20 de Jul. de 2011
Editada: Walter Roberson el 7 de Nov. de 2024 a las 1:39
I have an smartphone device with a camera. I would like to obtain and process this image data in MATLAB.
(Specifically, I have an Android device).
  3 comentarios
keerthana potharaj
keerthana potharaj el 29 de En. de 2019
Movida: DGM el 22 de Feb. de 2023
how do we interface mobile camera for deep learning?
P.S we don't have web cam. pls help us.
kundan surse
kundan surse el 21 de En. de 2020
Movida: DGM el 22 de Feb. de 2023
I want to take the screenshot of my mobile screen form matlab to use it for further prossesing how can i do that ?

Iniciar sesión para comentar.

Respuesta aceptada

Ashish Uthama
Ashish Uthama el 20 de Jul. de 2011
The general solution would need two parts, one to broadcast the data from the device and another part to read this data into MATLAB.
A specific solution for Android:
  • Install the free IP Webcam app. (Make sure you read the corresponding permissions and understand any security issues therein)
  • Open the app, set the desired resolution (will impact the speed!)
  • Scroll to the bottom and tap on 'Start Server'
  • In the camera preview window, note the url at the bottom of the screen.
  • Open MATLAB and use this code snippet to obtain a live preview window. Note that this uses JPG files for discrete frames, which is probably not the fastest way. The app can stream the video and/or audio in multiple ways.
url = 'http://<ip address>/shot.jpg';
ss = imread(url);
fh = image(ss);
while(1)
ss = imread(url);
set(fh,'CData',ss);
drawnow;
end
Example:
(If you find faster ways/solutions for other devices, post it here!)
  18 comentarios
Walter Roberson
Walter Roberson el 16 de Mayo de 2023
Editada: Walter Roberson el 7 de Nov. de 2024 a las 1:39
If you happen to use the same product as was discussed in the link on instructables then the vendor site says that exposure is adjustable. https://www.e2esoft.com/ivcam-camera-settings/
Dominik
Dominik el 6 de Nov. de 2024 a las 22:52
Hi, tip from me - a bit quicker than taking jpg files is to use video. Using the mentioned app the link is simpy:
url_cam = 'http://<ip_address>/video';
cam = ipcam(url_cam)

Iniciar sesión para comentar.

Más respuestas (12)

Soham Bhattacharyya
Soham Bhattacharyya el 16 de Mayo de 2016
You can use DroidCam if you are using an android phone. You'll need to install OS Generic Video Interface driver.
Hope it helps. :)
  2 comentarios
elfodd
elfodd el 15 de Mayo de 2017
Editada: elfodd el 15 de Mayo de 2017
for anyone that can't find the correct address for droidcam simply connect to droidcam using your browser and click on the i button. It should look like this
http://192.168.1.61:4747/mjpegfeed?640x480
and then
camera = ipcam('http://ipaddress:port/mjpegfeed?640x480')
Nikhil Sai
Nikhil Sai el 7 de Feb. de 2018
thank you worked for me

Iniciar sesión para comentar.


Chirag Gupta
Chirag Gupta el 20 de Jul. de 2011
With the iPhone, using the App suggested by Ashish above (IP Cam), you can achieve the same pretty easily! The code is exactly the same:
url = 'http://<ipaddress>:8020/image.jpg';
ss = imread(url);
fh = image(ss);
while(1)
ss = imread(url);
set(fh,'CData',ss);
drawnow;
end
  5 comentarios
Joshua
Joshua el 22 de Jul. de 2013
is the IP address for the android webcam streaming live video or simply a single image or series of saved images?
Tiwa Romuald
Tiwa Romuald el 15 de Oct. de 2015
hi, please how can i save the video from this function? thank you best regard

Iniciar sesión para comentar.


amro
amro el 10 de Mayo de 2014
url=('http://192.168.43.1:8080/shot.jpg?rnd=350264');
hVideoIn = vision.VideoPlayer('Name', 'Final Video');
while(1)
ss=imread(url);
step(hVideoIn,ss)
end
  3 comentarios
Walter Roberson
Walter Roberson el 6 de Sept. de 2015
ipcam() was not introduced until R2015a, a year after amro posted their Answer.
Tiwa Romuald
Tiwa Romuald el 8 de Oct. de 2015
Hi Hauder Ali, please can you explain how it work on IP camera Image Acquisition. I new in Matlab. thx

Iniciar sesión para comentar.


PIYUSH KUMAR
PIYUSH KUMAR el 14 de Sept. de 2015
Here's the working code for color detection using android camera:
url = 'http://192.168.0.100:8080/shot.jpg';
framesAcquired = 0;
while (framesAcquired <= 50) % the vedio will work till the 50 video frames, after that the vedio will stop. You can use while(1) for infinite loop
data = imread(url);
framesAcquired = framesAcquired + 1;
diff_im = imsubtract(data(:,:,1), rgb2gray(data)); % subtracting red component from the gray image
diff_im = medfilt2(diff_im, [3 3]); % used in image processing to reduce noise and for filtering
diff_im = im2bw(diff_im,0.18); % convert image to binary image
stats = regionprops(diff_im, 'BoundingBox', 'Centroid'); % measures a set of properties for each connected component in the binary image
drawnow;
imshow(data);
hold on
for object = 1:length(stats)
bb = stats(object).BoundingBox;
bc = stats(object).Centroid;
rectangle('Position',bb,'EdgeColor','b','LineWidth',2)
plot(bc(1),bc(2), '-m+')
end
hold off
end
%stop(vid); % to stop the video
%flushdata(vid); % erase the data video
clear all
  1 comentario
Tiwa Romuald
Tiwa Romuald el 14 de Oct. de 2015
Editada: Tiwa Romuald el 15 de Oct. de 2015
hi PIYUSH KUMAR please this function it's just for a snaphot or video? i would like to have video and save it from my smarphone into matlab. how can I save directly as a AVI video? please help me. thank you

Iniciar sesión para comentar.


Amrinder Brar
Amrinder Brar el 25 de Mzo. de 2015
Editada: Amrinder Brar el 25 de Mzo. de 2015
Is there any simple solution to this problem in iphone(i.e. without having to install any third party apps) ?

saras
saras el 1 de Jul. de 2016
I am not sure if this is exactly what you are looking for. However, you can use 'Simulink Support Package for Samsung GALAXY Android Devices' or 'Simulink Support Package for Apple iOS Devices' to access the appropriate smartphone camera. Both these support packages come with a Camera block that allow you to get the Camera data inside MATLAB. You can subsequently connect the Camera block to a Video Viewer block if you would like to visualize the data in Simulink.
  1 comentario
Deepak B
Deepak B el 16 de Sept. de 2020
Editada: Deepak B el 16 de Sept. de 2020
actuallty im looking for this can we send live camera video from the android device i installed the simulink support package for android
but i dont know hoe to use that to send live video to matkab simulink help me out

Iniciar sesión para comentar.


Cristian David Jimenez Bedoya
Cristian David Jimenez Bedoya el 5 de Dic. de 2016
Editada: Walter Roberson el 5 de Dic. de 2016
buenas, este programa funciona bien pero no he logrado capturar una imagen a partir de este mismo, como puedo obtener una captura de imagen y almacenarla ?
url = "http: // <dirección IP> /shot.jpg ';
ss = imread (url);
fh = imagen (ss);
mientras que (1)
ss = imread (url);
conjunto (FH, 'programable CData', ss);
drawNow;
fin
  2 comentarios
Walter Roberson
Walter Roberson el 5 de Dic. de 2016
Approximate translation:
Good, this program works fine but I have not managed to capture an image from this same, how can I get an image capture and store it?
Walter Roberson
Walter Roberson el 5 de Dic. de 2016
imwrite() the content of ss

Iniciar sesión para comentar.


MARIA JAVED
MARIA JAVED el 4 de Feb. de 2017
can anybody tell me that how we can do face detection through Android phone pls help??? i need that code?
  1 comentario
Walter Roberson
Walter Roberson el 6 de Feb. de 2017
You would either have to write the code in MATLAB and use MATLAB Coder, or else you would have to create a Simulink model and deploy that to Android.

Iniciar sesión para comentar.


Jonathan berry
Jonathan berry el 10 de Abr. de 2017
Hello guys,
I keep having this error:
Error using imread (line 350) Can't read URL "http://MY_IP /shot.jpg".
any help will be appreciated
  2 comentarios
Beril Sirmacek
Beril Sirmacek el 20 de Mzo. de 2018
I have the same issue. Looking for an answer.
Walter Roberson
Walter Roberson el 29 de Abr. de 2018
You need to replace he "MY_IP " part by your actual IP address, such as http://192.168.0.10/shot.jpg

Iniciar sesión para comentar.


Dilip Dubey
Dilip Dubey el 29 de Abr. de 2018
How can I read other sensors from IP webcam app in Matlab?
  1 comentario
vass pass
vass pass el 23 de Jul. de 2020
Editada: vass pass el 23 de Jul. de 2020
You can geet a json file for sensors
s='4'
urlImage=['http://192.168.1.' s ':8080/shot.jpg']
urlSensors=['http://192.168.1.' s ':8080/sensors.json']
frame = imread(urlImage);
q=jsondecode(urlread(urlSensors)); %#ok<URLRD>
q.accel.data{1}{2}

Iniciar sesión para comentar.


Beril Sirmacek
Beril Sirmacek el 29 de Abr. de 2018
Hi All,
I found out that;
imread('http://MY_IP /shot.jpg');
works only on secured network for me. If I am on a public network, then it gives error.
  2 comentarios
Omkar Bhanap
Omkar Bhanap el 8 de Ag. de 2018
How can I extend this to Simulink model? any suggestions?
Walter Roberson
Walter Roberson el 6 de Sept. de 2018
"On Windows platforms, this parameter supports URLs that point to MMS (Microsoft Media Server) streams."

Iniciar sesión para comentar.


Akram
Akram el 11 de Dic. de 2023
Hi, there is a new feature on Apple devices (Continuity Camera) where we can directly use our phone's camera as our mac's webcam. With this feature activated, when using the command imaqhwinfo, i only see my mac's webcam and not my iPhone camera. Is there a way to acquire video (live) with my iPhone's camera ?

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by