2024-04-18 23:59:16 发布
网友
我有一个视频包括不同的对象,如正方形,矩形,三角形。不知怎么的,我只需要探测和显示正方形的物体。所以在每一帧中,如果有一个正方形,它是好的,但是如果有一个三角形或矩形,那么它应该显示它。我使用背景减法,我能够检测到所有三个对象,并在它们周围创建一个边界框。但我不知道如何只显示正方形对象。在
你的对象是如何填充的还是仅仅是一个轮廓? 在任何一种情况下,我会采取的方法是通过找到最大梯度或仅仅通过边界框来检测顶点。顶点将位于边界框上。一旦你有了顶点,你就可以通过找到连续顶点之间的距离来判断物体是正方形还是矩形。在
您可以使用以下算法:
-执行背景减法,就像你现在做的那样
-将前景围成等高线(使用findConteurs(,,,)然后使用drawContours(,,,)函数)
-将获得的轮廓封闭在边界框中(使用boundingRect(,,,)函数)
-如果边框的面积约等于封闭轮廓的面积,则形状为正方形或矩形,而不是三角形。 (包围三角形的盒子的很大一部分将位于三角形之外)
-如果边框高度大约等于其宽度,则它是正方形。(出入高度和宽度垂直高度以及矩形宽度)在
你的对象是如何填充的还是仅仅是一个轮廓? 在任何一种情况下,我会采取的方法是通过找到最大梯度或仅仅通过边界框来检测顶点。顶点将位于边界框上。一旦你有了顶点,你就可以通过找到连续顶点之间的距离来判断物体是正方形还是矩形。在
您可以使用以下算法:
-执行背景减法,就像你现在做的那样
-将前景围成等高线(使用findConteurs(,,,)然后使用drawContours(,,,)函数)
-将获得的轮廓封闭在边界框中(使用boundingRect(,,,)函数)
-如果边框的面积约等于封闭轮廓的面积,则形状为正方形或矩形,而不是三角形。 (包围三角形的盒子的很大一部分将位于三角形之外)
-如果边框高度大约等于其宽度,则它是正方形。(出入高度和宽度垂直高度以及矩形宽度)在
相关问题 更多 >
编程相关推荐