MATLAB Answers

How can I get rid of the horizontal white lines?

63 views (last 30 days)
Tiffany Mao
Tiffany Mao on 13 Jul 2017
Commented: Image Analyst on 25 Jul 2017
How can I remove the horizontal white lines from an image like these without majorly editing the surroundings? Medfilt has been suggested, but it doesn't seem to be working. All code is appreciated. Thank you!

Answers (3)

Image Analyst
Image Analyst on 13 Jul 2017
You can try Fourier filtering. The white lines, if they're periodic, will show up as spikes in the spectrum which you can then zero out and inverse transform. Example attached (with demo image, not yours).
  4 Comments
Image Analyst
Image Analyst on 14 Jul 2017
It doesn't look like thresholding is a good way to get the spikes. You might try zeroing out the very small, exact area where you see spikes on the Y axis of the spectrum, if you can see them. Otherwise you'll have to try some kind of ad hoc filter in the spatial domain, like summing your image horizontally (to get the vertical profile)
verticalProfile = mean(grayImage, 2);
and looking for peaks/spikes in the vertical profile..

Sign in to comment.


Eric
Eric on 14 Jul 2017
K-Nearest Neighbor Filtering does a decent job. You can play with the parameters, but here are some quick settings I tried.
For each pixel, find the 49 nearest neighbors. Of those 49, average the 25 pixels nearest in intensity to the selected pixel. Replace the value of the selected pixel with that mean.
This can be done fairly efficiently with colfilt(). The result isn't perfect, but it's not terrible, either. I attached the result for enf.jpg.
Good luck,
Eric
  1 Comment
Eric
Eric on 14 Jul 2017
You could also try the median of the 25 pixels nearest in intensity to the selected pixel.
Neighborhood operations like this should help. The lines are 1D so looking at statistics over small, 2D regions will help beat down the noise associated with the 1D streaks.

Sign in to comment.


Image Analyst
Image Analyst on 15 Jul 2017
You can get the vertical profile, find the peaks and then replace those lines with the median filtered version. See attached test.m file.
Not perfect, but a fairly good improvement. Spend a day tweaking it and you might even get it better.
  7 Comments
Image Analyst
Image Analyst on 25 Jul 2017
Have you checked PubMed, or the Image Processing Literature for papers related to breathing and heartbeat correction?

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!