java调用摄像头
http://blog.csdn.net/xing_sky/article/details/43482213
原文地址:http://blog.csdn.net/zajin/article/details/9288239
本人菜鸟级人物,由于要搞个人脸识别登录(JAVACV),百度谷歌了一下午,找了网上简单的样例代码来试,可是老是调试不过,出现CaptureDeviceManager.getDevice 为空指针。郁闷了一下午。现在终于搞出来了。特此纪念一下,因为在网上找了大半天,发现这方面的介绍不是很多,因此也希望能为后来的学习者有所帮助,少走些弯路。
功能:实现摄像头调用
步骤:1、到sun下载JMF,并且安装,安装后需重启电脑。下载链接http://www.oracle.com/technetwork/java/javase/download-142937.html

2、创建设置JMF的环境变量,"计算机"->"系统属性"->"高级环境设置"->"高级"->"环境变量"
变量名:"JMFHOME" 变量值:"C:\Program Files\JMF2.1.1e"
变量名:"CLASSPATH" 变量值:";%JMFHOME%\lib\jmf.jar;%JMFHOME%\lib\sound.jar"
如图:

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

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

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();
}
}
java调用摄像头的更多相关文章
- Java调用摄像头截图
使用webcam-capture替换JMF调用摄像头 最近有个需要通过java调用摄像头,并截图的需求,在网上找了下资料,大部分是用一个叫jmf的库,但是jmf已经几百年没有更新,用起来各种问题.后来 ...
- java调用摄像头了
http://www.cnblogs.com/cnweiblog/p/4602207.html
- java javacv调用摄像头并拍照
调用摄像头并拍张照片,我一开始用的java的jmf媒体框架,但这个有很多的局限性不好使并且很有麻烦,兜了一圈发现javacv东西,研究之后这东西简单,方便:废话不多说了来重点. javacv官网:点击 ...
- JAVA中通过JavaCV实现跨平台视频/图像处理-调用摄像头
一.简介 JavaCV使用来自计算机视觉领域(OpenCV, FFmpeg, libdc1394, PGR FlyCapture, OpenKinect, librealsense, CL PS3 E ...
- 【Java】调用摄像头进行拍照并保存【详细】以及处理no jniopencv_core in java.library.path的一种方法
[之前困扰笔者的问题描述] date:2019.12.18 网上教程很多,但是没有看见完整的,所以写一个出来. 调用摄像头需要javaCV的jar包和openCV的jar包,现在已经不需要安装包了 ...
- Android入门(十六)调用摄像头相册
原文链接:http://www.orlion.ga/665/ 一.调用摄像头 创建一个项目ChoosePicDemo,修改activity_main.xml: <LinearLayout xml ...
- Android开发中如何调用摄像头的功能
我们要调用摄像头的拍照功能,显然 第一步必须加入调用摄像头硬件的权限,拍完照后我们要将图片保存在SD卡中,必须加入SD卡读写权限,所以第一步,我们应该在Android清单文件中加入以下代码 & ...
- C# winfrom调用摄像头扫描二维码(完整版)
前段时间看到一篇博客,是这个功能的,参考了那篇博客写了这个功能玩一玩,没有做商业用途.发现他的代码给的有些描述不清晰的,我就自己整理一下发出来记录一下. 参考博客链接:https://www.cnbl ...
- Android 调用摄像头功能【拍照与视频】
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/ma_hoking/article/details/28292973 应用场景: 在Android开发 ...
随机推荐
- PAT天梯赛L2-008 最长对称字符串
题目链接:点击打开链接 对给定的字符串,本题要求你输出最长对称子串的长度.例如,给定"Is PAT&TAP symmetric?",最长对称子串为"s PAT&a ...
- B.Grid with Arrows-The 2019 ICPC China Shaanxi Provincial Programming Contest
BaoBao has just found a grid with $n$ rows and $m$ columns in his left pocket, where the cell in the ...
- python基础 3.0 file 读取文件
一.python 文件访问 1.在python中要访问文件,首先要打开文件,也就是open r: 只读 w: 只写 ,文件已存在则清空,不存在则创建 a:追加 ,写到文件末尾.如果文件存在,则在 ...
- 如何在手机项目中使用rem单位
rem这是个低调的css单位,近一两年开始崭露头角,有许多同学对rem的评价不一,有的在尝试使用,有的在使用过程中遇到坑就弃用了.但是我对rem综合评价是用来做web app它绝对是最合适的人选之一. ...
- python_魔法方法(五):描述符和定制序列
描述符(property的原理) 描述符(descripto),用一句话来解释,描述符就是某种特殊的类的实例指派给另一个类的属性.那么什么是特殊类型的类呢?就是至少要在这个类中定义__get__(). ...
- 备份当前的ubuntu系统生成iso
使用respin,步骤如下: sudo add-apt-repository ppa:sergiomejia666/respin sudo apt-get update sudo apt-get in ...
- 整理一下postgresql的扩展功能postgis和pgrouting的使用
postgis windows的下的安装使用postgresql的bin目录下的stackbuiler Ubuntu14.04下的安装: apt-get install postgresql-9.3- ...
- agc015E - Mr.Aoki Incubator(dp)
题意 题目链接 平面上有$n$个点,每个点都有一个位置$x_i$,和向右的速度$v_i$ 现在要求你对其中的一些点进行染色,当一个点被染色后,在无限距离内与它相遇的点也会被染色 问在可能的$2^n$种 ...
- C# 发Domino邮件 报错误 Password or other security violation for database 的解决方案
错误提示: Password or other security violation for database ******* 问题产生的描述: 之前C#发邮件是好的 加上了附件部分代码之后,出现了这 ...
- iOS核心动画高级技巧之核心动画(三)
iOS核心动画高级技巧之CALayer(一) iOS核心动画高级技巧之图层变换和专用图层(二)iOS核心动画高级技巧之核心动画(三)iOS核心动画高级技巧之性能(四)iOS核心动画高级技巧之动画总结( ...