image = imread('Cattura.jpg');
binaryImage = imbinarize(image);
[y_indices, x_indices] = find(binaryImage);
centroid_x = mean(x_indices);
centroid_y = mean(y_indices);
x_centered = x_indices - centroid_x;
y_centered = y_indices - centroid_y;
cov_matrix = cov(x_centered, y_centered);
[eigenvectors, eigenvalues] = eig(cov_matrix);
[~, order] = sort(diag(eigenvalues), 'descend');
eigenvectors = eigenvectors(:, order);
eigenvalues = diag(eigenvalues);
eigenvalues = eigenvalues(order);
plot(centroid_x, centroid_y, 'ro', 'MarkerSize', 10, 'LineWidth', 2);
vector = eigenvectors(:, i);
quiver(centroid_x, centroid_y, sqrt(eigenvalues(i)) * vector(1), sqrt(eigenvalues(i)) * vector(2), ...
'Color', colors(i), 'LineWidth', 2, 'MaxHeadSize', 2);
title('Inertia Axes of Nevus');
angle = atan2(eigenvectors(2, 1), eigenvectors(1, 1));
angle_degrees = rad2deg(angle);
rotated_image = imrotate(binaryImage, -angle_degrees, 'bilinear', 'crop');