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

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 专栏导航

前言

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,它提供了一系列的工具和程序库,让用户能够进行复杂的图像处理和计算机视觉任务。以下是一些 OpenCV 常用的功能:

  • 图像读取和保存:读取和保存图像文件,支持多种图像格式。
  • 图像处理:包括图像缩放、旋转、裁剪、变换、滤波、边缘检测等。
  • 图像增强:亮度调整、对比度调整、直方图均衡化、颜色调整等。
  • 特征检测和描述:例如检测图像中的角点、边缘、特定特征等,提取关键点的描述子。
  • 物体检测和识别:包括人脸检测、目标检测、图像分类等。
  • 目标跟踪:跟踪视频中的目标对象的运动。
  • 视频处理:包括视频读取、保存、剪辑、转码等功能。
  • 光流估计:计算图像中像素的运动信息。
  • 三维重建:从多个图像中重建三维场景。
  • 摄像头和实时视频处理:从摄像头读取实时视频流,进行实时图像处理。
  • 机器学习支持:提供了一些机器学习算法的实现,例如支持向量机、随机森林等。
  • CUDA 加速:使用 NVIDIA 的 CUDA 技术加速图像处理和计算。
    这些只是 OpenCV 提供的一些基本功能,还有更多功能和算法可以在 OpenCV 中使用。

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

在Java中使用OpenCV涉及到环境初始化和动态库加载。
以下是一些基本步骤和方法来设置OpenCV环境并在Java中加载相关的动态库。
这里我们简单介绍,实际使用自主选择

方式一: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进行图片翻转和图片旋转
  • (七)学习 OpenCV 的图像增强和边缘检测功能
http://www.lryc.cn/news/280974.html

相关文章:

  • 云联接:揭开SD-WAN神秘面纱,颠覆你对网络的认知!
  • 拓展操作(四) 使用nginx反向代理jenkins
  • C语言关于指针函数可变参数的使用方法和打印相应数据
  • centos7下升级openssh9.4p1及openssl1.1.1v版本
  • vue+element弹窗内---下拉框定位问题解决(方法之两种)
  • MATLAB二维与三维绘图实验
  • usb个人总结
  • 进阶Docker2:数据卷和挂载目录
  • SHAP:最受欢迎、最有效的可解释人工智能工具包
  • 语境化语言表示模型-ELMO、BERT、GPT、XLnet
  • 和MATLAB相关的设置断点的快捷键
  • 实人认证(人像三要素)API:加强用户身份验证
  • 美易官方:一路火到2024!英伟达还在创造历史
  • 6个免费/商用图片素材网站
  • Java使用IText生产PDF时,中文标点符号出现在行首的问题处理
  • npx和npm有什么区别,包管理器yarn的使用方法,node的版本管理工具nvm使用方法
  • 【网络技术】【Kali Linux】Wireshark嗅探(九)安全HTTP协议(HTTPS协议)
  • POI-tl 知识整理:整理3 -> 动态生成表格
  • chatgpt和文心一言哪个更好用
  • 移动端开发进阶之蓝牙通讯(一)
  • 一个完整的流程表单流转
  • 2024杭州国际智慧城市,人工智能,安防展览会(杭州智博会)
  • 编程笔记 html5cssjs 031 HTML视频
  • SpringBoot外部配置文件
  • 99个Python脚本实用实例
  • HarmonyOS 工程目录介绍
  • 门店管理系统驱动智慧零售升级
  • Iterator迭代器操作集合元素时,不能用集合删除元素
  • Spring Boot是什么-特点介绍
  • 相机成像之图像传感器与ISP【四】