MATLAB: Find center of pixels in an image

Image Processing Toolboxmatrixpicture

Hi, I have a picture like "Cattura"
I want to find the center of those little areas that we can see.
How can I do?

Best Answer

Try this:
clc; % Clear the command window.
close all; % Close all figures (except those of imtool.)
clear; % Erase all existing variables. Or clearvars if you want.
workspace; % Make sure the workspace panel is showing.
format long g;
format compact;
fontSize = 18;
fprintf('Beginning to run %s.m ...\n', mfilename);
echo off;
s = load('FileDaAllegare.mat')
grayImage = s.E;
subplot(2, 2, 1);
imshow(imadjust(grayImage), []);
title('Contrast-stretched gray scale image', 'FontSize', fontSize);
subplot(2, 2, 2);
imhist(grayImage);
grid on;
title('Histogram of gray scale image', 'FontSize', fontSize);
% Binarize the image.
mask = grayImage > 0.5;
% Count the initial number of blobs.
[~, numBlobs] = bwlabel(mask);
fprintf('Found %d blobs initially.\n', numBlobs);
% Merge close blobs together with a morphologcal closing.
windowRadius = 7;
se = strel('disk', windowRadius, 0);
mask = imclose(mask, se);
subplot(2, 2, 3);
imshow(mask, []);
title('Binary image', 'FontSize', fontSize);
props = regionprops(mask, 'Area', 'Centroid');
numBlobs = length(props);
% Get all the areas.
allAreas = [props.Area];
% Get all the centroids. Column 1 is x, column 2 is y.
centroidsXY = vertcat(props.Centroid);
fprintf('Found %d blobs after filtering.\n', numBlobs);
% Show histogram of areas.
subplot(2, 2, 4);
histogram(allAreas);
grid on;
caption = sprintf('Histogram of %d Blob Areas', numBlobs);
title(caption, 'FontSize', fontSize);
g = gcf;
g.WindowState = 'maximized';