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

조회 수: 1 (최근 30일)
Steven Manz
Steven Manz 2020년 5월 21일
댓글: Steven Manz 2020년 5월 22일
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.

채택된 답변

Image Analyst
Image Analyst 2020년 5월 22일
You need to use regionfill after you've thresholded to find the bright spots. Write back if you can't figure it out.
  댓글 수: 1
Steven Manz
Steven Manz 2020년 5월 22일
Yep, that worked great. I was not aware of this tool. Thank you!

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

추가 답변 (0개)

Community Treasure Hunt

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

Start Hunting!

Translated by