MATLAB: Find indices of a binary matrix depicting a circular disk in the clockwise direction

MATLAB and Simulink Student Suitematrix array

I have a binary matrix of a circular disk. I need to find the indices of all the ones in the matrix. However, I am trying to find it sequentially in the clockwise/anticlockwise direction. I have used the find fuction. But that gives me the indices in the row by row or column by column sequence rather than circumferentially. Any help will be appreciated

Best Answer

[rows, cols] = find(YourImage);
%find the centroid
rowcent = mean(rows);
colcent = mean(cols);
%convert to polar
[theta, rho] = cart2pol(cols - colcent, rows - rowcent);
%sort in polar
[~, sortidx] = sort(theta);
%reorder x y
sort_rows = rows(sortidx);
sort_cols = cols(sortidx);