使用OpenCV测量不规则形状的区域

时间:2019-01-31 07:50:28

标签: android opencv opencv4android opencv-contour

我以前没有使用OpenCV的经验,所以我决定在这里花点时间尝试编写解决方案之前,先征询一些反馈。

我想制作一个小型的临时Android应用程序,以测量不规则的服装/布料的表面积(以平方英尺或平方米为单位)。这是一个样例的示例:

Example of pieces to measure

它们的大小在1-4平方米之间。

一种可能的方法是将这些物品放在已知区域的表面上(例如2m x 2.5m的紫色木板):

Solution example

使用OpenCV:

  1. 确定紫色木板的外边界,并以像素为单位获取其面积。
  2. 确定紫色板上的内部形状,并以像素为单位获取面积。
  3. 现在我们只计算比率:内部形状代表整个紫色木板的X%。既然我们知道紫色板的SQFT,就可以在SQFT中获得形状的表面。

这行得通吗?它有多精确?

欢迎任何建议/替代方法。

谢谢!

1 个答案:

答案 0 :(得分:0)

  1. 识别紫色板的外边界,并以像素为单位获取其面积:使用OpenCV可以并且很容易。您必须以某种方式将其分割:通过颜色,边缘。

  2. 识别紫色板上的内部形状,并以像素为单位获取其面积:使用OpenCV可以并且容易做到。刚好找到特定的颜色。

  3. 现在我们只计算比率:内部形状代表整个紫色木板的X%。既然我们知道紫色板的SQFT,我们也可以在SQFT中获得形状的表面:使用OpenCV可以并且很容易做到。

准确性取决于几个因素:

  1. 相机分辨率

  2. 相机位置(最佳位置是相机轴垂直于带有平面和形状的平面)

  3. 形状分割的精度