1
A
回答
2
我不知道这是因为amphetamachine说你的最终目标,但检测的形状可能是使用cvFindContours它给出一个很常见的方法一个二进制图像并返回一组'CvContour'(实际上是一个cvSeq)。通过阈值化图像(cvThreshold)可以非常简单地检索二值图像。查看opencv src目录的示例中的contours.c示例。检查此链接,以及:
此示例代码会给你一个总体思路:
cvThreshold(g_gray, g_gray, g_thresh, 255, CV_THRESH_BINARY);
cvFindContours(g_gray, g_storage, &contours);
cvZero(g_gray);
if(contours){
cvDrawContours(
g_gray,
contours,
cvScalarAll(255),
cvScalarAll(255),
100);
}
cvShowImage("Contours", g_gray);
一旦你有轮廓的编码就可以使用cvMatchShapes内搭2个轮廓并返回这些轮廓之间的相似度度量。
希望这种方法为您提供了一个良好的开端!
2
对于准确的形状检测,您需要使用haar检测或至少K个最近的邻居。哈尔检测可能非常准确,但需要很长时间才能建立。 K最近邻居更容易建立,但并不准确。检查出this youtube video。这家伙正在使用KNN来检测不同的手势。请注意,比较图像基本上是一个黑色的斑点。关于KNN的坏处是需要更多的资源来运行程序,但是使用haar检测,当您使用haartraining.exe创建级联xml文件时,已经完成了主要的处理。
相关问题
- 1. 条形码检测的图像处理
- 2. 正方形检测,图像处理
- 3. 如何检测图像中的形状?
- 4. 图像处理中的边缘检测
- 5. 检测图像中的圆形图案
- 6. Android图像处理和模式检测
- 7. 如何使用python3检测图像中的对象形状?
- 8. 如何使用PHP检测图像中的连续形状?
- 9. 使用Java&BoofCV检测图像文件中的形状
- 10. 形状检测中的图像使用Matlab
- 11. 与图像的帧置换检测物体(图像处理)
- 12. c#检测图像中的矩形
- 13. 检测图像中的红色矩形
- 14. 图像边缘/形状检测在OpenCV中
- 15. OpenCv形状检测
- 16. 形状检测 - TensorFlow
- 17. OpenCV - 检测圆形形状
- 18. 如何检测iOS中图像处理中的对象?
- 19. 图像层和形状之间的碰撞检测
- 20. Android上的OpenCV和JavaCv - 在图像上检测形状
- 21. 如何使用多个图像检测物体的形状?
- 22. 受图像大小影响的EmguCV形状检测
- 23. 形状图像
- 24. java中的图像处理和颜色检测
- 25. 如何在android中使用图像处理从图像中检测整数值?
- 26. 检测一组点中的形状
- 27. 处理中的形状对象,翻译各个形状
- 28. 检测任意形状
- 29. Java - 形状碰撞检测
- 30. python opencv形状检测
是否需要是规模/旋转不变?这是一款游戏吗?还是必须考虑真实的照片? – 2010-04-04 12:39:27
也许这个问题会得到更多的回应,如果你告诉我们确定形状的最终目标是什么,因为找到某物的形状可能意味着许多不同的事物;形式遵循功能。 – amphetamachine 2010-04-04 13:26:50