用opencv对行进行分类

时间:2012-06-25 08:58:08

标签: c++ image-processing opencv classification

我正在进行图像分类项目,我使用边缘检测从图像中提取曲线,需要根据它们的曲率对它们进行分类。

例如,在下图中有3种线条,左边的线条曲率很好,中间的曲线有一个不错的曲率,而右边的曲线曲率非常差。

curves

感谢您的帮助

2 个答案:

答案 0 :(得分:6)

如果您正在使用图像,则可以知道您所显示的形状是否包含“平滑”或“锐利”边缘。您可以计算结构矩阵(或图像张量矩阵)的特征值和特征向量。对于属于直线或平滑边缘的像素,其中一个特征值将比另一个大得多。如果像素是拐角或弯曲点,则两个特征值可能都很大且相似。 然后我建议在你的形状像素上测量这些特征,并根据你的需要训练分类器。

你可以在其他地方找到关于这些事情的更多细节,虽然我可以给你参考我自己的博士学位,看看第2.4.2节http://oa.upm.es/4837/1/MARCOS_NIETO_DONCEL.pdf

祝你好运!

答案 1 :(得分:4)

我认为很少有可能采取措施进行分类:

尝试使用近似eps的近似线然后检查近似线的段数,更少的线段是更好的线。 (这可能会在大多数左边的情况下出现问题,当行包含来自少数几个部分时)

检查边界框大小,更小尺寸更好行

检查凸性缺陷。