Action shot function with multiple images

4 visualizzazioni (ultimi 30 giorni)
My function uses multiple RGB images as a 1xn 1D cell array and the output creates an action shot.
For example, this will consist of 6 different images containing one moon, but when combined it creates one image (an action shot).
So far I'm using a nested for loop for the rows, columns and number of images but is there any other way to approach this?
  1 Commento
Sara Foster
Sara Foster il 10 Set 2019
I asked what the process is for the code, I’m writing my own code but I was unsure how to approach it. (:

Accedi per commentare.

Risposta accettata

Matt J
Matt J il 9 Set 2019
Modificato: Matt J il 9 Set 2019
Yes, here is an approach that uses no loops,
Image4D=double(cat(4,ImageCell{:}));
MedianImage = median(Image4D,4);
[~,idx]= max(vecnorm(Image4D-MedianImage,2,3),[],4);
mask=idx==reshape(1:numel(ImageCell),1,1,1,[]);
result=uint8( sum(Image4D.*mask,4) );
  4 Commenti
Matt J
Matt J il 9 Set 2019
Modificato: Matt J il 9 Set 2019
Here's another way with a double for-loop. This one might even be more efficient than the original because it allocates no memory for a mask.
Image4D=double(cat(4,ImageCell{:}));
MedianImage = median(Image4D,4);
[~,idx]= max(vecnorm(Image4D-MedianImage,2,3),[],4);
result=num2cell(zeros(size(MedianImage),'uint8'),[1,2]);
for i=1:numel(ImageCell)%images
loc=(idx==i);
for j=1:3 %color channels
tmp=Image4D(:,:,j,i);
result{j}(loc)=tmp(loc);
end
end
result=cell2mat(result);
Peter Bier
Peter Bier il 11 Set 2019
Interesting approach, although well beyond the scope of what we've taught our students.
This is a reminder to all 131 students that as mentioned in class you need to write your own code for the project that is due shortly (rather than getting code written by one of the kind folks who answer questions on the mathworks forum). Copying any of the supplied code from above and submitting it as your own will be detected by our plagiarism detection software when we come to mark the project.

Accedi per commentare.

Più risposte (0)

Categorie

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

Community Treasure Hunt

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

Start Hunting!

Translated by