我找不到任何令人满意的答案.我想制作一个程序,从池台上方的摄像头获取快照并检测球.我正在使用OpenCV和Java.我的算法现在基本上是:
模糊图像 - >将RGB转换为HSV - >分割成3个平面 - >在H平面上使用Canny() - >使用HoughCircles()方法检测球
这个算法很好地检测球,它只有两个球的问题(绿色和蓝色,因为表的背景是绿色).但我想更进一步:
你知道如何实现任务#1吗?我的想法是使用inRange()函数,但是我必须为每个在指定颜色范围内检测到一个球的球准备一个掩码,并为每个球做这个检测,对吗?感谢您分享您的意见.
@Edit:在这里,我给你一些我的算法如何工作的样本.我改变了一些参数因为我想要检测所有内容,现在它的效果更差,但它仍然可以很好地准确地运行.我会给你三张来自相机的原始图像样本,我检测到的图像(未失真,带有一些滤镜)和带有检测到的球的图像.

