如何这形象广场的形状进行分类,长方形,三角形和圆?

198(30天)
请提供我的matlab代码识别形状在这个图像并把它们归入广场,矩形,圆和三角形。
5个评论
图像分析
图像分析 2015年12月12日
不确定的代码你谈论,但是很高兴你终于找到了工作。如果你有任何问题在未来,把你的图片和代码在一个新的问题。

登录置评。

接受的答案

马特Kindig
马特Kindig 2014年2月21日
编辑:马特Kindig 2014年2月21日
另一种方法是计算每个对象的最佳边界矩形的边界矩形可以在任意的角。我把下面的方法:
1)确定每个对象的边界(即周长),使用bwboundaries ()
2)计算的最小矩形边界框,其中包含这个周长。为此,我使用了minboundrect函数可用 //www.tatmou.com/matlabcentral/fileexchange/34767-a-suite-of-minimal-bounding-objects/content/MinBoundSuite/minboundrect.m
3)我计算宽度、高度和每个边界矩形的面积。纵横比(宽度和高度)之间的比例可以用来确定是否它是一个正方形(纵横比~ = 1.0)或矩形。
4)长方形或正方形,对象的填充区域(从regionprops())应该几乎和它的边界矩形的面积一样,而对于一个三角形应该会少得多。
5)的循环条件,我用周长的比值和区域图像分析师建议。
享受吧!
我= imread (“//www.tatmou.com/matlabcentral/answers/uploaded_files/8372/abc.jpg”);
%转换为二维黑白颜色倒
BW = im (:: 1) < 10;
%获得每个对象的轮廓
[B, L, N] = bwboundaries (BW);
%得到数据
统计= regionprops (L,“重心”,“区域”,“周长”);
质心=猫(1、stats.Centroid);
周长=猫(1、stats.Perimeter);
面积=猫(1、stats.Area);
CircleMetric =(周长。^ 2)。/(4 *π*区域);%循环指标
SquareMetric =南(N, 1);
TriangleMetric =南(N, 1);
%为每个边界,适合边界框,计算一些参数
k = 1: N,
边界= B {k};
[rx, ry, boxArea] = minboundrect(边界(:,2),边界(:1));% x和y是在图像翻转
%得到边界框的宽度和高度
宽度=√sum (rx (2) rx (1))。(2)^ 2 +(变化变化(1))^ 2));
身高=√sum (rx (2) rx (3))。(2)^ 2 +(变化变化(3))^ 2));
aspectRatio =宽/高;
如果aspectRatio > 1,
aspectRatio =高度/宽度;%纵横比小于团结
结束
SquareMetric (k) = aspectRatio;%纵横比的盒子
TriangleMetric (k) =区域(k) / boxArea;% vs框区域
结束
%定义一些每个指标的阈值
%的顺序循环,三角形,正方形,长方形,以避免分配
%相同形状到多个对象
isCircle = (CircleMetric < 1.1);
isTriangle = ~ isCircle & (TriangleMetric < 0.6);
isSquare = ~ isCircle & ~ isTriangle & (SquareMetric > 0.9);
isRectangle = ~ isCircle & ~ isTriangle & ~ isSquare;%矩形并不是这些
%为每个对象分配形状
whichShape =细胞(N, 1);
whichShape (isCircle) = {“圆”};
whichShape (isTriangle) = {“三角形”};
whichShape (isSquare) = {“广场”};
whichShape (isRectangle) = {“矩形”};
%现在标签的结果
RGB = label2rgb (L);
imshow (RGB);持有;
结合= [CircleMetric、SquareMetric TriangleMetric];
k = 1: N,
%显示度量值和形状的物体旁边
Txt = sprintf (“C = % 0.3 f S = % 0.3 f T = % 0.3 f ',结合(k,:));
文本(质心(k, 1) -20年,重心(k, 2), Txt);
文本(质心(k, 1) -20年,重心(k, 2) + 20, whichShape {k});
结束
12个评论

登录置评。

更多的答案(10)

图像分析
图像分析 2014年2月19日
编辑:图像分析 2016年3月19日
看看周长面积比的平方。在图像分割中使用regionprops如图所示教程: //www.tatmou.com/matlabcentral/fileexchange/?term=authorid%3A31862
(编辑)
请看附呈的演示。
21日的评论
图像分析
图像分析 2021年10月6日
@aliya 我只是下载它,它没问题。你修改它,但没有 附上您的代码 所以我不能修好它。
我将最新的版本的演示(不确定如果是改变过去7年,但可能)。

登录置评。


phaneendra ch
phaneendra ch 2015年11月22日
在执行上面的代码我得到一个错误代码。(未定义的函数或变量“minbounderect”)。我新MATLAB请解决这个prblm。提前tq先生

马纳尔一
马纳尔一 2015年12月12日
Mr.matt kindig,我使用“各种形状检测代码在这个页面。你写的代码是工作很好上面的黑白图像(图片你选择编写代码)。但我使用其他图像(“shapes.jpg”现在我提交)这可能有一些洞里面的形象和我得到错误(错误是不能生成矩阵)。如何填补这一形象上的小洞。我能为你画次要情节代码图像中存在各种形状?
1评论
图像分析
图像分析 2015年12月12日
马纳尔, 你忘了给链接你的问题 你附加代码和图片。
如果你这样做,我们可以去你的问题,告诉你如何使用imfill (binaryImage,“漏洞”)来填补你的形象。

登录置评。



(AKHIL RAJAGOPAL
(AKHIL RAJAGOPAL 2016年4月23日
我得到一个错误isTriangle = ~ isCircle & (TriangleMetric < 0.6);:错误使用&矩阵维度必须一致。
请帮我解决这个问题。
10评论

登录置评。


努尔贾汗米
努尔贾汗米 2016年12月8日
我是一个初学者在matlab。我试着矩形的代码检测。我还反刍minboundrect找到函数。但我有错误在这个函数的凸包。你能请帮助更多吗?谢谢你

拉胡尔Chauhan
拉胡尔Chauhan 2017年10月23日
泰先生非常代码但我得到错误的“未定义的函数或变量minboundract”所以请帮我尽快得到这个错误纠正....爵士再次提前泰先生
4评论
拉胡尔Chauhan
拉胡尔Chauhan 2017年10月25日
先生我纠正功能但是代码不工作我在这里附加的代码和图像文件知道帮我....这是代码:(1)test.m附加文件
(2)minboundrect.m
在这里形象:abc.jpg吗
提前先生对我的帮助. .

登录置评。


帕维尔Vilbik
帕维尔Vilbik 2017年12月11日
如何找到二维码(塑料卡)在这张照片中,因为它已经开始工作,我需要一个协调和轴,我会ractangle标记。
1评论
图像分析
图像分析 2017年12月11日
你应该开始你自己的问题。在这个问题我将告诉你如何找到气泡,也许基于色彩饱和度,然后把每个blob寻找一个相当的直方图双峰直方图。直方图的标准偏差的所有黑人和白人对象将大大低于一个棋盘对象。如果你仍然不能算出来,我可能在新邮政编码问题你要。

登录置评。


Michelle de烈性黑啤酒
Michelle de烈性黑啤酒 2018年12月28日
你好先生,
它还可能对三角形的方向进行分类。如左指向三角形或指向三角形吗?也分类的纤维/第四对象照片吗?这不是一个矩形,但如何单独从真正的矩形吗?
亲切的问候,
米歇尔
1评论
图像分析
图像分析 2018年12月28日
是的,我相信你可以的。只是修改我的附加形状识别演示。一旦你有斑点,找到其边界框和regionprops重心。如果重心是左边的边界框的中心线,指着左边。如果是下面,它是指向上。
对于其他对象,你也要找多少个顶点它然后也许规模模板大小和是否足够的像素匹配对象。你也可以做三角形的模板匹配方法,如果你想要的。不,我没有代码,但是,聪明的工程师,我相信你会发现很容易做。

登录置评。


Ahaana Khurana认为
Ahaana Khurana认为 2020年2月4日
ROMIL你能请提供形状检测的代码ahaanakhurana@gmail.com。
3评论
蒂娜Abd El-twab
蒂娜Abd El-twab 2020年2月24日
我这段代码适用于画一个矩形区域的利益,我希望之后是否是使用更快RCNN。我想把画矩形圈在下一步,你能帮我吗?
@Image分析师
图像分析

登录置评。

类别

找到更多的在图像处理工具箱帮助中心文件交换

社区寻宝

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

开始狩猎!

翻译的