javacv基础01-HelloWorld

news2024/10/7 2:22:40

JavaCV是一个针对Java编程语言的开源计算机视觉和机器学习库。它为各种流行的计算机视觉和图像处理库(如OpenCV、FFmpeg等)提供了Java包装,使Java开发人员能够在其Java应用程序中访问这些库的功能,无需编写本地代码。

JavaCV提供了广泛的功能,包括图像和视频处理、对象检测和识别、人脸分析、光学字符识别(OCR)、相机校准、视频流传输等。它特别适用于开发涉及实时图像和视频处理、计算机视觉任务和机器学习实验的应用程序。

JavaCV的一些主要组件和功能包括:

  1. OpenCV包装:JavaCV允许开发人员在Java应用程序中直接使用OpenCV函数。OpenCV是一种流行的计算机视觉库,提供了各种用于图像和视频分析的工具。

  2. FFmpeg包装:JavaCV提供了对FFmpeg的访问,这是一个处理音频和视频数据的强大多媒体框架。这使得开发人员可以处理视频文件、捕获视频流,并执行各种与视频相关的任务。

  3. 深度学习集成:JavaCV支持与Deeplearning4j和TensorFlow等深度学习库集成。这使开发人员能够将神经网络和深度学习模型融入其Java应用程序中。

  4. 相机和视频捕获:JavaCV提供了从摄像头捕获视频流、录制视频文件以及执行图像稳定和运动检测等任务的工具。

  5. 图像处理:开发人员可以使用JavaCV执行各种图像处理任务,包括滤波、边缘检测、颜色处理等。

  6. 对象检测和跟踪:JavaCV包括使用各种算法在图像和视频中检测和跟踪对象的工具。

  7. 人脸检测和识别:该库支持人脸分析任务,如在图像中检测人脸并根据面部特征识别个体。

helloworld 示例:

新建springboot 项目,版本不一定要用我这个版本。参照你们自己的也行。
在这里插入图片描述
在这里插入图片描述
引入架包

 <dependency>
            <groupId>org.openpnp</groupId>
            <artifactId>opencv</artifactId>
            <version>4.5.5-1</version>
        </dependency>

示例:读取图片并打印图片的宽高,opencv python 中imread.

package com.example.javacvstudy;

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class JavacvStudyApplicationTests {


    public static void main(String[] args) {
        // 加载OpenCV库
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        // 读取图片
        String imagePath = "opencv.jpg"; // 替换为您的图片路径
        Mat image = Imgcodecs.imread(imagePath);

        // 检查是否成功读取图片
        if (image.empty()) {
            System.out.println("无法读取图片");
        } else {
            System.out.println("成功读取图片,宽度: " + image.width() + ", 高度: " + image.height());
        }
    }



}

运行上面代码后会报错,无法读取的图片,即使图片就在当前代码运行文件的目录下,上面的图片路径需要改成绝对路径

运行结果:

成功读取图片,宽度: 320, 高度: 480

读取后并显示出来

代码如下:

package com.example.javacvstudy;

import org.junit.jupiter.api.Test;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class JavacvStudyApplicationTests {


    public static void main(String[] args) {
// 加载OpenCV库
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        // 读取图片
        String imagePath = "D:\\ai\\javacv-study\\src\\test\\java\\com\\example\\javacvstudy\\opencv.jpg"; // 替换为您的图片路径
        Mat image = Imgcodecs.imread(imagePath);


        // 检查是否成功读取图片
        if (image.empty()) {
            System.out.println("无法读取图片");
        } else {
            System.out.println("成功读取图片,宽度: " + image.width() + ", 高度: " + image.height());
        }

        // 显示图片
        HighGui.imshow("Image", image); // 显示图像窗口
        HighGui.waitKey(); // 等待按键事件
        HighGui.destroyAllWindows(); // 关闭所有窗口
    }



}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/939534.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot Mybatis 多数据源 MySQL+Oracle

一、背景 在SpringBoot Mybatis 项目中&#xff0c;需要连接 多个数据源&#xff0c;连接多个数据库&#xff0c;需要连接一个MySQL数据库和一个Oracle数据库 二、依赖 pom.xml <dependencies><dependency><groupId>org.springframework.boot</groupId&…

(Deep Learning)准确率和召回率的基础概念

算法模型极大的提升了对各类结果的预测效率。 【算法模型的本质】 算法模型的本质&#xff0c;是基于输入的各类变量因子&#xff0c;通过计算规则&#xff08;模型or公式&#xff09;&#xff0c;得出预测结果。 典型的预测结果比如&#xff1a; 1.&#xff08;通过历史行为…

天地图开发指南

1、 申请天地图key 1.1注册账号 注册地址&#xff1a;https://uums.tianditu.gov.cn/register 1.2 申请开发者 登录后 &#xff0c;申请开发者https://console.tianditu.gov.cn/api/register 1.3 创建应用 点击控制台&#xff0c;创建应用 1.4 天地图key 2、天地图api使用 2.…

如何开发一款飞机聊天app?即时通讯系统

随着航空业的快速发展&#xff0c;飞机旅行已经成为人们生活中常见的一部分。而在飞行期间&#xff0c;人们往往希望能够与其他乘客进行交流&#xff0c;分享旅行经历或者寻找旅途中的伴侣。为了满足这一需求&#xff0c;开发一款专门用于飞机上的聊天应用程序成为了一个有意的…

个人博客系统——SSM框架

项目特点&#xff1a; 1.使用手工加盐算法代替明文&#xff0c;提高用户隐私安全性 2.登录功能的验证使用了拦截器 3.支持分布式 Session存储和缓存都放到了Redis里面 具体实现步骤 1.创建一个SSM项目 ​​​​​​​ 2.准备项目 先删除项目中无用的文件和目录 引入前端…

