How to find the center position under the saturation spot signal
7 views (last 30 days)
Show older comments
Hello, I would like to seek your help. I have an image below. How can I find the spot position centre (X,Y) under the saturation spot signal?

The code as below
clear all; close all;clc
D = 'C:\Users\Admin\Desktop';
S = dir(fullfile(D,'*.bmp')); % pattern to match filenames.
%%-------open file----
S_BG = dir(fullfile(D,'figure.bmp')); % pattern to match filenames.
for k_BG = 1:numel(S_BG)
F_BG = fullfile(D,S_BG(k_BG).name);
I_BG = imread(F_BG);
Z = im2double(I_BG);
Z = rgb2gray(Z);
figure(100),imshow(Z)
figure(101)
surf(Z)
end
0 Comments
Accepted Answer
Steve Eddins
on 9 Apr 2021
Try converting the image to binary using imbinarize and then using regionprops to compute the centroid.
rgb = imread('image.bmp');
I = rgb2gray(rgb);
bw = imbinarize(I);
s = regionprops(bw,'Centroid')
imshow(I,'InitialMagnification','fit')
hold on
plot(s.Centroid(1),s.Centroid(2),'b*')
hold off
Alternatively, consider computing a weighted centroid using the grayscale pixel values. First, expand the binarized object using dilation to include more of the grayscale pixel values at the edge of the object.
bw2 = imdilate(bw,strel('disk',20));
s2 = regionprops(bw2,I,'WeightedCentroid')
imshow(I,'InitialMagnification','fit')
hold on
plot(s2.WeightedCentroid(1),s2.WeightedCentroid(2),'b*')
hold off
More Answers (0)
See Also
Categories
Find more on Image Processing Toolbox in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!