2014-10-10 184 views
0

我使用Opencv检测材料的形状和尺寸(如光盘,垫圈,不同尺寸的螺母和螺栓),将在跑带上进行检测。什么功能是最好的区分它们。 我打算使用cvFindContours(查找形状)和cvArcLength & cvContourArea来获取它们的区域。OpenCv形状检测

有没有更好的方法?

回答

1

这是塑造匹配一个简单的方法:

  1. 转换为灰度
  2. Smoothen图像。
  3. 套用一些morphological operations(如有必要)。
  4. Edge detect
  5. 查找轮廓(与您提到的相同)。轮廓函数是分层的。因此,分割所需的(大多数情况下)外形应该很容易。圆盘和垫圈可以通过轮廓层次结构中的孔进行区分。
  6. 使用ApproxPolyDP可以将轮廓定位为粗糙的规则形状。您可以根据轮廓中的顶点数量来区分形状。
  7. 如果ApproxPolyDP不足,则使用moments来区分形状。

它适用于大多数情况。总是提供样本图片来帮助我们评估问题的复杂性:D。

0

检查OpenCV中 这里哈尔级联目标检测技术有一些链接....

http://coding-robin.de/2013/07/22/train-your-own-opencv-haar-classifier.html

http://www.technolabsz.com/2011/08/how-to-do-opencv-haar-training.html

对于哈尔级联工作u需要为国家队训练目的哈尔包..

http://kineme.net/files/haar.zip

+0

不幸的是,它所有的都相当过时(重新被限制在旧的hacarcascade格式)。自几年以来,CascadeClassifier/opencv_traincascade可以读取/生成猪和lbp级联。 – berak 2014-10-11 10:27:01

+0

嗯,该工具包是出于上述相同的目的,链接只是为了知道它的实际工作原理。 – Adii 2014-10-11 10:29:11

+0

是的,好的。没有downvote或这样的。只是提醒(因为你的答案将在这里*永远*) – berak 2014-10-11 10:36:20