I want to hide the circles and only plot centroids with "+" sign

3 次查看(过去 30 天)
I have attached the images and m file

回答(2 个)

darova
darova 2021-9-5
  • binarize
  • use regionprops

Image Analyst
Image Analyst 2021-9-5
Try this:
baseFileName = 'circle1.JPG';
fullFileName = fullfile(pwd, baseFileName);
rgbImage=imread(fullFileName);
[rows, columns, numberOfColorChannels] = size(rgbImage);
subplot(2, 1, 1);
imshow(rgbImage);
axis('on', 'image');
blueChannel = rgbImage(:, :, 3);
% imshow(blueChannel);
% Binarize
mask = ~imbinarize(blueChannel);
% Find centroid(s)
props = regionprops(mask, 'Centroid');
xy = vertcat(props.Centroid)
xCenter = xy(:, 1)
yCenter = xy(:, 2)
hold on
plot(xCenter, yCenter, 'b+', 'MarkerSize', 60, 'LineWidth', 3);
% Now show an image where the circle(s) is/are hidden
% and only the centroid(s) is shown, like the poster wanted.
subplot(2, 1, 2);
plot(xCenter, yCenter, 'b+', 'MarkerSize', 60, 'LineWidth', 3);
axis('on', 'ij'); % Flip axes vertically.
xlim([1, columns]);
ylim([1, rows]);

类别

Help CenterFile Exchange 中查找有关 Image Segmentation and Analysis 的更多信息

产品


版本

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by