Draw a circle and measure the white pixels area inside

조회 수: 5 (최근 30일)
Hassan Khalil
Hassan Khalil 2019년 8월 1일
댓글: Hassan Khalil 2019년 8월 22일
Hello everyone, a binary image is obtained. The work is to draw concentric cirles in the image and calculate the area of the white pixels in each circle. The objective is to get a curve.
I attached an image as an example.
  댓글 수: 2
Walter Roberson
Walter Roberson 2019년 8월 1일
Construct a binary mask which is a circle of appropriate radius at appropriate center. Use .* to multiply the mask and the binary form of the image. nnz() then gives the white count.
Hassan Khalil
Hassan Khalil 2019년 8월 1일
Thank you very much. It works. Not automatically for all the concentric radius but radius by radius. At each time, I change the radius value with the same center coordinates. The objective is done.

댓글을 달려면 로그인하십시오.

채택된 답변

Walter Roberson
Walter Roberson 2019년 8월 1일
You can construct a distance-squared matrix once. Then you can
sum(bsxfun(@le, distance_squared_matrix(:), radius_row_vector.^2))
to get the counts.
  댓글 수: 1
Hassan Khalil
Hassan Khalil 2019년 8월 22일
Come back from vacation to get a good idea proposed by you.
Thank you

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

KSSV
KSSV 2019년 8월 1일
편집: Walter Roberson 2019년 8월 1일
I = imread('image.png') ;
I1 = rgb2gray(I) ;
[y,x] = find(I1) ;
length(x)

태그

Community Treasure Hunt

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

Start Hunting!

Translated by