Asked by CX
on 10 Nov 2013

I have the following binary image.

I need to divide this cell (the white section) into equal angle portions (of 36 degrees) at the centroid and find the distance from the centroid to the perimeter (edge of the white section) at each portion of angle. With the help of some of the answers I received in a previous post (courtesy of 'Image Analyst') I have the following code so far. ('some code portions have been changed from the original post marked with *')

C = imread('14.jpg'); bw = im2bw(C, graythresh(C)); cc = bwconncomp(bw, 4); celldata = regionprops(cc, 'centroid'); celldata_centroid = [celldata.Centroid]; centroidx = celldata_centroid(:, 1); centroidy = celldata_centroid(:, 2); boundaries = bwboundaries(C); mat_boundaries = cell2mat(boundaries); %* boundaryx = mat_boundaries(:, 2); boundaryy = mat_boundaries(:, 1); allDistances = sqrt((boundaryx - centroidx).^2 + (boundaryy - centroidy).^2); allAngles = atan2d(boundaryy, boundaryx); %* [~, index36] = min(abs(allAngles - 36)); % Find index closest to 36 degrees distance36 = distance(index36); %*

But I'm getting an error at the end saying not enough input arguments for the function 'distance'. Could someone help me out?

*No products are associated with this question.*

Answer by Image Analyst
on 10 Nov 2013

Accepted answer

You never defines distance. Maybe you meant allDistances instead?

CX
on 10 Nov 2013

Image Analyst
on 10 Nov 2013

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi test

Learn moreOpportunities for recent engineering grads.

Apply Today
## 0 Comments