如何从网络摄像头持续捕获影像?
我想通过实验使用物体识别(也许使用Java媒体框架)。
我想创建两个线程:
一个线程:
- 节点1:捕获实时图像
- 节点2:将图像保存为“1.jpg”
- 节点3:等待5秒
- 节点4:重复...
另一个线程:
- 节点1:等待图像被捕获
- 节点2:使用“1.jpg”获取每个像素的颜色
- 节点3:将数据保存在数组中
- 节点4:重复...
Java通常不喜欢访问硬件,因此您需要某种驱动程序,正如goldenmean所说。我在我的笔记本电脑上通过找到一个命令行程序来拍照完成了这个过程。然后就像goldenmean解释的那样;您在takepicture()例程中从java程序运行命令行程序,其余代码运行相同。
除了读取像素值到数组的部分之外,您最好将文件保存为BMP格式,该格式几乎已经是标准格式,然后在其上使用标准的Java图像库。
使用命令行程序会向您的程序添加依赖项并使其不太可移植,但网络摄像头也是如此,对吧?
尝试使用JMyron 如何使用Java使用网络摄像头。我认为使用JMyron是使用Java访问网络摄像头最简单的方法。我尝试在64位处理器上使用它,但是出现了错误。但在32位处理器上它运行得很好。
FMJ可以做到这一点,它使用的支持库LTI-CIVIL也可以。两者都在sourceforge上。
推荐使用FMJ来处理与Java应用程序相关的多媒体。
我相信随着网络摄像头一起提供的应用程序软件,或者您本地的Windows网络摄像头软件可以在打开网络摄像头后(即如果它需要外部电源)在批处理脚本(Windows / DOS脚本)中运行。在批处理脚本中,您可以添加适当的延迟以在一定时间段后进行捕获。并保持循环执行捕获命令。
我想这应该是可能的
-AD
在processing中有一个相当不错的界面,它是一种专为图形设计的pidgin java。它被用于一些图像识别工作,例如那个链接。
根据您需要什么,您可能可以在Java中加载那里使用的视频库,或者如果您只是玩弄它,您可能可以使用processing本身。