为什么在如此明显的图像中不能检测到圆?

4个视图(过去30天)
为什么在如此明显的图像中不能检测到圆?
Img = imread(“circle.png”);
[center1,radii1] = imfindcircles(img,100,
“敏感”, 0.85,
“ObjectPolarity”“光明”)
无论你如何调整“灵敏度”或半径或“object极性”的值,圆是检测不到的,为什么?
操作系统:win10
matlab R2021a

接受的答案

图像分析
图像分析 2021年5月21日
试着将灵敏度提高到0.95
clc;清除命令窗口。
关闭所有关闭所有图形(imtool的图形除外)。
清晰;删除所有现有变量。或者clearvars。
工作空间;%确保工作区面板正在显示。
格式长g
格式紧凑的
fontSize = 20;
%--------------------------------------------------------------------------------------------------------
映像中已读百分比
文件夹= pwd;
baseFileName =“circle1.png”
grayImage = imread(baseFileName);
获取图像的尺寸。
% numberOfColorChannels对于灰度图像应该= 1,对于RGB彩色图像应该= 3。
[rows, column, numberOfColorChannels] = size(grayImage)
如果numberOfColorChannels > 1
这并不是我们所期望的灰色尺度,而是颜色。。
使用所有通道的加权和创建灰度图像。
grayImage = min(grayImage, [], 3);
结束
%--------------------------------------------------------------------------------------------------------
%显示图像。
imshow (grayImage []);
轴(“上”“图像”);
标题(的二进制图像“字形大小”字形大小,“翻译”“没有”);
impixelinfo;
hFig = gcf;
hFig。WindowState =“最大化”可能不能在早期版本的MATLAB中工作。。
drawnow;
[center1, radii1] = imfindcircles(grayImage,[75, 125],“敏感”, 0.95,“ObjectPolarity”“光明”)
radii1 viscircles(中心,“线宽”4);

更多答案(1)

斯蒂芬
斯蒂芬 2021年5月20日
编辑:斯蒂芬 2021年5月20日
使用一个范围作为半径输入参数,例如:
[center1,radii1] = imfindcircles(img,[50 200],“敏感”, 0.85,“ObjectPolarity”“光明”)
1评论
崔
2021年5月21日
编辑: 2021年5月21日
你好,您的解决方案没有工作,仍然没有检测到任何结果!
你可以尝试编码

登录发表评论。

s manbetx 845


释放

R2021a

社区寻宝

在MATLAB中央找到宝藏,并发现社区可以如何帮助你!

开始狩猎!