0:00

Coming back to local filters, there's another extremely important and extremely

appropriate local filter which is called a median filter,

which we are going to describe next. And it's a great filter because it

doesn't really blur edges. And although it's a very classical

filter, it's still very useful today. So, let's observe it.

Before we actually describe it, let's see what happens with a real image.

We have here an image, that has been contaminated with what's called salt and

pepper noise. Next week, we're actually going to

describe different models of noise a bit better, but salt and pepper, it's just

noise that basically is very strong noise, individually added at different

pixels. We see it here.

This is the result of the local mean filter.

What we have seen in the previous videos, just local averaging,

in this case, a three by three. You might be able to observe there is

some reduction of noise but not really too much reduction of noise.

Here, on the other hand, is the result of a three by three median filter and we see

a great result. We don't see blurring.

we actually see that a lot of the noise has been reduced.

We could reduce much more noise with a local mean filter, a local average.

If we go beyond three by three, we might go five by five, nine by nine.

Remember, by averaging we are reducing the noise by square of the number of

pixels that we are averaging as we saw in the previous videos.

But if we enlarge the neighborhood, we also saw that we are going to start to

blur a lot of the details. On the other hand,

keeping a three by three neighborhood would still get extremely good denoising

with the median filter. So, what's the median filter?

Very simple. What we do, is we actually take, let's

say, if we are working in a three by three neighborhood,

we basically order the pixels so we basically order them from the smallest to

the largest and we pick the one in the middle,

okay? So, we start putting all the pixels in

order, we pick the one in the middle. This is an operation we actually learn in

elementary school. And it's an extremely powerful, replace

it by the one in the middle. So, for example, if you have pixels which

look like this and one of the pixels is very noisy,

when you order them, this one is going to be replaced by one

of these values that are all equal so it's going to be replaced, it's going to

go down, okay?

So, the noise is clean. Completely clean, without blurring as we

have seen for Gaussian filtering or for mean filtering.

It's a very, very simple filter. You order, and you pick the one in the

middle. You order from the smallest to the

largest, and you pick the one in the middle.

And then, you move to the next window. So, you basically take a three by three

window, then you move to the next window, the next window, the next window.

And you get this extremely simple filter, the median filter.

Before I show you additional examples of the median filter in real time, we're

going to actual run MatLab to do that. Let me just give you one interesting

property of the median filter. We saw in a couple of views ago that the

average filter is reducing this, a minus ai squared. We say the average is the

value of a that reduces, that minimizes this and I'm summing over all the pixels.

So, I'm going to ask you a question, can we represent the median filtering in a

form like this? A different function maybe.

Some of certain function of a minus ai, can we do that?

Just think for a while, and tell me yes or no, if you know the answer of that.

So, what's the answer to this question? Very interesting.

This is the mean. The value of a that minimizes the square

error is the mean. What's the median?

The median is the value that minimizes the absolute.

There's no square here. It's just the absolute difference.

It's extremely interesting that by replacing this square by basically

nothing, just absolute value, we get the median.

Once again, you can prove this. It's a bit more of a difficult proof,

because when we discuss how to prove this, we say, just take derivatives, make

the derivative equal to zero, and you're going to find that a is the average of

all the ai's. Here, you're not allowed to take

derivative, because at zero, the absolute value cannot have a, doesn't have a

derivative. So, the proof is a bit more delicate.

But I'm sure that you can do it as a bonus exercise.

Don't worry too much about that for now. You can believe me, that if you don't

want to do the proof by yourself, that the result of minimizing this is the

median filter. An extremely interesting operation.

For those that are familiar with the area of robot statistics,

this is a square error, which is not very robust, and that's why it's blurring.

This is a much more robust error. And that's why it's able to completely

eliminate noise, like salt and pepper noise, without blurring the rest of the

image. The last interesting property I want to

mention about the median is in the average, the result doesn't have to be

one of the pixels. So, for example, if you're averaging one

and two, you get 1.5. It's not one, it's not two,

okay? When you're averaging, let's say, a three

by, when you're completing the average of a

three by three and you're replacing the middle pixel by the average, you might be

replacing the pixel by a value that doesn't show up,

not in the three by three window, maybe not even in the whole image.

Once again, the average between, of one and two is 1.5,

a new value. On the other hand, when you're doing the

median filtering, you're always replacing by one of the values that already exist

in the three by three window. So, you're not producing new pixel

values. And that's part of what's happening here.

And that's a very interesting property by itself.

There is no novelty. There is no new values.

Only those that are already familiar in the neighborhood of the pixel that you

are replacing the pixel with the median. Now,

now, that we know about the median, now that we know some of the interesting

properties of the median, let's just see a few additional examples

of the median filter in action. Let's see that in the next video.

Thank you.