【问题标题】:OpenCV Image Comparison for Surface Damage detection用于表面损伤检测的 OpenCV 图像比较
【发布时间】:2013-08-11 22:35:42
【问题描述】:

我们计划通过使用 OpenCV 为将表面变色作为特定损伤的瓷砖创建表面损伤检测原型。我们想知道我们应该考虑使用什么方法。我们是开发这些类型的对象识别/对象跟踪程序的新手。我们已经阅读了诸如直方图方法和跟踪色相饱和度值的方法,但我们仍然感到困惑。

此外,我们想知道是否可以在不使用跟踪条的情况下检测对象的色调饱和度值。

我们将不胜感激任何相关且有帮助的回复。

【问题讨论】:

    标签: opencv


    【解决方案1】:

    我觉得你可以按顺序做:

    1) 找到瓦片区域。使用角点检测器、霍夫线等。

    2) 找到 SIFT(或其他描述符)并识别此图块上必须包含的图像(在您的图块图像数据库中找到它)。

    3) 仔细对齐图像。例如在 DB 图像中找到的图像与来自相机的瓦片图像之间的同应性(使用 SIFT 特征)。

    4) 找出来自相机的平铺图像中每个像素与来自数据库的平铺图像中的每个像素之间的颜色距离。

    5) 某个值的阈值差异 -> 得到有问题的区域

    想想照明。您必须为测量提供相同的照明条件。

    【讨论】:

    • 非常感谢您的回复:)这是一个很大的帮助!我只是想知道这个序列是否可以实时完成?
    • 我认为您可以从 opencv 的标准示例开始:video_homography.cpp,它位于 opencv\samples\cpp\ 文件夹中。试试看,我认为它会帮助开始(它实时工作:))。描述符匹配很慢,但你可以使用 GPU 将其加速 10-20 倍。
    • 再次感谢您的回复。我们正在考虑使用 kinect 传感器而不是网络摄像头,(很抱歉,如果我之前没有提到它),这个标准示例是否适用于我们选择使用的任何摄像头/传感器?
    • 我认为是的,你可以使用它(它只使用图像),但它显然不是 kinect 的最佳选择。如果您找到平面插值会更好(例如使用最小二乘法、RANSAC 或类似的方法)。然后得到瓷砖角点,把它放在找到的平面上(它们离它不远)。所有其他步骤都不会改变。
    猜你喜欢
    • 1970-01-01
    • 2020-12-03
    • 2012-11-18
    • 1970-01-01
    • 1970-01-01
    • 2013-01-29
    • 2011-06-18
    • 2018-04-01
    相关资源
    最近更新 更多