预览
注意事项
使用R2020b版本开发,部分功能需要R2019a以后版本支持,不建议使用过早版本的matlab
下载链接
介绍
读取文件
function LoadButtonPushed(app, event)
% 打开资源管理器选择文件
filterspec = {'*.jpg;*.tif;*.png;*.gif','All Image Files'};
[f, p] = uigetfile(filterspec);
% 确保没有点击取消按钮
if (ischar(p))
fname = [p f];
updateimage(app, fname);
end
end
统计出所有的圆心和半径
计算图片中有多少个圆
[30 350] 圆的半径范围,单位像素
Sensitivity 敏感度因子,越大检测到的越多
EdgeThreshold 边缘梯度阈值,越低检测到的目标越多
[app.centers, app.radii, ~] = imfindcircles(app.im, [30 350], 'Method', 'TwoStage', 'Sensitivity', 0.94, 'EdgeThreshold', 0.18);
圈出硬币
rectangle(app.UIAxes, 'Position',[app.centers(i, 1)-app.radii(i) app.centers(i, 2)-app.radii(i) app.radii(i)*2 app.radii(i)*2], 'Curvature', 1,'EdgeColor','g','LineWidth',3);
rectangle用于画圆角矩形
介绍
标注直径
text(app.UIAxes, app.centers(:,1), app.centers(:,2), num2str(app.radii),'Color','g',"FontSize",30);