java 摄像头 win7_JAVA摄像头调用_实例---Win7

本人菜鸟级人物,由于要搞个人脸识别登录(JAVACV),百度谷歌了一下午,找了网上简单的样例代码来试,可是老是调试不过,出现CaptureDeviceManager.getDevice 为空指针。郁闷了一下午。现在终于搞出来了。特此纪念一下,因为在网上找了大半天,发现这方面的介绍不是很多,因此也希望能为后来的学习者有所帮助,少走些弯路。

功能:实现摄像头调用

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

2、创建设置JMF的环境变量,"计算机"->"系统属性"->"高级环境设置"->"高级"->"环境变量"

变量名:"JMFHOME"变量值:"C:\Program Files\JMF2.1.1e"

变量名:"CLASSPATH"变量值:";%JMFHOME%\lib\jmf.jar;%JMFHOME%\lib\sound.jar"

如图:

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

3、打开安装好了的JMF,在C:\Program Files\JMF2.1.1e\bin目录下打开“jmfregistry.exe”,选择“Capture Devices” 然后按左下角“Detect Capture Devices”按钮,多按几次,直到左边栏中出现“ vfw:Microsoft WDM Image Capture (Win32):0” ,则说明JMF已经注册了摄像头,到此就可以关闭了。

如图:

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

4、现在可以用Eclipse编程了。创建一个工程,把下面样例代码复制进去,在该工程点击右键选择Build Path ->Configure Build Path... ->Libraries ->Add External JARs... 然后把安装的JMF里面\lib目录下的几个Jar包导入进来。

如图:

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

5、运行即可。

import java.awt.BorderLayout;

import java.awt.Component;

import javax.media.CaptureDeviceInfo;

import javax.media.Manager;

import javax.media.MediaLocator;

import javax.media.Player;

import javax.media.cdm.CaptureDeviceManager;

import javax.swing.JFrame;

import javax.swing.JPanel;

public class Test extends JFrame{

public static Player player = null;

private CaptureDeviceInfo deviceInfo = null;

private MediaLocator mediaLocator = null;

private Component component = null;

private JPanel vedioPanel = null;

String str1 = "vfw:Logitech USB Video Camera:0"; //获取USB摄像头的字符串

String str2 = "vfw:Microsoft WDM Image Capture (Win32):0"; //获取本地摄像头的字符串

// Creates a new instance of CameraTest

public Test() {

init();

}

public void init(){

deviceInfo = CaptureDeviceManager.getDevice(str2);//根据字符串获取采集设备(摄像头)的引用

// System.out.println(deviceInfo); //显示采集设备(摄像头)的信息

// System.out.println(deviceInfo.getName()); //显示采集设备(摄像头)的设备名称

mediaLocator = deviceInfo.getLocator();//获取采集设备的定位器的引用,需要根据此引用来创建视频播放器

try{

player = Manager.createRealizedPlayer(mediaLocator);// 利用mediaLocator 获取一个player

component = player.getVisualComponent();

if (component != null){

vedioPanel = new JPanel();

vedioPanel.add(component, BorderLayout.NORTH);

this.add(vedioPanel);

this.pack();// 自动分配窗体大小

this.setResizable(false);

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

this.setVisible(true);

player.start();

}

}catch(Exception e){

e.printStackTrace();

}

}

public static void main(String[] args) {

new Test();

}

}

参考:

http://www.voidcn.com/article/p-viwbdldv-kx.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值