function ret = max_dif_motion_image(ims) med_img = median(ims,4); mean_img = mean(ims,4); size_ims = size(ims); res = zeros(size_ims(1:2)); %which pixel should we take from what image? labels = zeros(size_ims(1:2)); max_dist_map = zeros(size_ims(1:2)); for i = 1:size_ims(4) this_img = ims(:,:,:,i); dist_map = sqrt(dot(this_img - med_img, this_img-med_img, 3)); indexes = find(dist_map > max_dist_map); max_dist_map(indexes) = dist_map(indexes); labels(indexes) = i; end res = zeros(size_ims(1:3)); labels = round(labels); labels = medfilt2(labels, [5,5]); for x = 1:size_ims(1) for y = 1:size_ims(2) if(labels(x,y) == 0) res(x,y,:) = mean_img(x,y,:); else res(x,y,:) = ims(x,y,:,labels(x,y)); end end end ret = {res,med_img,labels};