JavaCV开发详解之1:调用本机摄像头并预览摄像头图像画面视频(建议使用javaCV最新版本)

2023-05-16

JavaCV免费教程目录:

JavaCV入门教程(免费JavaCV教程)

javacv实战专栏目录(2016年更新至今):

JavaCV实战专栏文章目录(2016年更新至今)

2022年最新JavaCV最新音视频教程目录:

JavaCV音视频教程目录(2022年最新JavaCV教程)


前言

javacv开发包是用于支持java多媒体开发的一套开发包,可以适用于本地多媒体(音视频)调用以及音视频,图片等文件后期操作(图片修改,音视频解码剪辑等等功能),这里只使用最简单的本地摄像头调用来演示一下javacv的基础功能

1、依赖配置说明

依赖配置问题可以参考博主另一篇文章:JavaCV更新到1.5.x版本后的依赖问题说明以及如何精简依赖包大小

如何精简javacv依赖,达到最小依赖包:JavaCV精简依赖包:如何只依赖本地平台所需的最小依赖包

(注意:从其他地方下载的依赖包请积极开心的替换为官方jar包和博主提供jar包;如果使用其他jar包版本而导致出错,不要急着找博主问为啥会报错,先把jar包替换了再试试看)

maven和gradle方式如果想要减小依赖包大小,则需要手动进行排除不需要的平台依赖即可

(1)使用maven添加依赖

  <dependency>
    <groupId>org.bytedeco</groupId>
    <artifactId>javacv-platform</artifactId>
    <version>1.4.4</version>
  </dependency>

(2)使用gradle添加依赖

dependencies {
    compile group: 'org.bytedeco', name: 'javacv-platform', version: '1.4.4'
  }

(3)使用本地jar包方式

最新版实在太大,需要下载全量包的请到官方github.com/bytedeco/javacv下载

2、为什么不需要安装opencv?

从javacv0.8开始,已经不需要本地安装opencv,直接通过引用opencv对应的系统平台的引用包即可。

(比如oepncv-windows-x86_64.jar就是典型的64位windows环境依赖包)

3、获取摄像头视频

最终调用的摄像头实时视频图像界面:

预览本机摄像头视频图像的简单实现(由于之前csdn的注释被屏蔽,重新精简优化了代码):

package cc.eguid.javacv;

import javax.swing.JFrame;

import org.bytedeco.javacv.CanvasFrame;
import org.bytedeco.javacv.OpenCVFrameConverter;
import org.bytedeco.javacv.FrameGrabber.Exception;
import org.bytedeco.javacv.OpenCVFrameGrabber;

/**
 * 调用本地摄像头窗口视频
 * @author eguid  
 * @date 2016年6月13日
 * @since  javacv1.2
 */
public class JavavcCameraTest{
  public static void main(String[] args) throws Exception, InterruptedException{

    OpenCVFrameGrabber grabber = new OpenCVFrameGrabber(0);//新建opencv抓取器,一般的电脑和移动端设备中摄像头默认序号是0,不排除其他情况
    grabber.start();//开始获取摄像头数据

    CanvasFrame canvas = new CanvasFrame("摄像头预览");//新建一个预览窗口
    canvas.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

    //窗口是否关闭
    while(canvas.isDisplayable()){
      /*获取摄像头图像并在窗口中显示,这里Frame frame=grabber.grab()得到是解码后的视频图像*/
      canvas.showImage(grabber.grab());
    }
    grabber.close();//停止抓取
  }
}

是不是很简单,原本很复杂的流媒体操作,javaCV能够帮助我们快速实现。

下一章将会讲解如何把本地摄像头的视频录制成文件以及推送到流媒体服务器:

javaCV开发详解之2:推流器实现和摄像头录制视频功能(支持windows/linux/mac/Android/ios全平台)

如果觉得博主写得还不错,欢迎“关注、收藏、点赞”一键三连!

end


当前JavaCV免费教程目录:

JavaCV免费教程_eguid-CSDN博客


其他JavaCV专栏推荐:

2022年最新JavaCV最新音视频教程目录:

JavaCV音视频教程目录(2022年最新JavaCV教程)

JavaCV入门指南专栏

JavaCV入门指南:序章(看完本章后,不想看原理的小伙伴可直接跳转到《快速上手篇》)

