Open CV 图像处理基础:(一)Open CV 在windows环境初始化和 Java 动态库加载方式介绍

Open CV 在windows环境初始化和 Java 动态库加载方式介绍

目录

  • Open CV 在windows环境初始化和 Java 动态库加载方式介绍
    • OpenCV安装
      • opencv-4.4.0下载
      • 安装
    • 加载`opencv-4.4.0.jar`包
      • jar包引入
      • mavn-init.cmd
      • jar包装载到本地maven仓库
      • pom.xml
      • 加载动态库
    • 加载动态库`opencv_java440.dll`:
      • 方式一:System.loadLibrary
      • 方式二:System.load
    • 验证加载:
    • Open CV 专栏导航

Open CV是一个开源的计算机视觉和机器学习软件库,它提供了一系列的工具和程序库,让用户能够进行复杂的图像处理和计算机视觉任务。在Java中使用OpenCV涉及到环境初始化和动态库加载。以下是一些基本步骤和方法来设置OpenCV环境并在Java中加载相关的动态库。

OpenCV安装

官网
https://opencv.org/releases/page/2/

opencv-4.4.0下载

https://nchc.dl.sourceforge.net/project/opencvlibrary/4.4.0/opencv-4.4.0-vc14_vc15.exe

安装

双击安装选择安装目录等待安装完毕,jar包就在以下目录
D:\Program Files\opencv4.4\opencv\build\java

加载opencv-4.4.0.jar

jar包引入

将OpenCV jar(例如 opencv-xxx.jar)添加到项目的类路径中。
如果你使用的是构建系统(如Maven或Gradle),需要确保适当的依赖项已经配置在你的构建文件中。
在这里插入图片描述

jar包资源目录我改了名称opencv-4.4.0.jar
在这里插入图片描述

mavn-init.cmd

mavn-init.cmd是一个批处理脚本,可以把jar包装载到本地maven仓库

@echo off
chcp 65001
echo ****************************************
echo 安装SDK依赖包到本地maven仓库
echo ****************************************call mvn install:install-file -DgroupId=org -DartifactId=opencv  -Dversion=4.4.0 -Dpackaging=jar -Dfile=opencv-4.4.0.jarpause

jar包装载到本地maven仓库

在这里插入图片描述

pom.xml

maven引入本地仓库的opencv-4.4.0.jar

    <dependencies><dependency><groupId>org</groupId><artifactId>opencv</artifactId><scope>compile</scope><version>4.4.0</version></dependency></dependencies>

加载动态库

在这里插入图片描述

加载动态库opencv_java440.dll

关于动态库加载的讲解可以看我的另一篇文章
Java中加载本地库的方法:System.load与System.loadLibrary

这里我们简单介绍,实际使用自主选择

方式一:System.loadLibrary

添加OpenCV_DIR环境变量,指向OpenCV的安装目录或构建目录中的某个文件夹,通常是build/java或build/bin。
将OpenCV的bin目录(其中包含DLL文件)添加到系统的PATH环境变量中,以便系统可以找到OpenCV的动态链接库。

在Java中加载OpenCV的动态库通常涉及到System.loadLibrary方法。以下是加载OpenCV动态库的步骤:

public class ImageBlur {static {// 加载 OpenCV 的本地库System.loadLibrary(Core.NATIVE_LIBRARY_NAME);}
}

方式二:System.load

调用System.loadLibrary(Core.NATIVE_LIBRARY_NAME)来加载OpenCV的动态库。Core.NATIVE_LIBRARY_NAME会解析为在当前平台上对应的动态库名称,例如,在Windows上通常是opencv_javaxxx,其中xxx是库的版本号。
java

public class ImageBlur {static {// 加载 OpenCV 的本地库System.load("D:/WORK/WORK_PLUS/aiface-plus-dev/runner/target/classes/dll/x64/opencv_java440.dll");}
}

验证加载:

为了验证OpenCV库是否正确加载,你可以尝试调用一些基础的OpenCV函数,如创建一个简单的矩阵,并打印它来确保一切正常。

public static void main(String[] args) {Mat mat = Mat.eye(3, 3, CvType.CV_8UC1);System.out.println("mat = " + mat.dump());
}

在使用IDE(如IntelliJ IDEA或Eclipse)时,通常有助于使用IDE的工具和功能来简化库的添加和管理过程。

以上步骤和方法为在Java环境中初始化OpenCV及加载其动态库提供了基本的指南,具体细节可能根据OpenCV的不同版本、操作系统或项目配置而有所不同。

以上完成基本的opencv环境配置后就可以愉快的使用了

Open CV 专栏导航

