@@ -59,7 +59,7 @@ function run(obj, frame)
5959 shapeFactorFlag = get(obj .Handles .ShapeFactorCheckBox , ' Value' );
6060
6161 centroidFlag = get(obj .Handles .CentroidCheckBox , ' Value' );
62- ellipseFlag = get(obj .Handles .InertiaEllipseCheckBox , ' Value' );
62+ ellipseFlag = get(obj .Handles .EquivEllipseCheckBox , ' Value' );
6363 ellipseElongFlag = get(obj .Handles .EllipseElongationCheckBox , ' Value' );
6464
6565 feretDiameterFlag = get(obj .Handles .FeretDiameterCheckBox , ' Value' );
@@ -73,23 +73,23 @@ function run(obj, frame)
7373
7474 % TODO: use spatial calbration
7575 resol = [1 1 ];
76+ imgData = img .Data ' ;
7677
7778 % initialize empty table
78- labelList = unique(img(: ));
79- labelList(labelList == 0 ) = [];
80- tab = Table(labelList , {' Label' });
79+ labels = imFindLabels(imgData );
80+ tab = Table(labels , {' Label' });
8181
8282 % process global size features
8383 if areaFlag || shapeFactorFlag
84- areaList = imArea(img . Data , resol );
84+ areaList = imArea(imgData , labels , resol );
8585 tab = [tab Table(areaList , {' Area' })];
8686 end
8787 if perimeterFlag || shapeFactorFlag
88- perimeterList = imPerimeter(img . Data ' , resol );
88+ perimeterList = imPerimeter(imgData , labels , resol );
8989 tab = [tab Table(perimeterList , {' Perimeter' })];
9090 end
9191 if eulerFlag
92- tab = [tab Table(imEuler2d(img . Data ' ), {' EulerNumber' })];
92+ tab = [tab Table(imEuler2d(imgData ), {' EulerNumber' })];
9393 end
9494 if shapeFactorFlag
9595 shapeFactor = 4 * pi * areaList ./ perimeterList .^ 2 ;
@@ -98,7 +98,7 @@ function run(obj, frame)
9898
9999 % process inertia-based features
100100 if centroidFlag || ellipseFlag || ellipseElongFlag
101- elli = imEquivalentEllipse(img . Data ' , resol );
101+ elli = imEquivalentEllipse(imgData , resol );
102102
103103 if centroidFlag || ellipseFlag
104104 tab = [tab Table(elli(: ,1 : 2 ), {' CentroidX' , ' CentroidY' })];
@@ -115,12 +115,12 @@ function run(obj, frame)
115115
116116 % process feret diameter and oriented box features
117117 if feretDiameterFlag || tortuosityFlag
118- feretDiams = imMaxFeretDiameter(img . Data ' ) * resol(1 );
118+ feretDiams = imMaxFeretDiameter(imgData ) * resol(1 );
119119 tab = [tab Table(feretDiams , {' FeretDiameter' })];
120120 end
121121
122122 if orientedBoxFlag || boxElongFlag
123- boxes = imOrientedBox(img . Data ' , ' spacing' , resol );
123+ boxes = imOrientedBox(imgData , ' spacing' , resol );
124124 colNames = {' BoxCenterX' , ' BoxCenterY' , ' BoxLength' , ' BoxWidth' , ' BoxOrientation' };
125125 tab = [tab Table(boxes , colNames )];
126126
@@ -132,7 +132,7 @@ function run(obj, frame)
132132
133133 % process geodesic diamter based features
134134 if geodDiamFlag || geodElongFlag || tortuosityFlag
135- geodDiams = imGeodesicDiameter(img . Data ' );
135+ geodDiams = imGeodesicDiameter(imgData );
136136 tab = [tab Table(geodDiams , {' GeodesicDiameter' })];
137137 end
138138
@@ -142,7 +142,7 @@ function run(obj, frame)
142142 end
143143
144144 if maxInnerRadiusFlag || geodElongFlag
145- discs = imInscribedCircle(img . Data ' );
145+ discs = imInscribedCircle(imgData );
146146
147147 if maxInnerRadiusFlag
148148 colNames = {' InnerDiscCenterX' , ' InnerDiscCenterY' , ' InnerDiscRadius' };
@@ -251,13 +251,12 @@ function run(obj, frame)
251251 ' String' , ' Centroid' , ...
252252 ' Value' , 1 );
253253
254- obj.Handles.InertiaEllipseCheckBox = uicontrol(...
254+ obj.Handles.EquivEllipseCheckBox = uicontrol(...
255255 ' Style' , ' Checkbox' , ...
256256 ' Parent' , featuresPanel , ...
257- ' String' , ' Inertia Ellipse' , ...
257+ ' String' , ' Equivalent Ellipse' , ...
258258 ' Value' , 1 );
259259
260-
261260 obj.Handles.EllipseElongationCheckBox = uicontrol(...
262261 ' Style' , ' Checkbox' , ...
263262 ' Parent' , featuresPanel , ...
0 commit comments