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开发 ...
随机推荐
- ECharts 上手
一.获取 ECharts 你可以通过以下几种方式获取 ECharts. 从官网下载界面选择你需要的版本下载,根据开发者功能和体积上的需求,我们提供了不同打包的下载,如果你在体积上没有要求,可以直接下载 ...
- ES6扩展运算符...进行的数组删除
今天写了按照React小书写了Reducer,发现基础真是太重要了,所有关于上层建筑的细节都需要回到下层细节中去寻找,而且现在的基础也由ES3变成了ES6了. const ADD_USER = &qu ...
- java中存在垃圾回收机制,但是还会有内存泄漏的问题,原因是
答案是肯定的,但不能拿这一句回答面试官的问题.分析:JAVA是支持垃圾回收机制的,在这样的一个背景下,内存泄露又被称为“无意识的对象保持”.如果一个对象引用被无意识地保留下来,那么垃圾回收器不仅不会处 ...
- 练习二十二:python兵乓求比赛顺序练习,关于连个兵乓球队进行比赛
已知有两支兵乓球队进行比赛,每队各出3人: 甲队有a,b,c三人,乙队有x,y,z三人,已抽签决定比赛名单 问题:有人向队员打听比赛名单.a说他不和X比,c说他不和x,z比,程序找出比赛对手 方法一: ...
- 关闭异常进程bat格式文件
当电脑反应慢可能时某些进程运行导致,可将进程名称添加至bat文件中,形成脚本,快速关闭 操作方法:新建*.txt文件,将进程名以如下方式,添加至文件中,保存并修改文件名称为“*.bat”,window ...
- 自动生成actionbar 所需图片和style
http://jgilfelt.github.io/android-actionbarstylegenerator/
- (转)不看绝对后悔的Linux三剑客之awk实战精讲
原文:http://blog.51cto.com/hujiangtao/1923930 一.Linux三剑客之awk命令精讲 第1章 awk基础入门 1.1 awk简介 awk不仅仅时linux系统中 ...
- JavaScript 系列--JavaScript一些奇淫技巧的实现方法(一)简短的sleep函数,获取时间戳
一.前言 有些东西很好用,但是你未必知道:有些东西你可能用过,但是你未必知道原理.实现一个目的有多种途径,俗话说,条条大路通罗马.发散一下大家的思维以及拓展一下知识面. 二.实现一个简短的sleep函 ...
- jQuery jQuery on()方法
jQuery on()方法是官方推荐的绑定事件的一个方法. $(selector).on(event,childSelector,data,function,map) 由此扩展开来的几个以前常见的方法 ...
- JAVA中数组介绍
一.数组: 数组指一组数据的集合,数组中的每个数据被称作元素. 二.数组定义: 数组类型[] 数组名 = new 数组类型[元素个数或数组长度]: (注意:等号前面的[]里面不能写任何东西) 也可以以 ...