用于表面损伤检测的OpenCV图像比较

用于表面损伤检测的OpenCV图像比较,opencv,Opencv,我们计划通过使用OpenCV为表面变色的瓷砖创建一个表面损伤检测原型。我们想知道我们应该考虑使用什么方法。我们对开发这些类型的目标识别/目标跟踪程序是新手。我们已经读过一些方法,比如直方图法和跟踪色调饱和度值的方法,但是我们仍然感到困惑 此外,我们想知道是否有可能在不使用轨迹条的情况下检测对象的色调饱和度值 任何相关的、有帮助的回复都将不胜感激。我认为您可以按顺序进行: 1) 查找平铺区域。使用角检测器、霍夫线等 2) 查找SIFT(或其他描述符)并识别此磁贴上必须包含的图像(在您的磁贴图像数据

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

此外,我们想知道是否有可能在不使用轨迹条的情况下检测对象的色调饱和度值


任何相关的、有帮助的回复都将不胜感激。

我认为您可以按顺序进行:

1) 查找平铺区域。使用角检测器、霍夫线等

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

3) 仔细对齐图像。例如,在DB图像和来自相机的瓷砖图像之间查找同形性(使用SIFT特征)

4) 从相机和数据库中查找平铺图像中每个像素之间的颜色距离

5) 阈值差按某个值->获取问题区域


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

我认为您可以按顺序进行:

1) 查找平铺区域。使用角检测器、霍夫线等

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

3) 仔细对齐图像。例如,在DB图像和来自相机的瓷砖图像之间查找同形性(使用SIFT特征)

4) 从相机和数据库中查找平铺图像中每个像素之间的颜色距离

5) 阈值差按某个值->获取问题区域


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

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