## Remove noise from an image

### Alessandro (view profile)

on 12 May 2011

Hi everybody, I am a student and I am at the beginning in a course of Machine Vision. It is one week that I try to solve this problem but without success so maybe someone can help me. I have to remove the noise and improve the quality of this image http://www.filedropper.com/image_5

Can you explain me how it is possible a show some code?

Thanks

Ale

### Sean de Wolski (view profile)

on 12 May 2011

```I2 = bwareaopen(I,3);
```

Alessandro

### Alessandro (view profile)

on 12 May 2011

It doesn't work! I got a completely withe image.

Sean de Wolski

### Sean de Wolski (view profile)

on 12 May 2011

It was a shot in the dark. I didn't download your image (I don't trust the site). I also don't want to do your homework for you. If you posted your image to a site that's trustworthy (i.e. no download; e.g. www.uploadhouse.com) and showed us, in code, what you've tried so far, we'll be able to give you non-useless answers.

### Alessandro (view profile)

on 12 May 2011

This is my code so far:

```I = rgb2gray(imread('L3S1T2.jpg'));
imshow(I); title('Original');
```
```figure;
imhist(I);
```
```B = wiener2(I);
figure;
imshow(B);
```

I thought that the noise could be a Gaussian Noise so I applied a wiener filter but the result is not so good. Then looking in the histogram I saw some spikes and I thought that maybe the spikes are related to the noise, so I am looking for a way to "remove" the spikes.

### Sean de Wolski (view profile)

on 12 May 2011

```X = imread(your_image);
Q = uint8(imclearborder(imfill(conv2(double(X(:,:,1)),ones(3),'same')<1400,'holes'))).*X(:,:,1); %quarters
imtool(Q)
```

Alessandro

### Alessandro (view profile)

on 12 May 2011

This doesn't look like a real improvement.
And I don't want only the solution, if it is possible I would also understand and learn something.

Sean de Wolski

### Sean de Wolski (view profile)

on 12 May 2011

That was the point. I have you six things to look into that you may find useful: convolution, hole filling, extraction of one slice, threshold, border clearing, map application. You can play with the parameters and or look at other functions such as imdilate, imerode, bwdist...