JavaCV入门指南:调用FFmpeg原生API和JavaCV是如何封装了FFmpeg的音视频操作

JavaCV入门指南:调用opencv原生API和JavaCV是如何封装了opencv的图像处理操作

JavaCV入门指南:帧抓取器(FrameGrabber)的原理与应用

JavaCV入门指南:帧录制器/推流器(FrameRecorder)的原理与应用

JavaCV入门指南:帧过滤器(FrameFilter)的原理与应用

JavaCV入门指南:FrameConverter转换工具类及CanvasFrame图像预览工具类

《快速上手篇》(为了区别,单独划分):

JavaCV入门指南之快速上手篇:快速上手视频拉流、推流、录制文件、录屏、截图和编解码复用解复用等常用音视频处理操作

javacv进阶tesserac文字识别系列:

javaCV文字识别之1:基于google的tesserac ocr识别图片中的文字,跨平台支持英文中文简体繁体等各种字符识别

javaCV文字识别之2:视频文字识别和视频提取字幕文字字符

javacv进阶ffmpeg系列:

javacpp-FFmpeg系列之1:视频拉流解码成YUVJ420P,并保存为jpg图片

javacpp-FFmpeg系列之2:通用拉流解码器,支持视频拉流解码并转换为YUV、BGR24或RGB24等图像像素数据

javacpp-FFmpeg系列之3: 图像数据转换(BGR与BufferdImage互转,RGB与BufferdImage互转)

javacpp-FFmpeg系列补充:FFmpeg解决avformat_find_stream_info检索时间过长问题

javacv进阶opencv系列:

javaCV图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体、位置、大小、粗度、翻转、平滑等操作

javaCV图像处理之2:实时视频添加图片水印,实现不同大小图片叠加,图像透明度控制

javacv图像处理3:使用opencv原生方法遍历摄像头设备及调用(方便多摄像头遍历及调用,相比javacv更快的摄像头读取速度和效率,方便读取后的图像处理)

javacv图像处理系列:国内车辆牌照检测识别系统(万份测试准确率99.7%以上)

javacv人脸检测识别:

JavaCV进阶opencv图像处理:摄像头画面人脸检测

JavaCV进阶opencv图像处理:ffmpeg视频图像画面人脸检测

JavaCV进阶opencv图像处理:批量人脸图像分类训练

JavaCV进阶opencv图像处理:摄像头图像人脸识别

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaCV开发详解之1:调用本机摄像头并预览摄像头图像画面视频(建议使用javaCV最新版本) 的相关文章

