How to find the center of 4 points on an image?

5 vues (au cours des 30 derniers jours)
Milad Zarei
Milad Zarei le 14 Avr 2020
Commenté : Ameer Hamza le 16 Avr 2020
I have an image of the foot that was devided into different cells. I need to find the center of each cell. I was wondering if the best way to do so is to pick the 4 points on the vertices of the cell and let Matlab find the center?
Attache is the image. Let me know if you have any ideas. Thanks.
  2 commentaires
Tommy
Tommy le 14 Avr 2020
You could create a polyshape based on the four vertices and then use centroid.
Milad Zarei
Milad Zarei le 15 Avr 2020
Yes, I think that would work. I'll give it a shot. Thanks!

Connectez-vous pour commenter.

Réponse acceptée

Ameer Hamza
Ameer Hamza le 15 Avr 2020
Modifié(e) : Ameer Hamza le 15 Avr 2020
try this code. It requires functions from image preocessing toolbox.
im = im2double(imread('image.jpeg'));
%% remove red text
im_gray = rgb2gray(im);
im_gray(~(im_gray < 0.2)) = 1;
im_gray = double(imbinarize(im_gray));
%% find the polygons
regions = bwconncomp(im_gray);
pxlList = regions.PixelIdxList;
outlier = isoutlier(cellfun(@(x) numel(x), pxlList));
pxlList(outlier) = [];
%% find centers
centers = zeros(numel(pxlList), 2);
for i=1:numel(pxlList)
im_zeros = zeros(size(im_gray));
im_zeros(pxlList{i}) = 1;
rp = regionprops(im_zeros);
centers(i, :) = rp.Centroid;
end
%%
imshow(im);
hold on
plot(centers(:,1), centers(:,2), 'r+', 'LineWidth', 2, 'MarkerSize', 10);
  8 commentaires
Milad Zarei
Milad Zarei le 16 Avr 2020
Ameer, I am honestly impressed. This is so neat. Good job.
Just a quick question. The first code, it finds the centers in pixles (not mm), right?
Ameer Hamza
Ameer Hamza le 16 Avr 2020
I am glad to be of help.
Yes, It finds centers in pixel coordinates. You can convert it to mm according to your scale.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by