求高手,如何调节javacv获取200万摄像头分辨率的分辨率

posts - 16,&
comments - 0,&
trackbacks - 0
&&&&&&&&& 调用摄像头并拍张照片,我一开始用的java的jmf媒体框架,但这个有很多的局限性不好使并且很有麻烦,兜了一圈发现javacv东西,研究之后这东西简单,方便;废话不多说了来重点。
&&&&&&&& & javacv官网:
&&&&&&&&&& 当时查到了的资料http://blog.csdn.net/haoba1987/article/details/8175390这编文章也能实现,但这个比较麻烦我的更简单方便,可以先去看看。
&&&&&&&&&& 这篇说到要文章下载opencv2.4.2配置环境操作的事情、opencv-2.4.8-windows-x86.jar中都打包做好了的,不用去配置环境什么的,也不用去安装。
&&&&&&&&&& 1.从官网下载所需的包
&&&&&&&&&&
&&&&&&&&&& 下载jacaCV-0.7-bin.zip和javacv-0.7cppjars.zip解压
&&&&&&&&&&& 导入jacaCV-0.7-bin.zip中的javacpp.jar,javacv.jar&&&&& (如果导进去这两个jar包还有问题,就根据自己的系统和jdk选择jar包)
&&&&&&&&&&& 导入javacv-0.7cppjars.zip中jar包是根据jdk去选择的
&&&&&&&&&&& 我的window7 64位& jdk是32位的&& 所以选择opencv-2.4.8-windows-x86.jar
&&&&&&&&&&& 包导进去下面的源码就能用了。
&&&&&&&&& & 源码:http://blog.csdn.net/ljsspace/article/details/6702178
&&&&&&&&&&& 源码:jacaCV-0.7-bin.zip当中README.txt
&&&&&&&&&&
&&&&&&&&&&& 具体我还没有深入研究,希望对过路人有帮助。
阅读(...) 评论()求高手! 如何调节javacv获取摄像头的分辨率? - 知乎1被浏览185分享邀请回答暂时还没有回答,开始写第一个回答javacv开发包是用于支持java多媒体开发的一套开发包,可以适用于本地多媒体(音视频)调用以及音视频,图片等文件后期操作(图片修改,音视频解码剪辑等等功能)。
  这些需要引入的包。音视频处理使用ffmpeg,图像处理使用opencv,摄像头抓取使用opencv
1、读取摄像头的图像
public class JavavcCameraTest{
public static void main(String[] args) throws Exception, InterruptedException{
OpenCVFrameGrabber grabber = new OpenCVFrameGrabber(0);
grabber.start();
//开始获取摄像头数据
CanvasFrame canvas = new CanvasFrame("摄像头");//新建一个窗口
canvas.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
canvas.setAlwaysOnTop(true);
while(true){
if(!canvas.isDisplayable()){//窗口是否关闭
grabber.stop();//停止抓取
System.exit(2);//退出
canvas.showImage(grabber.grab());//获取摄像头图像并放到窗口上显示, 这里的Frame frame=grabber.grab(); frame是一帧视频图像
Thread.sleep(200);//<span style="color: #毫秒刷新一次图像
2、截取摄像头都画面并保存下来
public class JavavcCameraTest
static OpenCVFrameConverter.ToIplImage converter = new OpenCVFrameConverter.ToIplImage();
public static void main(String[] args) throws Exception, InterruptedException
OpenCVFrameGrabber grabber = new OpenCVFrameGrabber(0);
grabber.start();
//开始获取摄像头数据
CanvasFrame canvas = new CanvasFrame("摄像头");//新建一个窗口
canvas.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
canvas.setAlwaysOnTop(true);
int ex = 0;
while(true)
if(!canvas.isDisplayable())
{//窗口是否关闭
grabber.stop();//停止抓取
System.exit(2);//退出
canvas.showImage(grabber.grab());//获取摄像头图像并放到窗口上显示, 这里的Frame frame=grabber.grab(); frame是一帧视频图像
opencv_core.Mat mat = converter.convertToMat(grabber.grabFrame());
opencv_imgcodecs.imwrite("d:\\img\\" + ex + ".png", mat);
Thread.sleep(200);//<span style="color: #毫秒刷新一次图像
grabber.grab()和grabber.grabFrame()都可以获得当时摄像头的图像,但都是Frame类型的图像,想要保存需要先调用penCVFrameConverter.ToIplImage的convertToMat转换为mat类型,然后调用opencv_imgcodecs.imwrite()方法进行保存。
&3、截取视频的画面
public abstract class FrameGrabberKit {
public static void main(String[] args) throws Exception {
String inputFilePth = "C:\\Users\\Administrator\\Desktop\\a.mp4";
randomGrabberFFmpegImage(inputFilePth, 5);
public static void randomGrabberFFmpegImage(String filePath, int randomSize)
throws Exception {
FFmpegFrameGrabber ff = FFmpegFrameGrabber.createDefault(filePath);
ff.start();
int ffLength = ff.getLengthInFrames();
List&Integer& randomGrab = random(ffLength, randomSize);
int maxRandomGrab = randomGrab.get(randomGrab.size() - 1);
int i = 0;
while (i & ffLength) {
f = ff.grabImage();
if (randomGrab.contains(i)) {
doExecuteFrame(f, i);
if (i &= maxRandomGrab) {
ff.stop();
public static void doExecuteFrame(Frame f, int index) {
if (null == f || null == f.image) {
OpenCVFrameConverter.ToIplImage converter = new OpenCVFrameConverter.ToIplImage();
String imageMat = "png";
String FileName = "D:\\img";
opencv_core.Mat mat = converter.convertToMat(f);
opencv_imgcodecs.imwrite("d:\\img\\" + index + "sls.png", mat);//存储图像
public static List&Integer& random(int baseNum, int length) {
List&Integer& list = new ArrayList&&(length);
while (list.size() & length) {
Integer next = (int) (Math.random() * baseNum);
if (list.contains(next)) {
list.add(next);
Collections.sort(list);
inputFilePth是视频的路径。这里随机挑了5个画面的图像存储下来。
阅读(...) 评论()javacv能调用远程的摄像头吗
[问题点数:20分]
javacv能调用远程的摄像头吗
[问题点数:20分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
匿名用户不能发表回复!|没有更多推荐了,
不良信息举报
举报内容:
Java通过调用javacv打开摄像头
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!

我要回帖

更多关于 200w像素摄像头分辨率 的文章

 

随机推荐