Trouble Removing Uneven Background Lighting from Image

17 vues (au cours des 30 derniers jours)
Nathan
Nathan le 20 Mai 2015
Commenté : Jeff E le 21 Mai 2015
Hello,
As I stated I am having some trouble removing a background from an image. I have tried using imopen, imtophat, and a couple other methods, but all of them result in the same problem. The code considers my entire image as a background. For example, here is my original image.
My code to load it is pretty simple
drop=mat2gray(imread('st000.tif'));
As you can see the illumination is fairly uneven, and when I go to convert it to a bw image it cuts off the last half of the stream. When I try and use imopen to find the background this is what I get.
background = imopen(drop,strel('disk',15));
figure()
imshow(background)
If I use imtophat I get this.
I2 = imtophat(drop,strel('disk',15));
figure()
imshow(I2)
Since this image is a little dark, I tried to enhance it using
I3=imadjust(I2);
figure()
imshow(I3)
which gave me
I can't really use this image, since it is so blurry. I have tried taking a static image with the background, subtracting that from the bw image of the original, and that sort of works.
But as you can see it removed a lot of the resolution on the image, which I think has something to do with how I actually convert it into a bw image. I think I can get a better resolution if I can find a way to make a uniform background before converting it to bw.

Réponse acceptée

Jeff E
Jeff E le 20 Mai 2015
Try using imbothat instead of imtophat, with a slightly larger kernel size.
I2= imbothat(drop, strel('disk', 30));
worked for me, with the exception of some artifacts around the edge.
  3 commentaires
Nathan
Nathan le 20 Mai 2015
Yes. That fixed the problem exactly. And now I can get hi-res bw images. Thank you very much.
Jeff E
Jeff E le 21 Mai 2015
Use a bigger kernel size. Say, 45 or so. The artifacts around the edges will be bigger, but you'll capture the larger droplets much more effectively.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by