.
- 2D- , ( ), .
,
img=imread('http://i.stack.imgur.com/DL2Cq.png'); %
bw = img(:,:,1) > 128; %
[y x] = find(bw); %
n=numel(x); %
- :
mm = mean([x y],1);
mA = bsxfun(@minus, [x y], mm);
, (x, y), L(1)*x + L(2)*y = 1. , , (x,y) : L(1)*x + L(2)*y <= 1. L, , quadprog:
L1 = quadprog(eye(2), -ones(2,1), mA, ones(n,1));
L2 = quadprog(eye(2), ones(2,1), mA, ones(n,1));
L3 = quadprog(eye(2), [1; -1], mA, ones(n,1));
, , f, , .
, ( mm):
x12=inv([L1';L2'])*ones(2,1)+mm';
x23=inv([L3';L2'])*ones(2,1)+mm';
x13=inv([L3';L1'])*ones(2,1)+mm';
imshow(bw,'border','tight');
hold all;
%
ezplot(gca, @(x,y) L1(1)*(x-mm(1))+L1(2)*(y-mm(2))-1, [1 340 1 352]);
ezplot(gca, @(x,y) L2(1)*(x-mm(1))+L2(2)*(y-mm(2))-1, [1 340 1 352]);
ezplot(gca, @(x,y) L3(1)*(x-mm(1))+L3(2)*(y-mm(2))-1, [1 340 1 352]);
%
scatter([x12(1) x23(1) x13(1)],[x12(2) x23(2) x13(2)],50,'+r');
