我有一些二进制图像,希望根据它们在MATLAB中的形状进行分类。如果它们具有圆形或椭圆形状,则它们属于第一类,如果它们具有椭圆形状且在其边界上具有凹痕,则它们属于第二类。我不知道如何使用此功能。任何机构能帮助我吗?测量圆度或椭圆度
Q
测量圆度或椭圆度
0
A
回答
3
您可以使用regionprops
中的eccentricity
属性。从MATLAB文档eccentricity
:
偏心率是椭圆焦点和其长轴长度之间的距离的比率。 (0和1是简并的情况,其中偏心率为0的椭圆实际上是圆形,而偏心率为1的椭圆是线段)。
因此, eccentricity
增加,椭圆开始变为更平坦。因此,在它的最大值= 1时,它是一条线段。
要检查椭圆中是否有凹痕,可以使用检查凸度。每当椭圆中有一个凹痕时,它就是非凸的。换句话说,如果你试图拟合一个凸多边形,它将不能很好地逼近形状。您可以使用convexArea
属性检查相同。来自MATLAB的文档convexArea
:
返回一个p-by-2矩阵,该矩阵指定可以包含区域的最小凸多边形。矩阵的每一行包含多边形一个顶点的x和y坐标。仅支持2-D标签矩阵。
所以你用bwlabel
从你的二进制映像创建一个2-d标签矩阵,然后检查你的二值图像的区域和拟合凸多边形的面积之间的差异。测量区域可以像计算像素一样简单。你已经知道你的拟合凸多边形的数量像素= p
。只需将p
与原始二进制图像中的像素数之间的绝对差异。您应该能够轻松设置一个阈值,将其分为两类中的一类。
我认为你可以为此编写代码。希望这可以帮助。
相关问题
- 1. 椭圆弧长度
- 2. 找到椭圆的角度
- 3. 椭圆厚度算法
- 4. Silverlight椭圆高度转换
- 5. 微调/椭圆/宽度
- 6. 椭圆测量距离
- 7. CSS或jQuery/JavaScript椭圆形/圆形方形进度条
- 8. 画线宽度与椭圆宽度
- 9. 椭圆vs圆
- 10. Blastomere上的椭圆/圆检测
- 11. Pyqtgraph:如何绘制椭圆或圆形
- 12. 变焦时改变椭圆的宽度
- 13. CSS - 最大宽度和椭圆
- 14. DXF解析器:椭圆角度方向
- 15. Diffie-Hellman椭圆曲线私钥长度
- 16. 统一画一个角度的椭圆
- 17. safari svg与双倍宽度的椭圆
- 18. 内存沉重的椭圆梯度
- 19. 椭圆如何与椭圆相交?
- 20. 椭圆检测opencv蟒蛇
- 21. Angular ngOptions切片或椭圆
- 22. 椭圆体的相交量
- 23. android:根据高度绘制矩形或椭圆
- 24. 椭圆与CombinedGeometry
- 25. 椭圆有孔
- 26. 绘制椭圆
- 27. 椭圆NSTextField?
- 28. 椭圆绘图
- 29. 椭圆SKPhysicsBody
- 30. 椭圆验证
感谢您总结文档。 +1。 – rayryeng