【OpenCV】windows环境下,java OpenCV环境搭建,java 也可以实现opencv的功能了!opencv自由了

news2025/4/15 13:17:06

目录

1. 下载opencv

2. 安装opencv

目录

1. 下载opencv

2. 安装opencv

3. dll文件的导入配置

dll文件的导入: (C++的类库文件),opencv是c++开发的类库,java语言要调用其中的方法,所以依赖了dll文件

3.1 opencv_java460.dll文件拷贝至下面2个目录,任选其一即可。 

3.2 还有一种方式,是在运行java代码的时候,指定依赖的类库地址, -D参数

4. java项目中导入opencv jar类库

4.1  maven方式

4.2 idea中引入外部的jar

5. java代码示例,java + opencv

6. 运行失败的情况

7. opencv的安装包地址,共享


3. 项目中导入相应的包文件

3.1 opencv_java460.dll文件拷贝至下面2个目录,任选其一即可。 

3.2 还有一种方式,是在运行java代码的时候,指定依赖的类库地址, -D参数

4. java项目中导入opencv jar类库

4.1  maven方式

4.2 idea中引入外部的jar

5. java代码示例,java + opencv

6. 运行失败的情况

7. opencv的安装包地址,共享


 【OpenCV】java OpenCV环境搭建!!java 也可以实现opencv的功能了!!

在windows环境下,也可以通过java来实现opencv的功能了 !!

1. 下载opencv

官网文档地址:https://docs.opencv.org/4.6.0/df/d65/tutorial_table_of_content_introduction.html

教程参考:https://www.w3cschool.cn/opencv/

教程参考:https://www.yiibai.com/opencv/opencv_adding_text.html

下载与安装: 下载地址:https://opencv.org/releases/ 

网络原因可能下载慢,下载失败的情况。

我这里准备了一份 opencv的安装文件   opencv-4.6.0-vc14_vc15.exe。见文章底部。

2. 安装opencv

官网下载的opencv exe文件,在本地解压到指定目录下.

双击运行,解压到指定的目录下就可以了。

 关键是java目录下面,就是我们需要依赖的类库文件

opencv-460.jar就是我们要用到的 java  类库

x64 目录下,就是c++编写的dll文件,待会我们也需要用到。x64就是本地机器是64位的

x86 目录下,就是c++编写的dll文件,待会我们也需要用到。x86就是本地机器是32位的

3. dll文件的导入配置

dll文件的导入: (C++的类库文件),opencv是c++开发的类库,java语言要调用其中的方法,所以依赖了dll文件

所以在你本地,需要配置这个dll文件路径。

3.1 opencv_java460.dll文件拷贝至下面2个目录,任选其一即可。 

· 拷贝到jre bin目录下面:

在这里插入图片描述

· 或者拷贝到系统win32目录下面:

在这里插入图片描述

3.2 还有一种方式,是在运行java代码的时候,指定依赖的类库地址, -D参数

这种方式,很少使用,可能我们很多人 都忘记了!!!

-Djava.library.path=‪D:\WorkSpace\projectName\demo\lib\opencv_java460.dll

ps: 3.1和3.2 导入dll文件,只需要选择一种就可以了。

4. java项目中导入opencv jar类库

在你的项目中真正的引入opencv460.jar,这个jar文件。

4.1  maven方式

如果你的项目是maven项目,可以通过pom文件,引用本地的jar文件,但是记得maven build打包的时候,把本地jar文件也打进去。

        <!-- 加载lib目录下的opencv包 -->
        <dependency>
            <groupId>org.opencv</groupId>
            <artifactId>opencv</artifactId>
            <version>4.6.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/lib/opencv-460.jar</systemPath>
        </dependency>

4.2 idea中引入外部的jar

在idea工具中,选择 File -》Project Structure -》Libraries 选择 opencv-460.jar文件

5. java代码示例,java + opencv

import org.opencv.core.*;
  
public class Hello
{
  public static void main( String[] args )
  {
   System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
   Mat m = Mat.eye( 2, 3, CvType.CV_8UC1 );
   System.out.println(m.dump()); 
  }
}

运行结果:

 到这里,能够跑起来,说明你本地的开发环境就搭建好了。可以opencv自由开发了。

6. 运行失败的情况

假如出现下面的报错:

