Изобразите большую ось длины и малую ось длины - Matlab - PullRequest
0 голосов
/ 07 ноября 2018

Я нашел этот скрипт ниже в https://blogs.mathworks.com/steve/2010/07/30/visualizing-regionprops-ellipse-measurements/

Я хочу построить также MajorAxisLength и MinorAxisLength, как я могу это сделать?

Сценарий:

url = 'https://blogs.mathworks.com/images/steve/2010/rice_binary.png';
bw = imread(url);
imshow(bw)

s = regionprops(bw, 'Orientation', 'MajorAxisLength', ...
    'MinorAxisLength', 'Eccentricity', 'Centroid');

imshow(bw)
hold on

phi = linspace(0,2*pi,50);
cosphi = cos(phi);
sinphi = sin(phi);

for k = 1:length(s)
    xbar = s(k).Centroid(1);
    ybar = s(k).Centroid(2);

    a = s(k).MajorAxisLength/2;
    b = s(k).MinorAxisLength/2;

    theta = pi*s(k).Orientation/180;
    R = [ cos(theta)   sin(theta)
         -sin(theta)   cos(theta)];

    xy = [a*cosphi; b*sinphi];
    xy = R*xy;

    x = xy(1,:) + xbar;
    y = xy(2,:) + ybar;

    plot(x,y,'r','LineWidth',2);
end
hold off

1 Ответ

0 голосов
/ 12 ноября 2018

У вас много ненужного кода в том, что вы разместили. Я не думаю, что вы на самом деле пытались приспособить его к тому, что вы говорите, что хотите построить. Учитывая то, что вы сказали, что пытаетесь сделать в комментариях, я думаю, что это код, который вы хотите использовать для построения зависимости длины большой оси от длины малой оси

url = 'https://blogs.mathworks.com/images/steve/2010/rice_binary.png';
bw = imread(url);

s = regionprops(bw, 'Orientation', 'MajorAxisLength', ...
    'MinorAxisLength', 'Eccentricity', 'Centroid'); %Get region props

 Major=zeros(size(s)); 
 Minor=zeros(size(s));

for k = 1:length(s)
    Major(k)= s(k).MajorAxisLength; %get your y values
    Minor(k)= s(k).MinorAxisLength; %get your x values
end

figure %create a new figure because you don't want to plot on top of the image

plot(Minor, Major, 'o') %plot
xlabel('Minor Axis Length')
ylabel('Major Axis Length')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...