项目进度管理:项目经理做了无用功,如何解决?

李思是一个职场新人&#xff0c;项目经理分配了一个简单的任务给她&#xff0c;完成一份关于竞品功能的调查报告&#xff0c;以便为公司的产品提供参考。 李思第二天回复称进展顺利&#xff0c;预计两天时间能完成。 然而&#xff0c;当项目经理收到厚厚的调研报告时&#x…

Gitlab创建一个空项目

1. 创建项目 Project slug是访问地址的后缀&#xff0c;跟前边的ProjectUrl拼在一起&#xff0c;就是此项目的首页地址&#xff1b; Visibility Level选择默认私有即可&#xff0c;选择内部或者公开&#xff0c;就会暴露代码。 勾选Readme选项&#xff0c;这样项目内默认会带…

怎么看待目前的游戏市场格局,看好哪儿家公司?

近三十年来&#xff0c;中国游戏砥砺前行经过近四十年的发展&#xff0c;将计算机技术、互动媒体技术、艺术设计、经济系统、商业模式等进行了充分融合应用&#xff0c;作为 “ 第九艺术 ” 已经成为文化产业 的重要支柱&#xff0c;其硬件和软件创新也不断改变着人们的娱乐消费…

小研究 - 多租户Java虚拟机的设计与实现(二)

多租户技术&#xff0c;让一个软件实例同时服务于不同的组织&#xff0c;在云计算环境中被广泛运用&#xff0c;极大的节约了基础设施资源。但是&#xff0c;云计算环境中使用最广的Java语言却没有提供相应的多租户功能。为此&#xff0c;云服务提供商不得不对自己的应用服务器…

arcgis的MapServer服务查询出来的结果geometry坐标点带*的问题

不知道小伙伴使用arcgis server服务做查询的时候&#xff0c;有没有遇到下面的问题 原因是查询结果中出现*字符 这个问题一直困扰了我很久&#xff1a;因为从数据库查询的坐标点是没有问题的。 一开始有同事遇到过&#xff0c;说重新插入下就好了&#xff0c;有时候确实能解决…

Qt-creater 在线安装太慢,换国内源

Qt 在线安装太慢,换国内源 下载安装包 实例使用清华源 如下图先下载安装包exe文件 url: 链接: https://mirrors.tuna.tsinghua.edu.cn/qt/official_releases/online_installers/ 下载安装包到本地目录D:\ Powershell进入本地目录D:\ 使用参数方式换国内清华源 换国内清华源 …

嵌入式AI助力当代商业的发展

数字化转型的业务影响是广泛的&#xff0c;但购买者应寻求嵌入式AI在以下领域具有最大的影响力&#xff1a; 1.业务流程和任务的自动化 当买家搜索购买包含AI的软件时&#xff0c;他们应该研究该解决方案为员工自动执行日常任务的方式。嵌入式AI应该节省员工的时间和精力&#…

Maven之高版本的 lombok 和 tomcat 7 插件冲突问题

高版本的 lombok 和 tomcat 7 插件冲突问题 在开发期间&#xff0c;当我们使用 tomcat7-maven-plugin 来作为运行环境运行我们项目使&#xff0c;如果我们项目中使用了 1.16.20 及以上版本的 lombok 包&#xff0c;项目启动时会报错&#xff1a; for annotations org.apache.…

工业级PDA高精度导航定位

工业级PDA是指能到达防尘、防水、防摔三防等级&#xff0c;并具备实时采集、自动存储、即时显示、即时反馈、自动处理和自动传输等功能的移动智能终端。为满足如农业、铁路、空间、勘测与绘图等复杂环境领域的需要&#xff0c;目前高端工业级PDA普遍具备高精度的导航定位功能&a…

Apple Configurator iphone ipad 设备管控 描述文件使用方法

一、准备 App Store 下载安装 Apple Configurator 二、Apple Configurator 注册组织&#xff0c; -----------这个组织可以是个人&#xff0c;或者其它组织导出-------再导入进来&#xff1a; 三、描述文件配置&#xff1a;“” 根据管控需求进行配置 “” 四、使用 Ap…

Django(7)-项目实战-发布会管理

登录功能 模板页面 sign/templates/index.html <!DOCTYPE html> <html> <head><title>Login Page</title> </head> <body><h1>发布会管理</h1><form action"/login/" method"post"><la…

Flask加amis学校管理系统java学生教务信息jsp源代码Mysql

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 Flask加amis学校管理系统 系统有3权限&#xff1a;学…

lnmp架构-mysql1

1.MySQL数据库编译 make完之后是这样的 mysql 初始化 所有这种默认不在系统环境中的路径里 就这样加 这样就可以直接调用 不用输入路径调用 2.初始化 重置密码 3.mysql主从复制 配置master 配置slave 当master 端中还没有插入数据时 在server2 上配slave 此时master 还没进…

【java基础——interface接口】

JAVA基础 interface接口 文章目录 JAVA基础接口 Interface 接口 Interface 接口是一种特殊的抽象类&#xff0c;它定义了一组抽象方法和常量&#xff0c;并且不包含具体实现。 只允许声明静态常量&#xff1a;必须且默认为 public static final 。声明抽象方法&#xff1a;必…

数据结构1

数据结构是计算机科学中存储和组织数据的一种方式&#xff0c;它定义了数据的表示方式和对数据进行操作的方法&#xff0c;常见的数据结构包括数组、栈、链表、队列、树、图等。 目录 一、常见的数据结构 1.数组 2.栈 3.队列 4.链表 5.树 6.图 一、常见的数据结构 1.数…