说明 dll文件, opencv_java460.dll 未找到,放置的目录不正确,

可以把opencv_java460.dll 文件拷贝到 windows/sysem32/ 目录下面。

Exception in thread "main" java.lang.UnsatisfiedLinkError: no opencv_java460 in java.library.path
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
	at java.lang.Runtime.loadLibrary0(Runtime.java:871)
	at java.lang.System.loadLibrary(System.java:1122)

7. opencv的安装包地址,共享

链接: https://pan.baidu.com/s/1bMT3_OcqtDkFoEVGnJZh7Q?pwd=eqer 提取码: eqer 复制这段内容后打开百度网盘手机App,操作更方便哦

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

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

相关文章

oracle 使用笔记

1.查看用户信息 查看oracle用户信息&#xff1a;id oracle 2.查看、编辑、复制、创建文件 查看&#xff1a;cat /etc/sysctl.conf 编辑&#xff1a;vi /etc/sysctl.conf 复制&#xff1a; cp /home/oracle/database/response/* /home/oracle/etc/ 创建&#xff1a;mkdir /h…

我的踩坑记录!!!积累中......

bug记录&#xff1a; 解决 nodejs安装后&#xff0c;在安装目录下【nodejs】创建两个文件夹【node_global】及【node_cache】用来配置全局环境变量。 之后&#xff0c;打开cmd命令窗口&#xff0c;输入 npm config set prefix ”D:\Program Files\nodejs\node_global” npm con…

KubeVela篇07:terraform controller实现原理

terraform-controller是一个专门负责terraform一类的组件"安装"的Operator,通过打包成helm,再封装成kubevela的Addon,由kubevela安装到管控集群,为其它terraform provider插件提供模块定义支持。 从前面kubevela安装一个Application的原理我们了解到,当一个如a…

pytest自动化测试指定执行测试用例

1、在控制台执行 打开cmd,进入项目目录 指定执行某个模块 pytest testcases\Logistics\Platform\CarSource\test_CarSourceList.py 指定执行某个目录及其子目录的所有测试文件 pytest testcases\Logistics\Platform\CarSource 指定执行某个模块的某个类的某个测试用例 pyte…

C进阶:文件操作

C语言文件操作 什么是文件 磁盘上的数据是文件。 但是在程序设计中&#xff0c;我们一般谈的文件有两种&#xff1a;程序文件&#xff08;例如.c,.h这一类编译&#xff0c;链接过程中的文件&#xff09;&#xff0c;数据文件。 程序文件 包括源程序文件&#xff08;后缀为.c&…

【Three.js基础入门】:创建你的第一个3D场景

引言&#xff1a; Three.js是一种强大的JavaScript库&#xff0c;用于在Web浏览器中创建交互式的3D图形和动画。无需熟练的图形编程经验&#xff0c;你也可以通过Three.js轻松地构建令人惊叹的3D场景。 本文将带你逐步学习如何入门Three.js&#xff0c;从创建一个简单的3D场景开…

认识spring项目的创建 和 从spring中进行Bean对象的存取

前言 本篇简单介绍如何创建spring项目&#xff0c;如何存储到spring容器中&#xff0c;如何从容器中获取Bean对象&#xff0c;如有错误&#xff0c;请在评论区指正&#xff0c;让我们一起交流&#xff0c;共同进步&#xff01; 文章目录 前言1. 创建spring项目2. 将Bean对象存…

信息与通信工程学科面试准备——通信原理|信息与通信工程方向保研面试题集|BUAA

注意&#xff1a; 以下内容&#xff0c;基本上都是二系通信方向保研复试被提问过的内容。如果是专硕&#xff0c;那么电路分析、电磁场、DSP等方面的问题会更多&#xff0c;这里主要针对通信学硕。以下内容不能保证全覆盖&#xff1a;有的同学被问到什么是范德蒙行列式&#x…

[SQL挖掘机] - SQL挖掘机系列整体规划

这里直接进行相关操作, 在Linux或者Windows系统如何安装MySQL, 可以参考博客平台其他大佬的分享. 还有就是, 这里相当于是从数据库–>数据表–>各种约束–>数据类型–>数据表的增删改等操作, 最后就是主要的数据表的查询操作了, 其他的内容根据自己的学习进程进行…