随机推荐

  • npm错误 gyp错误 vs版本不对 msvs_version不兼容

    npm错误 gyp错误 vs版本不对msvs version 不兼容 windows SDK 报错 执行更新GYP 语句第一种方案第二种方案 执行更新GYP 语句 npm install g node gyp 最新的GYP 好像已经不支持P
  • uniapp实现购物车功能

    uniapp实现购物车功能 周六我看见一个有个公司招聘需要试岗3天 xff0c 并使用uniapp完成购物车 xff0c 直播间 xff0c 地图 xff0c 首页四个功能方能通过 xff0c 于是乎 xff0c 我趁手上没事就打算自己写一
  • vue3 setup 语法糖

    Vue3官方提供了 script setup 语法糖 只需在script标签中添加setup xff0c 组件只需引入不用注册 xff0c 属性和方法也不用返回 xff0c 也不用写setup函数 xff0c 也不用写export defa
  • 5_04_GLib库入门与实践_线程池

    简介 线程池是在多线程编程时经常用到的技术 在进行多线程任务处理时 xff0c 如果线程频繁创建和销毁 xff0c 将会使系统开销变大 xff0c 在这种情况下 xff0c 上一个任务执行完后不销毁之前创建的线程 xff0c 后续任务重用该
  • codeforce#dp专项

    1 https codeforces com problemset problem 467 C 题意 给定一个长度为n的序列 xff0c 找到k个长度为m的子串 xff08 不是子序列 xff09 xff0c 求能得到的每个子串相加后的最大
  • Java MyBatis的介绍及其执行原理

    写在前面 MyBatis学习 今天我们进行MyBatis框架的学习 xff0c 认识MyBatis及其执行原理 xff0c 感谢你的阅读 xff0c 内容若有不当之处 xff0c 希望大家多多指正 xff0c 一起进步 xff01 xff0
  • Linux工作目录切换命令

    规则目录指的是用户在系统中所处的位置 xff0c 简单记录几个关于目录操作的命令 1 pwd命令 pwd命令用于显示当前用户所在的工作目录 root 64 ecs 168546 etc pwd etc 2 cd命令 cd命令用于切换工作路径
  • Pytorch Tensor 维度操作的形象理解 Tensor.unsqueeze() Tensor.squeeze()

    我们认为数组 矩阵 张量都是有形状的 xff0c 假如有一个形状是 2 2 3 的张量 a xff0c 从左到右称为第0维 第1维 第2维 我可以使用 a 1 取出第0维视角下的第1组数据 xff0c 可以使用 a 0 看到第2维视角下的第
  • FastAPI学习-9. Swagger文档输出请求示例example

    前言 可以在 Swagger文档上看到请求示例example xff0c 使用Pydantic schema extra属性来实现 schema extra 使用 Config 和 schema extra 为Pydantic模型声明一个示
  • JS的继承(未完待续。。。)

    1 原型链继承 function Animal name this name 61 name 39 Animal 39 this food 61 39 菜 39 this skill 61 39 吃饭 39 39 睡觉 39 39 打豆豆
  • 实数gcd,大数快速乘与组合数取模

    实数gcd 在计算几何的题目中 xff0c 有时会需要你算两个角度的最大公因数 会有误差 xff0c 具体操作和整数的gcd类似 xff0c 但要注意输入可能会有0 模板如下 xff1a double fgcd double a doubl
  • 易语言网络验证UI界面源码

    网络验证 www kekeyz cn 源码下载地址 xff1a 易语言网络验证登录界面UI界面 e 其它文档类资源 CSDN下载易语言网络验证登录界面UI界面 e更多下载资源 学习资料请访问CSDN下载频道 这里是图片001 https d
  • JustAuth实现GitHub登录

    GitHub创建第三方应用 具体步骤查看博客 xff1a GitHub创建第三方应用 copy以下三个信息 xff1a Client ID Client Secret和Authorization callback URL applicati
  • CentOS 7离线安装MySQL 5.6

    CentOS 7离线安装MySQL 5 6 本文是基于CentOS 7系统环境 xff0c 安装和测试MySQL 5 6 xff1a CentOS 7 3MySQL 5 6 45 1 el7 x86 64 rpm bundle 一 安装前的
  • 一篇万字博文带你入坑爬虫这条不归路 【万字图文】

    最近 xff0c 很多粉丝私信我问 爬虫到底是什么 xff1f 学习爬虫到底该从何下手 xff1f 其实 xff0c 我想说的也是曾经的我身为小白的时候某些大牛对我说过的 很多时候我们都有一颗想要学习新知识的心 xff0c 却总是畏惧于对想
  • 一零四、大数据可视化技术与应用实训(展示大屏幕)

    目录 一 定义 二 技能标准 三 实训安排 四 前台页面展示 五 项目架构 六 static 七 py文件 app py data py data corp py data job py readsplit py 八 index页面 一 定
  • 万字肝完nodejs入门教程,详解入口,建议收藏(更新中)

    nodejs入门教程 1 前言2 入门教程 2 1 命令行运行node js脚本2 2 退出node js程序2 3 如何使用 Node js REPL 2 3 1 使用方式2 3 2 点命令 help editor break save
  • java.sql.SQLNonTransientConnectionException Public Key Retrieval is not allowed

    报错信息 2022 03 18 17 46 43 428 ERROR 20704 eate 1849941462 com alibaba druid pool DruidDataSource create connection SQLExc
  • Java8中Stream详细用法大全

    一 概述 Java 8 是一个非常成功的版本 xff0c 这个版本新增的Stream xff0c 配合同版本出现的Lambda xff0c 给我们操作集合 xff08 Collection xff09 提供了极大的便利 Stream流是JD
  • JavaCV开发详解之1:调用本机摄像头并预览摄像头图像画面视频(建议使用javaCV最新版本)

    JavaCV免费教程目录 xff1a JavaCV入门教程 xff08 免费JavaCV教程 xff09 javacv实战专栏目录 xff08 2016年更新至今 xff09 xff1a JavaCV实战专栏文章目录 xff08 2016年