MATLAB函数imfindcircles无法识别自定义生成的标准圆形问题求助
问题根因
- 调用
imfindcircles的参数格式错误:该函数的第二个参数要求为指定检测半径上下限的二元素向量,仅传入标量200不符合函数输入规则,无法正常触发检测逻辑。 - 未匹配圆形极性配置:你生成的是暗背景上的亮圆形,需要显式指定
ObjectPolarity参数为'bright'匹配该特征。 - 完美无噪的硬边缘圆形在默认灵敏度下容易被过滤,需要适当调高
Sensitivity参数保证检出。
修正后可正常运行的代码
function annulusConvolve() function outputImg = generateCircle2(circleRadius) padding = 200; [xmesh, ymesh] = meshgrid(-circleRadius-padding:circleRadius+padding, -circleRadius-padding:circleRadius+padding); outputImg = zeros(size(xmesh)); outputImg((xmesh.^2 + ymesh.^2) < circleRadius^2) = 1; end testPicture = generateCircle2(200); figure; imshow(testPicture); % 修正参数:指定半径区间、极性、调高灵敏度 centers = imfindcircles(testPicture,[195 205],'ObjectPolarity','bright','Sensitivity',0.9) end
运行后即可正常返回圆心坐标。
内容的提问来源于stack exchange,提问作者user2690730
相关产品推荐
相关产品推荐

