How to select a regionprops from a popup menu in a GUI?

3 Ansichten (letzte 30 Tage)
Meshooo
Meshooo am 23 Jan. 2014
Bearbeitet: Meshooo am 23 Jan. 2014
Dear all,
I am building one GUI which include a popup menu for a 'regionprops' function that I need. I am trying to call the type of 'regionprops' after clicking a push button but it is not working. My code is as follows:
popup_2_Value = get(handles.popupmenu2, 'Value');
if popup_2_Value == 1
RegPropType = 'Area';
elseif popup_2_Value == 2
RegPropType = 'MajorAxisLength';
elseif popup_2_Value == 3
RegPropType = 'MinorAxisLength';
elseif popup_2_Value == 4
RegPropType = 'Perimeter';
elseif popup_2_Value == 5
RegPropType = 'Orientation';
end
%
X = im2bw(I); %binary image of the input
CC = bwconncomp(X); %Connected components
mal = regionprops(CC,'RegPropType'); % normal code format is --> mal = regionprops(CC,'Area');
mal = vertcat(mal(:).RegPropType); % normal code format is --> mal = vertcat(mal(:).Area);
This error message appears "Error using regionprops>getPropsFromInput"
Any idea how to solve such problem?
With kind regard,
Meshoo

Akzeptierte Antwort

ES
ES am 23 Jan. 2014
From what I see, you should have done
mal = regionprops(CC,RegPropType)
instead of
mal = regionprops(CC,'RegPropType');%Note the missing quotes
Since the variable RegPropType has the required string like 'area' or ' Perimeter' etc. When you pass as 'RegPropType', this string itself is passed, and not the value inside the variable RegPropType.
  2 Kommentare
Meshooo
Meshooo am 23 Jan. 2014
Yes, you are right for the first part. As you said it should be
mal = regionprops(CC,RegPropType)
But how can we do the following second part
mal = vertcat(mal(:).RegPropType);
Thank you very much.
ES
ES am 23 Jan. 2014
you can do an eval.
mal = eval(['vertcat(mal(:).',RegPropType]);

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Fluid Dynamics finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by