Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
我希望在2D对象检测方面获得一些帮助。我将简要介绍将在其中实现的上下文。
天花板上将拍摄一张图像。天花板上将放置标记,以便可以确定摄像机的方向。图片将始终面朝上拍摄。我的目标是检测图像中的这些标记之一并确定其旋转度。因此,旋转和缩放(在较小程度上)将是图像检测中使用的两个主要因素。我将使用C#或matlab编写软件(尚不确定)。 例如,标记可能是这样的箭头: ![]() 天花板拍摄的图像将包含标记。该软件需要检测单个标记并确定它已经旋转了170度。 ![]() 我没有图像分析方面的经验。我知道图像处理是一个相当广泛的主题,并且希望就我应该朝哪个方向以及哪种技术最适合我的应用程序寻求建议。谢谢! 回答: 我建议您使用MATLAB,或者如果您打算使用C#,则Emgu CV相当不错。 霍夫变换是一个好主意。使用Canny边缘检测器检测图像中的边缘后,您将获得边缘图像(这是二进制图像,其值仅包含1或0)。 然后,使用直线的参数化函数,霍夫直线变换(基本上)围绕边缘图像中的每个白色像素旋转一条直线(该线的分辨率取决于您),并计算出白色的总数(值为1)每个旋转线的像素,并将此信息存储在一个大型累加器中,该累加器存储由该行的参数索引的数据。 替代文字http://upload.wikimedia.org/wikipedia/en/a/af/Hough_space_plot_example.png 在上面的示例中,线的参数形式为: rho = x*cos(theta) + y*sin(theta) 其中rho是距离,θ是角度因此,如您所见,如果您以特定方向查看箱柜,则可以找出以该角度定向的线数。当然,由于每个箭头有5条其他线,因此您必须做一些额外的工作才能确定哪些线以该角度定向,但这应该不会太难。 更多&回答... |
![]() |
![]() |