opencv - 使用opencv检测棋盘上方的手

标签 opencv computer-vision detection

我正在开发一个 Android 应用程序,用于根据一系列照片分析国际象棋游戏。为了处理图像,我使用 OpenCV。我的问题是如何检测图片上有玩家的手?因为我想过滤这些照片并只分析那些只有棋盘的照片。

到目前为止,我成功地从这样的图像中获得了 Canny 原图

我能得到那个精明

.

但是我不知道接下来我能做什么......

我用来获取 Canny 的代码:

Mat gray, blur, cannyed;
cvtColor(img, gray, CV_BGR2GRAY);
GaussianBlur(gray, blur, Size(7, 7), 0, 0);
Canny(blur, cannyed, 50, 100, 3);

我非常感谢任何关于下一步该做什么以及我可以使用哪些 OpenCV 函数的想法和建议。

最佳答案

你在棋盘上有一个非常好的频谱。一只手伸进去会扰乱黑白方 block 之间规则过渡所建立的频率。尝试移动一个更大的正方形(假设是 4.5 x 4.5 正方形的大小),看看频率会发生什么变化。

如果您将一系列照片拍成电影,另一种方法是分析 Action 。采用连续帧的差异(首先对它们进行低通滤波)来检测运动。及时过滤运动(跨几帧)。然后对这些运动进行阈值处理以获得二值图像。腐 eclipse 二元形状以过滤掉小的移动物体(噪音、国际象棋图形),能够检测棋盘上是否有任何更大的移动形状(例如手)。

关于opencv - 使用opencv检测棋盘上方的手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51283472/

相关文章:

java - Java 中的 OpenCV EAST 文本检测器实现

opencv - SolvePnP工作不稳定并崩溃

java - 什么是最好的开源纯java计算机视觉库?

javascript - 运动跟踪 javascript = html5/canvas 游戏输入/控制

c++ - 将 3D MatND 拆分为 2D Mat opencv 的 vector

c++ - 什么是 cv::setTo 函数

python - 将 Halcon 代码迁移到 OpenCV

matlab - 夜间车辆检测中的感兴趣区域

opencv - 要跟踪的好功能?增强现实无人机 2

用于检测拨出电话号码的 Android 应用程序崩溃