shell脚本中getopts的使用

在shell中&#xff0c;getopts用于解析命令选项和参数。getopts是Bash shell的内置命令&#xff0c;不支持长选项&#xff0c;仅解析短选项&#xff0c;即一个破折号("-")和一个字母或数字&#xff0c;如-1&#xff0c;-e, -E等。 getopts格式如下&#xff1a;…

ATF(TF-A)之sonarlint静态代码分析实战

ATF(TF-A)/OPTEE之静态代码分析汇总 一、ATF源码下载及分析 对ATF实施soanrlint静态代码扫描之前,先到官方网站下载源码。官方网站位于github,网址 GitHub - ARM-software/arm-trusted-firmware: Read-only mirror of Trusted Firmware-A。 各发布版本及对应的时间节点如下…

算法图解注疏(待续)

目录 算法简介二分查找简单查找更佳的查找方式二分查找的几种模板模板1模板2模板3 运行时间 大O表示法大O表示法指出了最糟情况下的运行时间一些常见的大O运行时间 O(n!)旅行商问题 选择排序内存的工作原理数组和链表选择排序 递归基线条件和递归条件栈递归调用栈 快速排序分而…

Istio Pilot源码学习(二):ServiceController服务发现

本文基于Istio 1.18.0版本进行源码学习 4、服务发现&#xff1a;ServiceController ServiceController是服务发现的核心模块&#xff0c;主要功能是监听底层平台的服务注册中心&#xff0c;将平台服务模型转换成Istio服务模型并缓存&#xff1b;同时根据服务的变化&#xff0c…

MongoDB 的日常使用

一、简介 1、 常见的数据库分类 RDBMS&#xff08;关系型数据库&#xff09;&#xff1a;常见的关系型数据库有 Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL&#xff1b; NoSQL&#xff08;非关系型数据库&#xff09;&#xff1a;常见的非关系型数据库有 …

算法笔记(java)——回溯篇

回溯算法解决问题最有规律性&#xff0c;借用一下卡哥的图&#xff1a; 只要遇到上述问题就可以考虑使用回溯&#xff0c;回溯法的效率并不高&#xff0c;是一种暴力解法&#xff0c;其代码是嵌套在for循环中的递归&#xff0c;用来解决暴力算法解决不了的问题&#xff0c;即…

【机器学习】模型常用评估指标

L0 范数、L1 范数、L2 范数、余弦距离 向量的范数可以简单形象理解为向量的长度&#xff0c;或者向量到零点的距离&#xff0c;亦或是相应两个点之间的距离。因此范数通常会对应一个距离概念。 L0 范数 L0 范数表示向量中非零元素的个数&#xff1a; ∣ ∣ x ∣ ∣ 0 # ( i…

elasticsearch IK分词器

说明&#xff1a;es默认的分词器对中文的识别不是特别好&#xff0c;一段话的分词是一个一个汉字&#xff0c;这显然没有达到想要的结果。 可以安装IK分词器&#xff0c;兼容中文的分词&#xff1b; IK分词器 安装 安装IK分词器&#xff0c;例如elasticsearch的容器名为es&a…

探索Java并发编程利器:LockSupport,一种高效的线程阻塞与唤醒机制

关于作者&#xff1a;CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、人工智能等&#xff0c;希望大家多多支持。 目录 一、导读二、概览三、用法四、原理五、线程等待和唤醒的方法5.1 Lo…

Microsoft Edge 浏览器的Bing Chat

微软公司持续发力&#xff0c;推出的产品 Bing Chat 与 ChatGPT 之间的竞争愈发激烈。如今&#xff0c;微软不仅不断更新 Edge 浏览器&#xff0c;还将 Bing Chat 内置在边栏中&#xff0c;方便用户快速访问。这一举措不禁让人想起&#xff0c;Edge 浏览器如今已经是一款名副其…

Maven项目的两种打包方式-spring-boot-mavne-plugin/maven-jar-plugin

Maven项目的两种打包方式-spring-boot-mavne-plugin/maven-jar-plugin 1. 前言Maven的两种打包方式 2. 流程图3. spring-boor-maven-plugin打包4. maven-jar-plugin/maven-dependency-plugin打包 1. 前言 Maven的两种打包方式 spring-boot-maven-plugin springboot默认打包方…