How to get indexed pixels from set of images?

1 visualizzazione (ultimi 30 giorni)
John
John il 4 Mag 2017
Modificato: John il 5 Mag 2017
A set of images a(x,y,n); n images, each image has a size of (x * y); A known index map: imind(x,y), size of the image with each element value from 1 to n;
How to obtain the image that each pixel is from different image? For example: imind(1,1)=2, then take final_im(1,1)=a(1,1,2); imind(21,33)=6, then take final_im(21,33)=a(21,33,6); etc.
It can be done with a loop:
for nx=1:x
for ny=1:y
final_im(nx,ny)=a(nx,ny,imind(nx,ny));
end
end
But, is there an elegant way?
Thanks.

Risposte (2)

KSSV
KSSV il 5 Mag 2017
You can reduce one loop shown below:
for nx=1:x
final_im(nx,1:ny)=a(nx,1:ny,imind(nx,1:ny));
end
  1 Commento
Image Analyst
Image Analyst il 5 Mag 2017
I wouldn't encourage John's bad habits of calling vertical row "x" and the horizontal column "y" - this is the opposite the way the rest of the world does it. Images take indexes y,x not x,y.

Accedi per commentare.


John
John il 5 Mag 2017
Modificato: John il 5 Mag 2017
Will this single loop way work? And a loop-less way would be more "elegant".

Categorie

Scopri di più su Images in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by