How to filter an signal(image) data best

조회 수: 4 (최근 30일)
hans
hans 2013년 6월 1일
답변: Shaveta Arora 2016년 2월 29일
Hi,
I have an almost urgent problem to solve. I have a 2 dimensional 152x2000 matrix, B. We can say time domain signal or image. I have to filter, remove(supress) unwanted like noise parts and improve the image(2 dimensional signal). It can be thought that focusing to the high intensity part of the image.
This is the image I have by imagesc abs of B; http://i.imgur.com/wTpFGqh.jpg
Finally, I want to get an image only the circle like shape with yellow and red colours. I want to remove the other light blue pixels(signals).
I want to filter this image or signal matrix by filtering along two dimensions seperate and orderly.
If I say approx. the middle of this circle like shape image is at (29,1334) and then when I plot of abs of B(signal matrix) along 29th row, this is the result ; http://i.imgur.com/QB0C9KD.jpg
When I plot of abs of B along 1334 column, the result is ; http://i.imgur.com/jcLThnr.jpg
According to these all info, which best filter along row and column has to implemented ?
Bandpass ? , how, could you write the necessary code for the best filtering along two dimensions orderly ?
Any fast help greatly appreciated :)

채택된 답변

Image Analyst
Image Analyst 2013년 6월 1일
If you want to extract the bright section, why are you talking about filters like band pass filters? Just threshold it.
% Find out where it's dark/dim.
binaryImage = grayImage < 1.5;
% Blacken out where it's below the threshold.
grayImage(binaryImage) = 0;
imshow(grayImage, []);
If you do want to do noise reduction, there are plenty of filters to choose from, from the easy box filter and median filter, to better but more complicated filters like bilateral and Savitzky-Golay, to even better and even more complicated like BM3D, non-local means, K-SVD, K-LLD, etc. I'd start simple and move on up to the better noise reduction filters until you get a level of noise reduction that you can live with. If I had to take a guess I'd say a Savitky-Golay filter might give you a acceptably smoother filter without too much blurring. Let me know if you (or anyone else) wants a demo of a 2D Savitzky-Golay filter (it requires the Signal Processing Toolbox).
  댓글 수: 2
hans
hans 2013년 6월 2일
편집: Image Analyst 2013년 6월 3일
Thanks for the quick answer :)
Actually, I figured out that it should be better, If it is done in terms of signal processing like implementing a Band Pass filter below;
[cs1,cs2]=butter(9,[0.09,0.45]);
As I know, if we get a signal which has a main peak and low side lobes then this is the desired result right ? According to that, Should I decide my filter type and boundaries in f domain ? If so, this is the frequency domain signal of 29th row by writing 'fftshift(abs(fft(29th_row)))';
And this is the 1334th column in frequency domain by same type coding above w.r.t column;
For better response, Do I have to cut the all frequencies except the main peak ? and will it give better qualified version of this image above in the previous message(
Which filtering across the two dimensions is best ? BP LP ? then how filter coding ? filter(cs1,cs2,B,?,1)
In addition, If I take psd(periodogram) of the vectors, then the result is not same as getting from fftshift(abs(fft(vector))). Why ?
thanks WR
Image Analyst
Image Analyst 2013년 6월 3일
I don't see any difference between the first image and the last image. Why don't you just play around, zeroing out frequencies, and see what gives the best results? Right now, I'm not really sure what you'd like to see as "the ideal image." Perhaps you can create that, in Photoshop or something, and upload that.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Shaveta Arora
Shaveta Arora 2016년 2월 29일
How can we design a fuzzy based filter and use it with command imfilter?

카테고리

Help CenterFile Exchange에서 Measurements and Spatial Audio에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by