Trying to mask a bmp image to get rid of bright spots

1 visualización (últimos 30 días)
Steven Manz
Steven Manz el 21 de Mayo de 2020
Comentada: Steven Manz el 22 de Mayo de 2020
See the bmp attached to see raw image. There are bright spots on the picture. I can find them by simply asking for the pixels that are less than a certain threshold.
However, when masking to the image, I would like to somehow git rid of the bright spot and then smooth out the values to match the values around it so the picture looks like it would without bright spots. Here is the code I was trying to use:
% prepare directory info
path_info = fullfile(path, '00mm_50.bmp');
dir_info = dir(path_info);
% read images
filename = strcat(path, dir_info.name);
raw_image = imread(filename)';
% Mask
threshold = max(max(raw_image))/2;
M = raw_image < threshold;
figure()
imshow(M)
% figure()
% mesh(raw_image)
% prepare directory info
path_info = fullfile(path, '00mm_170.bmp');
dir_info = dir(path_info);
% read images
filename = strcat(path, dir_info.name);
raw_image = imread(filename)';
% Mask image
raw_image = M & raw_image;
figure()
imshow(raw_image)
When this is ran, the output is a logical image of 0's and 1's. However, i want the original image with pixel values from 0 to 255, where there are no bright spots and the bright spots are smoothed out to match the surrounding values so the image looks like the raw image if the picture was taken with no bright spots.

Respuesta aceptada

Image Analyst
Image Analyst el 22 de Mayo de 2020
You need to use regionfill after you've thresholded to find the bright spots. Write back if you can't figure it out.
  1 comentario
Steven Manz
Steven Manz el 22 de Mayo de 2020
Yep, that worked great. I was not aware of this tool. Thank you!

Iniciar sesión para comentar.

Más respuestas (0)

Community Treasure Hunt

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

Start Hunting!

Translated by