我希望在Simulink模型中使用imfindcircles
跟踪带摄像头的圆。当图像上看不到圆圈时,图片中可能会有时间。matlab imfindcircles:找不到圆时的处理方法
我用下面的代码在MATLAB功能块:
function centreOutput = fcn(image)
coder.extrinsic('imfindcircles');
coder.extrinsic('find');
coder.extrinsic('max');
temp = 0;
rayonMax = 0;
rayons = coder.nullcopy(zeros(1,1));
centres = coder.nullcopy(zeros(1,2));
%set the radius
[centres, rayons] = imfindcircles(image,[20 60],'Sensitivity',0.9,'EdgeThreshold',0.5,'ObjectPolarity','bright');
rayonMax = min(rayons);
temp = find(rayons==rayonMax);
centreOutput = centres(temp,:);
end
我的问题是,我得到了以下错误消息:
尺寸不匹配MATLAB表达“人造丝”。预期值= 1x1的实际=为0x0 座MATLAB功能(#41) 在执行:国家在行动
按我的理解,是不是因为当没有圆发现申报的centres
尺寸:我怎么能应对与此时没有找到圆(就像一个测试,将“如果找到一个圆圈......”)
也,为什么你正在初始化'rayons'和'centres'?你不会得到更快的结果(因为他们是1x1或1x2)。只是不这样做。 –