java - 使用通用网络摄像头进行对象检测

标签 java c++ object opencv detection

这是我想用尽可能少的努力解决的任务(最好使用 QT 和 C++ 或 Java):我想使用网络摄像头视频输入来检测前面是否有一个(或更多) crate 相机镜头与否。当摄像头将其视频信号馈送到我的应用程序时,场景可以从“清晰”变为“镜头前有一个 crate ”并返回。对于原型(prototype)测试/学习,我有 2-3 张“空”场景的图像,以及 2-3 张带有一个或多个 crate 的图像。

你知道如何处理这个任务吗?我找到了 OpenCV,但是这个框架对于这个简单的任务来说是不是太笨重了?我是计算机视觉领域的新手。这通常是一项艰巨的任务,还是检测实时馈送中的摄像头前面是否有障碍物是否简单而可靠?非常感谢您的专家意见!

最佳答案

这是我听说过的一种方法,可能会取得一些成功:

  • 对图像执行边缘检测以将其转换为黑白图像,其中边缘显示为黑色像素。
  • 现在创建一个直方图来记录图像中每个垂直像素列中黑色像素的出现频率。这里的理论是,一个桶内或周围的直方图中的高频值表示垂直边缘,这可能是 crate 的边缘。

您还可以考虑使用第二个直方图来测量图像每一行的像素。

显然这是一种相当简单的方法并且高度依赖于“简单”输入;即具有“硬”边缘的普通盒子与空白背景(最好是与盒子形成鲜明对比的背景)。

关于java - 使用通用网络摄像头进行对象检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5252872/

相关文章:

使用对象的链表的 Java toString 打印错误

java - Scala 和 Kotlin 的手动 JAR 编译

JavaScript-显示整个对象和特定键及其值

java - 在调用 EJB 方法时中断客户端线程的正确方法是什么?

java - 如何保存java程序的状态并在以后调用它?

c++ - 简单加密不起作用

c++ - C++ 中的 golang 样式 "defer"

c++ - 纠正模板类的问题

javascript - 更改对象的键值而不丢弃其余键

C语言——从目标文件中调用函数