当前位置: 首页 > news >正文

javacv基础02-调用本机摄像头并预览摄像头图像画面视频

引入架包:

  <dependency><groupId>org.openpnp</groupId><artifactId>opencv</artifactId><version>4.5.5-1</version></dependency><dependency><groupId>org.bytedeco</groupId><artifactId>ffmpeg-platform</artifactId><version>5.0-1.5.7</version></dependency>

调用本地视频头示例

package com.example.javacvstudy;import org.bytedeco.javacv.*;
import org.springframework.boot.test.context.SpringBootTest;
import javax.swing.*;@SpringBootTest
class ReadCanmen {public static void main(String[] args) throws FrameGrabber.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);//退出break;}canvas.showImage(grabber.grab());//获取摄像头图像并放到窗口上显示, 这里的Frame frame=grabber.grab(); frame是一帧视频图像Thread.sleep(200);//50毫秒刷新一次图像}}}

运行效果:
在这里插入图片描述

注意:

1、maven依赖后,会导致整个项目工程打包发布后的体积变得十分巨大
原因是ffmpeg和opencv两个依赖默认会把android,ios,linux,macos,windows以及各自不同cpu芯片下,86/64等所有版本的Jar会全部依赖进来,项目打包后体积剧增500M+
解决方法也比较简单,只需要根据我们生产环境真实平台环境,选取其中1个Jar包就可以了。下面以Linux 64位操作系统为例,maven配置如下:

<!-- javacv依赖 -->
<dependency><groupId>org.bytedeco</groupId><artifactId>javacv</artifactId><version>4.5.5-1</version>
</dependency>
<!-- 引入ffmpeg依赖时单独把linux 64位的ffmpeg依赖引入即可 -->
<dependency><groupId>org.bytedeco.javacpp-presets</groupId><artifactId>ffmpeg</artifactId><version>5.0-1.5.7</version><classifier>linux-x86_64</classifier>
</dependency>
<!-- 引入ffmpeg依赖时单独把linux 64位的opencv依赖引入即可 -->
<dependency><groupId>org.bytedeco.javacpp-presets</groupId><artifactId>opencv</artifactId><version>4.5.5-1</version><classifier>linux-x86_64</classifier>
</dependency>

相关文章:

javacv基础02-调用本机摄像头并预览摄像头图像画面视频

引入架包&#xff1a; <dependency><groupId>org.openpnp</groupId><artifactId>opencv</artifactId><version>4.5.5-1</version></dependency><dependency><groupId>org.bytedeco</groupId><artifactId…...

【Nginx21】Nginx学习:FastCGI模块(三)缓冲区与响应头

Nginx学习&#xff1a;FastCGI模块&#xff08;三&#xff09;缓冲区与响应头 缓存相关的内容占了 FastCGI 模块将近一小半的内容&#xff0c;当然&#xff0c;用过的人可能不多。而今天的内容说实话&#xff0c;我平常也没怎么用过。第一个是缓冲区相关的知识&#xff0c;其实…...

正则表达式(常用字符简单版)

量词 字符类 边界匹配 分组和捕获 特殊字符 字符匹配 普通字符&#xff1a;普通字符按照字面意义进行匹配&#xff0c;例如匹配字母 "a" 将匹配到文本中的 "a" 字符。元字符&#xff1a;元字符具有特殊的含义&#xff0c;例如 \d 匹配任意数字字符&#xf…...

从零开始学习Python爬虫:详细指南

导言&#xff1a; 随着互联网的迅速发展&#xff0c;大量的数据可供我们利用。而Python作为一种简单易学且功能强大的编程语言&#xff0c;被广泛应用于数据分析和处理。学习Python爬虫技术&#xff0c;能够帮助我们从互联网上获取数据&#xff0c;并进行有效地分析和利用。本文…...

分布式计算框架:Spark、Dask、Ray

目录 什么是分布式计算 分布式计算哪家强&#xff1a;Spark、Dask、Ray 2 选择正确的框架 2.1 Spark 2.2 Dask 2.3 Ray 什么是分布式计算 分布式计算是一种计算方法&#xff0c;和集中式计算是相对的。 随着计算技术的发展&#xff0c;有些应用需要非常巨大的计算能力才…...

什么是伪类链(Pseudo-class Chaining)?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ Pseudo-class Chaining⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚…...

每日一题:leetcode 57 插入区间

给你一个 无重叠的 &#xff0c;按照区间起始端点排序的区间列表。 在列表中插入一个新的区间&#xff0c;你需要确保列表中的区间仍然有序且不重叠&#xff08;如果有必要的话&#xff0c;可以合并区间&#xff09;。 示例 1&#xff1a; 输入&#xff1a;intervals [[1,3…...

第五节:实现自己的第一个environment

