matlab求内切圆,MATLAB:定位手掌最大内切圆

最近要做的一件事就是:对于一份给定的手掌图,要定位可寻的最大内切圆。做了近12个小时,才终于解决了这个问题,下面记录一下过程。

1、图片在MATLAB里是个矩阵,如何在矩阵作圆:

function [] = DrawCircle( Image, Centre, Radius )

figure, imshow(Image), hold on;

t = 0:0.01:2*pi;

x = round(Radius*cos(t) + Centre(1));

y = round(Radius*sin(t) + Centre(2));

%fill(x, y, 'w');

plot(x, y, '-r','LineWidth', 1);

plot(Centre(1), Centre(2), '*r');

end

2、如何实现内切圆心的定位:

% GA algorithm

optionsOrigin = gaoptimset('Generations', 50,...

'PopInitRange',[0;min(Width,Length)],...

'PopulationSize',ceil(min(Width,Length)/10));

[x, fval] = ga(@fitnessfcn, 3, optionsOrigin);

Centre = [x(1), x(2)];

Radius = fval;

str = sprintf('\nCentre = %f

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值