  • (一)Open CV 在windows环境初始化和 Java 动态库加载方式介绍
  • (二)Open CV 从基本概念到实践操作
  • (三)使用 Open CV 在 Java 中进行基本的图片缩放操作
  • (四)使用 Open CV 在 Java 中进行基本的图片模糊处理
  • (五)Java 使用 Open CV 的绘图函数
  • (六)在Java中使用 Open CV进行图片翻转和图片旋转

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023一带一路暨金砖国家技能发展与技术创新大赛“网络安全”赛项省选拔赛样题卷①

2023金砖国家职业技能竞赛"网络安全" 赛项省赛选拔赛样题 2023金砖国家职业技能竞赛 省赛选拔赛样题第一阶段&#xff1a;职业素养与理论技能项目1. 职业素养项目2. 网络安全项目3. 安全运营 第二阶段&#xff1a;安全运营项目1. 操作系统安全配置与加固任务一Linux …

深度学习”和“多层神经网络”的区别

在讨论深度学习与多层神经网络之间的差异时&#xff0c;我们必须首先理解它们各自是什么以及它们在计算机科学和人工智能领域的角色。 深度学习是一种机器学习的子集&#xff0c;它使用了人工神经网络的架构。深度学习的核心思想是模拟人脑神经元的工作方式&#xff0c;以建立…

FPGA——时序分析与约束(Quartus II)

FPGA时序分析与约束 FPGA结构基础数据传输模型Quartus II 时序报告Quartus II 中TimeQuest的操作实操 时序分析&#xff1a;通过分析FPGA内部各个存储器之间的数据和时钟传输路径&#xff0c;来分析数据延迟和时钟延迟的关系&#xff0c;保证所有寄存器都可以正确寄存数据。 数…

The Planets:Earth

靶机下载 The Planets: Earth ~ VulnHub 信息收集 # nmap -sn 192.168.1.0/24 -oN live.nmap Starting Nmap 7.94 ( https://nmap.org ) at 2024-01-11 09:20 CST Nmap scan report for 192.168.1.1 Host is up (0.00036s latency). MAC Address: …

使用numpy处理图片——图片拼接

大纲 左右拼接上下拼接 在《使用numpy处理图片——图片切割》一文中&#xff0c;我们介绍了如何使用numpy将一张图片切割成4部分。本文我们将反其道而行之&#xff0c;将4张图片拼接成1张图片。 基本的思路就是先用两张图以左右结构拼接成上部&#xff0c;另外两张图也以左右拼…

org.springframework.web.servlet.HandlerInterceptor

过期 1 配置黑名单 2 启动注册拦截 3 浏览器访问拦截

C#考勤系统数据分析源码

C#考勤系统数据分析源码 源码描述&#xff1a; 针对大部分考勤机采用E语言和ACCESS数据库做系统的缺陷。 做出如下建议&#xff1a; 1.打卡机设置成直接续传数据到SQL Server&#xff0c;不需要开着考勤系统和考勤安装的电脑去维持打卡记录 2.打卡机数据共享&#xff0c;把内部…

软件包安装

1.软件包分类 1.1软件包的分类 源码包二进制包脚本安装包 1.2源码包 1.2.1源码包的样子 源码包可以认为是利用不同的计算机语言而写的包, 我们打开相应的文件也能看到相应的源码 1.2.2源码包的特点 源码包的优点: 开源, 如果有足够的能力, 可以修改源代码可以自由选择…

HackTheBox-Keeper

OpenVPN连接 连接上HackTheBox&#xff01; 同时找到这个靶机&#xff0c;进行join&#xff01;分配的靶机的地址位10.10.11.227&#xff01; 信息收集 nmap -sT --min-rate 10000 -p- 10.10.11.227 开放端口为22和80端口 服务版本和操作系统信息探测&#xff1a; nmap -s…

简单的推箱子游戏实战

目录 项目分析 地图初始化 背景图片 游戏场景图片: 热键控制 按键设置 确定人物位置 实现人物移动(非箱子,目的地) 推箱子控制 游戏结束 最终代码 合法性判断: 项目分析 墙:0,地板:1,箱子目的地:2,小人:3,箱子:4,箱子命中目标:5 地图初始化 背景图片 #include <…

我用 Laf 开发了一个非常好用的密码管理工具

【KeePass 密码管理】是一款简单、安全简洁的账号密码管理工具&#xff0c;服务端使用 Laf 云开发&#xff0c;支持指纹验证、FaceID&#xff0c;N 重安全保障&#xff0c;可以随时随地记录我的账号和密码。 写这个小程序之前&#xff0c;在国内市场找了很多密码存储类的 App …

2024 年 1 月安全更新修补了 58 个漏洞(Android )

谷歌发布了针对 Android 平台 58 个漏洞的补丁&#xff0c;并修复了 Pixel 设备中的 3 个安全漏洞&#xff0c;拉开了 2024 年的序幕。 Android 2024 年 1 月更新的第一部分以 2024 年 1 月 1 日安全补丁级别发布在设备上&#xff0c;解决了框架和系统组件中的 10 个安全漏洞&…