Convert a frame into image and use it as an input elsewhere

1 Ansicht (letzte 30 Tage)
Chetanya
Chetanya am 3 Mai 2012
I want to convert a frame into an image file. I am using the following code to acquire the frame, now i want to use that frame as an image file in my code, need help with that.. the code is
--------------
vid = videoinput('winvideo',1);
set(vid,'ReturnedColorSpace','rgb')
frame= getsnapshot(vid);
%here i want to take this frame as input image
input='frame';
.
.
--------------
but i am getting the following error
---------
??? Error using ==> strfind
Input strings must have one row.
Error in ==> imread at 296
if (strfind(filename, '://'))
-------------
Please help me with this. or direct me to other solution

Antworten (2)

Walter Roberson
Walter Roberson am 3 Mai 2012
If you are going to imread() the image, you need to first imwrite() the frame into an image file.
  2 Kommentare
Chetanya
Chetanya am 3 Mai 2012
but i am unable to imwrite() that frame....can you give me the code please...
Walter Roberson
Walter Roberson am 3 Mai 2012
imwrite(frame.cdata, frame.map, TheFileName);
where TheFileName is a string the specifies the name of the file to write.

Melden Sie sich an, um zu kommentieren.


Image Analyst
Image Analyst am 3 Mai 2012
I'm not sure why you called imread() instead of just using the "frame" array directly in your subsequent code. If you want to use imread, then show your code for both imwrite and imread, but it's not really necessary unless you want to save the image to disk for some reason. Even if you did, you can continue to use "frame" and don't need to call imread at all.
  3 Kommentare
Image Analyst
Image Analyst am 3 Mai 2012
But they're not using getframe(), they're using getsnapshot() which does return an image out of the video stream just like any other image. It can be saved with imwrite(), or displayed with imshow(). I do it all the time. Here's a snippet of code from an m-file I'm working on today:
% Snap picture from camera.
if isempty(vidobj), return, end;
snappedImage = getsnapshot(vidobj); % This works.
imshow(snappedImage);
Walter Roberson
Walter Roberson am 3 Mai 2012
Ah yes, I misread. (Can I blame it on the tail end of the cold I have?)

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by