Effacer les filtres
Effacer les filtres

Image acquisition in matlab

2 vues (au cours des 30 derniers jours)
NITHIN BHARADWAJ
NITHIN BHARADWAJ le 27 Mar 2012
can we feed a hundred images sequentially at once in matlab with a single instruction?

Réponses (5)

Image Analyst
Image Analyst le 27 Mar 2012
What do you mean by "sequentially" when you have a single instruction? I would think that a "single instruction" would mean that you process all the images "at one time" rather than "sequentially." For example
output = myFunction(image1, image2, image3, ........image100);
You're passing all 100 images to myFunction "at the same time" even though internally myFunction may be processing them sequentially.
  7 commentaires
NITHIN BHARADWAJ
NITHIN BHARADWAJ le 22 Avr 2012
I have about a hundred images that I would like to combine to form a single image. How do I write these images into Matlab all at once?
Image Analyst
Image Analyst le 22 Avr 2012
Try the montage() function or sum them and divide by 100. But I already said this above, and so did you, so we're going in circles here. You told Walter that it was too tough to do this
for k = 1:100
filename = % whatever it is.
thisImage = imread(filename);
if k == 1
sumImage = double(thisImage);
else
sumImage = sumImage+double(thisImage);
end
end
meanImage = uint8(sumImage/100);
How can we help you?

Connectez-vous pour commenter.


Geoff
Geoff le 27 Mar 2012
If you're trying to emulate camera image acquisition using stored images, you could set up a timer to deliver a set of images at a set frame rate:
doc timer
  4 commentaires
NITHIN BHARADWAJ
NITHIN BHARADWAJ le 29 Mar 2012
No, If I have part of a character in each of those images and i would like to have a final image with the final character on the image how do I do it?
Image Analyst
Image Analyst le 29 Mar 2012
Huh??? Well, just throw away all images except for the final image. Or was something not explained properly?

Connectez-vous pour commenter.


Jakob Sørensen
Jakob Sørensen le 27 Mar 2012
Depends on how you want to combine them. If the file names are somewhat reasonable (i.e. identical like file001.jpg, file002.jpg, ...), it's rather easy to make. Then you just load one at a time into a new variable and then combine them in the end. Or you could load one, plot it, and clear the memory. Whatever suits you best. The code for loading them one at a time would be something like this:
addpath('pathname')
imageStruct = struct;
for c = 1:100
filename = sprintf('file%3.3d.jpg',c);
imageStruct.c = imread(filename);
end
  1 commentaire
Walter Roberson
Walter Roberson le 27 Mar 2012
http://matlab.wikia.com/wiki/FAQ#How_can_I_process_a_sequence_of_files.3F

Connectez-vous pour commenter.


NITHIN BHARADWAJ
NITHIN BHARADWAJ le 26 Avr 2012
I need a simplified method for the following procedure:
a=imread('frame-1.tif')
b=imread('frame-2.tif')
c=imread('frame-3.tif')
d=imread('frame-4.tif')
e=imread('frame-5.tif')
f=imread('frame-6.tif')
g=imread('frame-7.tif')
h=imread('frame-8.tif')
i=imread('frame-9.tif')
j=imread('frame-10.tif')
k=imread('frame-11.tif')
l=imread('frame-12.tif')
m=imread('frame-13.tif')
n=imread('frame-14.tif')
o=imread('frame-15.tif')
p=imread('frame-16.tif')
q=imread('frame-17.tif')
r=imread('frame-18.tif')
s=imread('frame-19.tif')
t=imread('frame-20.tif')
u=imread('frame-21.tif')
v=imread('frame-22.tif')
w=imread('frame-23.tif')
x=imread('frame-24.tif')
y=imread('frame-25.tif')
z=imread('frame-26.tif')
z1=imread('frame-27.tif')
z2=imread('frame-28.tif')
z3=imread('frame-29.tif')
z4=imread('frame-30.tif')
z5=imread('frame-31.tif')
z6=imread('frame-32.tif')
z7=imread('frame-33.tif')
z8=imread('frame-34.tif')
z9=imread('frame-35.tif')
z10=imread('frame-36.tif')
z11=imread('frame-37.tif')
z12=imread('frame-38.tif')
z13=imread('frame-39.tif')
z14=imread('frame-40.tif')
z15=imread('frame-41.tif')
z16=imread('frame-42.tif')
z17=imread('frame-43.tif')
z18=imread('frame-44.tif')
z19=imread('frame-45.tif')
z20=imread('frame-46.tif')
z21=imread('frame-47.tif')
z22=imread('frame-48.tif')
z23=imread('frame-49.tif')
z24=imread('frame-50.tif')
z100=imlincomb(1,a,1,b,1,c,1,d,1,e,1,f,1,g,1,h,1,i,1,j,1,k,1,l,1,m,1,n,1,o,1,p,1,q,1,r,1,s,1,t,1,u,1,v,1,w,1,x,1,y,1,z,1,z1,1,z2,1,z3,1,z4,1,z5,1,z6,1,z7,1,z8,1,z9,1,z10,1,z11,1,z12,1,z13,1,z14,1,z15,1,z16,1,z17,1,z18,1,z19,1,z20,1,z21,1,z22,1,z23,1,z24,'uint8')
imshow(z100)

Image Analyst
Image Analyst le 26 Avr 2012
For your Answer to your own question,.... see the FAQ for a variety of ways to process a sequence of files. http://matlab.wikia.com/wiki/FAQ#How_can_I_process_a_sequence_of_files.3F
  1 commentaire
Walter Roberson
Walter Roberson le 26 Avr 2012
Yup. Toss them all into a cell array "z", then
t1 = num2mat(ones(numel(z),1));
t2 = [t1, z(:)];
z100 = imlincomb( t2{:}, 'uint8');

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by