Skip to content

Commit e19f3e6

Browse files
committed
update regions analysis
1 parent acb24f7 commit e19f3e6

File tree

1 file changed

+14
-15
lines changed

1 file changed

+14
-15
lines changed

ImageM/+imagem/+actions/+analyze/AnalyzeImageRegions.m

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)