I take down some snapshots from logitech camera and images are stored in array form in pics folder name. Now I want to see those pictures (in png format). So how can i extract iamges from those array. number of images are 20.

 採用された回答

Walter Roberson
Walter Roberson 2015 年 12 月 30 日

1 投票

6 件のコメント

Naseeb Gill
Naseeb Gill 2015 年 12 月 30 日
Sorry sir but i'm unable to do it. Can you please elaborate it for me or provide me any simple code example to illustrate it. Sorry for inconvenience. Thanks
Walter Roberson
Walter Roberson 2015 年 12 月 30 日
dinfo = dir('*.png');
for K = 1 : length(dinfo)
thisfile = dinfo(K).name;
thisimage = imread(thisfile);
figure(); image(thisimage); title(thisfile);
end
Naseeb Gill
Naseeb Gill 2015 年 12 月 31 日
It's also not working. I think it's my mistake that I can't explain my problem to you. So, i'm trying again. Thanks for your patience. using camera i takes snapshots and stored them into array form. Code for this is:
vid1 = videoinput('winvideo',1,'RGB24_640x480');
vid2 = videoinput('winvideo',2,'RGB24_640x480');
start(vid1);
start(vid2);
preview(vid1);
preview(vid2);
pics1 = cell(1,10)
pics2 = cell(1,10)
for i = 1: 10
pause(5);
pics1{i} = getsnapshot(vid1);
pics2{i} = getsnapshot(vid1);
end
closepreview(vid1);
closepreview(vid2);
clear ('vid1');
clear ('vid2');
Now arrays are stored in pics1 and pics2 but I want to watch them as .png image and store them as .png only in other folder. how can i do that.
Thanks.
Walter Roberson
Walter Roberson 2015 年 12 月 31 日
You cannot "watch" PNG images, you can only watch images that have been loaded (possibly from PNG files)
But in any case:
ax1 = subplot(1,2,1);
ax2 = subplot(1,2,2);
for K = 1 : length(pics1)
imshow(ax1, pic1{K});
outfile1 = sprintf('pic1_%03d.png', K);
imwrite(pic1{K}, outfile1, 'png');
imshow(ax2, pic2{K});
outfile2 = sprintf('pic2_%03d.png', K);
imwrite(pic2{K}, outfile2, 'png');
pause(0.25); %or as appropriate
end
And remember to change your code
pics2{i} = getsnapshot(vid1);
to
pics2{i} = getsnapshot(vid2);
Naseeb Gill
Naseeb Gill 2015 年 12 月 31 日
Thanks for pointing out my mistake. I solved this problem using following code:
vid1 = videoinput('winvideo',1,'RGB24_640x480');
vid2 = videoinput('winvideo',2,'RGB24_640x480');
start(vid1);
start(vid2);
preview(vid1);
preview(vid2);
pics1 = cell(1,10)
pics2 = cell(1,10)
for i = 1: 10
pause(5);
pics1{i} = getsnapshot(vid1);
pics2{i} = getsnapshot(vid2);
end
for i = 1:10
FileName1 = sprintf( 'pica%d.png',i) ;
fullFileName1 = fullfile( FileName1);
imwrite(pics1{i}, fullFileName1);
FileName2 = sprintf( 'picb%d.png',i) ;
fullFileName2 = fullfile( FileName2);
imwrite(pics2{i}, fullFileName2);
end
closepreview(vid1);
closepreview(vid2);
clear ('vid1');
clear ('vid2');
but now I'm facing a new problem that images store in default folder but i want to save images in predetermined folder say in 'image_folder' folder present on desktop. How can I do it???
Walter Roberson
Walter Roberson 2015 年 12 月 31 日
project_dir = 'C:\wherever\the\desktop\is\image_folder';
Then
fullFileName1 = fullfile( project_dir, FileName1);
and the corresponding for the second file.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeImage Processing Toolbox についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by