本专栏是强化学习运用在买卖股票之上的入门学习内容。 主要解决强化学习代码落地和代码实践,不需要学习相关数学原理,直观简单的带领读者入门强化学习炒股。 查看本专栏完整内容,请访问:https://blog.csdn.net/windanchaos/category_12391143.html 本文发布地址:https://b…...

无套路,财务数据分析-多组织损益表分析分享

在报表众多的财务数据分析中&#xff0c;损益表是老板们最关注的报表&#xff0c;特别是当有多组织时&#xff0c;损益表的分析就变得更加重要了。以前受限于数据分析工具&#xff0c;做损益表分析时很难做到多维度灵活分析&#xff0c;但随着BI数据可视化工具的发展&#xff0…...

Java并发编程第6讲——线程池(万字详解)

Java中的线程池是运用场景最多的并发框架&#xff0c;几乎所有需要异步或并发执行任务的程序都可以使用线程池&#xff0c;本篇文章就详细介绍一下。 一、什么是线程池 定义&#xff1a;线程池是一种用于管理和重用线程的技术&#xff08;池化技术&#xff09;&#xff0c;它主…...

AI + Milvus:将时尚应用搭建进行到底

在上一篇文章中&#xff0c;我们学习了如何利用人工智能技术&#xff08;例如开源 AI 向量数据库 Milvus 和 Hugging Face 模型&#xff09;寻找与自己穿搭风格相似的明星。在这篇文章中&#xff0c;我们将进一步介绍如何通过对上篇文章中的项目代码稍作修改&#xff0c;获得更…...

归并排序(Java 实例代码)

目录 归并排序 一、概念及其介绍 二、适用说明 三、过程图示 四、Java 实例代码 MergeSort.java 文件代码&#xff1a; 归并排序 一、概念及其介绍 归并排序&#xff08;Merge sort&#xff09;是建立在归并操作上的一种有效、稳定的排序算法&#xff0c;该算法是采用分…...

【VUE】数字动态变化到目标值-vue-count-to

vue-count-to是一个Vue组件&#xff0c;用于实现数字动画效果。它可以用于显示从一个数字到另一个数字的过渡动画。 插件名&#xff1a;vue-count-to 官方仓库地址&#xff1a;GitHub - PanJiaChen/vue-countTo: Its a vue component that will count to a target number at a…...

Mysql /etc/my.cnf参数详解(二)

#buffer相关 #buffer pool根据实际内存大小调整,标准为物理内存的50% innodb_buffer_pool_size15996M //默认值128M&#xff0c;innodb_buffer_pool_size | 134217728 key_buffer_size 33554432 #根据物理内存大小设置 确保每个instance内的内存2G左右 <5000 1,>5000 &…...

AUTOSAR规范与ECU软件开发(实践篇)6.10AUTOSAR操作系统概念与配置方法介绍(下)

目录 2、 RTA-OS工程创建 3、 AUTOSAR操作系统配置方法 (1) 描述文件导入 (2) Counter配置...

蓝牙 - 经典蓝牙物理信道介绍

物理信道有多种类型。所有蓝牙物理信道的特点都是一组物理层的频率与时间参数相结合&#xff0c;并受到空间因素的限制。对于基本的和经过调整的蓝牙组网(piconet)所用物理信道&#xff0c;跳频用于定期改变频率&#xff0c;以减少干扰影响&#xff0c;同时也是出于监管原因。 …...

性能测试中未做集群时,在登入中已经保存了登入的session,但可能会出现在不同的服务器上显示登入失败

Session未进行集群共享时&#xff0c;则会出现服务器2&#xff0c;未登录...

Python环境下载安装使用

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…...

图像扭曲之波浪扭曲

源码&#xff1a; void wave_sine(cv::Mat& src,cv::Mat& dst,double amplitude,double wavelength) {dst.create(src.rows, src.cols, CV_8UC3);dst.setTo(0);double xAmplitude amplitude;double yAmplitude amplitude;double xWavelength wavelength;double yWa…...

《自动驾驶与机器人中的SLAM技术》之GNSS相关基础知识总结

简介 本篇基于对《自动驾驶与机器人中的SLAM技术》中的GNSS定位相关基础知识进行总结用于备忘 知识点整理 GNSS(全球卫星导航系统)定位原理 GNSS 通过测量自身与地球周围各卫星的距离来确定自身的位置 , 而与卫星的距离主要是通过测量时间间隔来确定的 GNSS与GPS的关系 GPS(…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡&#xff0c;轻快的音乐在耳边持续回荡&#xff0c;小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下&#xff0c;六一来了。 今天是六一儿童节&#xff0c;小蓝老师为了让大家在节…...

深入理解JavaScript设计模式之单例模式

目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式&#xff08;Singleton Pattern&#…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

Android15默认授权浮窗权限

我们经常有那种需求&#xff0c;客户需要定制的apk集成在ROM中&#xff0c;并且默认授予其【显示在其他应用的上层】权限&#xff0c;也就是我们常说的浮窗权限&#xff0c;那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...