MATLAB Answers

0

Removing object from image using median filter

Asked by Sara Foster on 8 Sep 2019
Latest activity Commented on by Peter Bier on 11 Sep 2019
My function needs to remove an object from an image and the input is multiple images in the form of a 1xn 1D cell array containing 3D arrays of uint8 values e.g
{557x495x3} {557x495x3} {557x495x3}
The objective is to use a median filter (I've already created this code) to calculate the median pixels and store in array, so that the person/object is removed from image. The output is one RGB image where the person is removed from the image. I was wondering how to approach this?

  2 Comments

Here are the example images which somehow got deleted from the original post.
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 below and submitting it as your own will be detected by our plagiarism detection software when we come to mark the project.

Sign in to comment.

1 Answer

Answer by Matt J
on 8 Sep 2019
 Accepted Answer

I'll call your 1xn cell array of images ImageCell. Then I think you want,
Image4D=cat(4,ImageCell{:});
R=median( Image4D(:,:,1,:) , 4);
G=median( Image4D(:,:,2,:) , 4);
B=median( Image4D(:,:,3,:) , 4);
finalImage=cat(3, R,G,B);

  7 Comments

Yeah it would minimise the run time, but I need to create another function which calculates the greatest squared distance from the median pixel, so I’m unsure how to work this for my code. The greatest squared pixel distance is (P1-Q1)^2 + (P2-Q2)^2 + (P3-Q3)^2, so it’s the corresponding pixel most furtherest away from the median pixel. The objective of the function is to have multiple images as inputs e.g (the person in the three pictures) and combine it to one to create an action shot e.g. (there will be three of the same person in the one image displayed).
Well, you should probably describe that task in more detail in a separate post, because it sounds like it will need a lot more explanation. It is certainly a completely different goal from the object removal task that you've pursued here.
Sorry, my bad. I've created a separate post.

Sign in to comment.