【问题标题】:Good Method for Processing some Similar Images处理一些相似图像的好方法
【发布时间】:2012-12-07 22:28:44
【问题描述】:

我需要实时处理一些图像。我正在使用 OpenCV 从相机接收图像。我使用的语言是 C++。附上图像示例。应用一些阈值过滤器后,我得到了这样的图像,当然这里和那里可能会有一些像素噪声,但不是那么多。

我需要检测正方形的中心和旋转,以及白色圆圈的中心。我完全不知道该怎么做,因为它需要非常快。可以预定义正方形的数量。任何帮助都会很棒,在此先感谢。

【问题讨论】:

    标签: image-processing opencv


    【解决方案1】:

    以下直截了当的方法是否太慢了?

    • 二值化图像,使原来的绿色背景为黑色,其余部分(黑色方块为白色圆点)为白色。
    • 使用 cv::findContours。
    • 获取中心。
    • 对图像进行二值化,使除白点外的所有内容均为黑色。
    • 使用 cv::findContours。
    • 获取中心。
    • 将每个点轮廓分配给方形轮廓,因为这是一个内点。
    • 通过正方形的中心和点的中心之间的线的角度来计算正方形的旋转。

    【讨论】:

    • 我需要每秒执行大约 20 次。我将尝试这种方法并更新有关它的帖子。谢谢。
    • 好的,50ms 不算多,但根据您的硬件,这可能是可能的。如果不是,您可以尝试降低分辨率是否仍然足以满足您正在做的事情。
    • 好的!我这样做了,还发现 OpenCV 有一个近似多边形的函数(cvApproxPoly)。我想问题已经解决了。再次感谢!
    • 只是一些笔记。我对图像进行了二值化处理,使绿色背景变为白色,黑色方块保持黑色,白色圆点变为白色。这样,我不仅得到了等高线,还可以使用Tree输出等高线模式,并且会自动知道每个白点属于哪个方格。
    猜你喜欢
    • 2011-02-19
    • 1970-01-01
    • 2017-04-23
    • 1970-01-01
    • 1970-01-01
    • 2021-09-29
    • 2011-09-29
    • 2014-06-29
    • 2016-10-24
    相关资源
    最近更新 更多