[英]opencv-python object detection
我是使用Python的opencv的初学者。 我有很多16位灰度图像,并且每次需要在不同图像中检测相同的对象。 尝试在opencv python中进行模板匹配,但需要针对不同的图像采用不同的模板,这可能是不希望的。 任何人都可以建议我使用python中的任何算法来有效地做到这一点。
您的问题太笼统了。 特征匹配是一个非常广阔的领域。 完全使用的算法类型取决于要检测的对象,其环境等。
因此,如果您的对象不会改变图像的大小或角度,请使用模板匹配。
如果图像将改变其尺寸和方向,则可以使用SIFT或SURF。
如果对象具有与背景不同的独特颜色特征,则可以使用hsv方法。
如果您必须根据对象对一组图像进行分类,例如应检测到所有板球拍,则可以训练许多正图像以告诉计算机该对象的外观,而负图像则可以指示该对象的外观,可以使用haar训练来完成。
您可以尝试滑动窗口方法。 如果您的对象在所有样本中都相同
一种方法是寻找已知的颜色,形状和尺寸。
您可以先在图像上执行HSV阈值,然后将图像转换为HSV色彩空间,然后调用
cv2.inRange(source, (minHue, minSat, minVal), (maxHue, maxSat, maxVal))
接下来,您可以使用cv2.findContours
查找图像中满足颜色要求的所有区域。 然后,您可以使用诸如boundingRect
和contourArea
来查找所需对象的特定属性。
您最终将得到的实际上是一条“流水线”,该流水线可以采用框架,并寻找适合您设置的条件的形状。 根据您要执行的操作的复杂性(您没有说要查找的内容),这可能会或可能不会奏效,但是我已经成功地使用了它。
GRIP是一个应用程序,它允许您以可视的方式对事物进行阈值处理,并且如果需要,它还将为您生成Python代码。 我真的不建议按原样使用生成的代码,因为这样会遇到一些问题。 这是GRIP的链接: https : //github.com/WPIRoboticsProjects/GRIP
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.