如何检测PizzaMarker

问题描述 投票:3回答:4

到目前为止,是否有人试图通过“仅” OpenCV找到像这样的比萨饼标记?

“

我正在尝试检测到这一点,但到目前为止无法获得良好的结果。我不知道该标记在图片中的位置(不可能有ROI),该标记将位于房间中的某个位置(不同的光亮效果),并且不会面向我们。我想要的是-拐角以及后来用拐角提取的该标记的方向,但首先仅是5Corners。 (上,下,左,右,中心)

到目前为止,我一直在尝试:阈值,清除噪声,找到轮廓,但是并没有真正有助于取得好的结果。棋盘或方形标记通常是因为它们的(平行)线而发现的-我想这在这里无济于事...

找到这些标记的简便方法是什么?您将如何开始?使用其他颜色格式,例如HSV?

分步指导或教程非常有用。因为我在网上找不到find子。也许这个标记不叫披萨标记->有人知道真实姓名吗?

寻求帮助

opencv feature-detection
4个回答
2
投票

首先-谢谢您的所有帮助。似乎有几种方法是有用的。或多或少的时间膨胀。对我来说,模板匹配最简单,但标记却不同。我只用了一小部分...

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9iTURWVS5wbmcifQ==” alt =“在此处输入图像描述”>

在这个新标记中可以找到5次(负4次,正1次):

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9TelFnMy5wbmcifQ==” alt =“在此处输入图像描述”>

现在我只使用4个最负面的点和最积极的点,并得到了我最后想要的5个点。为了更确定这一点,我检查它们是否彼此靠近,并将执行cornerSubPix()。


1
投票

如果需要实时操作的东西,我会沿着边缘检测路线,寻找像these guys did的相交线。似乎可以快速而强大地适应照明变化。

在openCV中阅读霍夫线变换以开始使用。

附录:

黑到白是您可以拥有的最强优势。如果创建渐变图像并使用场景中发现的最强边缘(通过直方图或其他),则可以将检测范围限制为仅黑白边缘。寻找路口。这应该为您提供少量的中心点,以应用霍夫椭圆检测(或替代方法)。如果需要,您可以旋转模板以进行进一步检查。

顺便说一句。如果您沿这条路线走,OpenCV具有边缘检测,霍夫变换和FitEllipse。


1
投票

实际上,这种“比萨饼”模式是用于Viola–Jones object detection framework

因此,我要做的是使用cv::integral(img)计算总面积表或积分图像,然后以各种比例(取决于大小)对这种模式进行详尽的搜索。在每个窗口中,您仅使用9个点(左上角,顶部中心,...,左下角)。


1
投票

您可以使用VJ训练和使用cvHaarDetectObjects来检测标记。可能不是最快的方法,但应该可以。您可以在此处找到有关使用OpenCV的对象检测方法的更多信息:http://opencv.willowgarage.com/documentation/object_detection.html

© www.soinside.com 2019 - 2024. All rights reserved.