如何将OpenCV Java 与Eclipse结合使用

news2024/11/15 15:32:26

返回目录:OpenCV系列文章目录

上一篇:OpenCV-Java 开发简介

下一篇:

正文:

警告:本教程可以包含过时的信息。

从 2.4.4 版本开始,OpenCV 支持 Java。在本教程中,我将解释如何设置开发环境,以便在 Windows 中使用 OpenCV Java 和 Eclipse,这样您就可以享受垃圾收集的好处,非常可重构(重命名变量、提取方法等)现代语言,使您能够以更少的努力编写代码并减少错误。来吧。

Configuring Eclipse

配置 Eclipse

首先,从下载页面获取 OpenCV 的新版本,并将其解压缩到C:\OpenCV-2.4.6\一个简单的位置,例如 .我使用的是 2.4.6 版,但其他版本的步骤或多或少相同。

现在,我们将 OpenCV 定义为 Eclipse 中的用户库,这样我们就可以在任何项目中重用该配置。启动 Eclipse 并从菜单Window –> Preferences中选择

1-window-preferences.png

在 Java –> Build Path –> User Libraries 下导航,然后单击 New...

2-user-library-new.png

输入新库的名称,例如 OpenCV-2.4.6。

3-library-name.png

现在选择您的新用户库,然后单击 Add External JAR...

4-add-external-jars.png

浏览C:\OpenCV-2.4.6\build\java\并选择opencv-246.jar。添加 jar 后,扩展opencv-246.jar并选择 Native library location,然后按 Edit...。

5-native-library.png

选择外部文件夹...,然后浏览以选择文件夹 C:\OpenCV-2.4.6\build\java\x64。如果您使用的是 32 位系统,则需要选择 x86 文件夹而不是 x64。

6-external-folder.png

您的用户库配置应如下所示:

7-user-library-final.png

在新的 Java 项目上测试配置

现在开始创建一个新的 Java 项目。

7_5-new-java-project.png

在“Java 设置”步骤的“库”选项卡下,选择“添加库...”并选择 OpenCV-2.4.6,然后单击 Finish。

8-add-library.png

9-select-user-lib.png

库应如下所示:

10-new-project-created.png

现在您已经创建并配置了一个新的 Java 项目,是时候测试它了。创建新的 java 文件。为方便起见,这里有一个起始代码:

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

运行代码时,应看到3x3单位矩阵作为输出。

11-the-code.png

就是这样,每当您开始一个新项目时,只需将您定义的 OpenCV 用户库添加到您的项目中,您就可以开始了。享受功能强大、轻松无力的开发环境:)

运行具有 OpenCV 和 MKL 依赖项的 Java 代码

如果您使用MKL库构建了OpenCV,其中包含一些调用使用英特尔MKL的OpenCV函数的Java代码,您可能会收到以下错误(例如在 Ubuntu 上):

Intel MKL FATAL ERROR: Cannot load libmkl_avx2.so or libmkl_def.so.

在 Linux 上解决此问题的一种解决方案是预加载英特尔MKL库(在终端中运行命令或将其添加到您的文件.bashrc$LD_PRELOAD:LD_PRELOAD中)。您的命令行应该与此类似(如果您已经设置了变量,请添加在之前):

export LD_PRELOAD=/opt/intel/mkl/lib/intel64/libmkl_core.so:/opt/intel/mkl/lib/intel64/libmkl_sequential.so

然后,从设置了此环境变量(echo $LD_PRELOAD)的终端运行 Eclipse IDE,错误应该会消失。

参考文献:

1、《Using OpenCV Java with Eclipse》---------Barış Evrim Demiröz

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

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

相关文章

信息系统项目管理师019:存储和数据库(2信息技术发展—2.1信息技术及其发展—2.1.3存储和数据库)

文章目录 2.1.3 存储和数据库1.存储技术2.数据结构模型3.常用数据库类型4.数据仓库 记忆要点总结 2.1.3 存储和数据库 1.存储技术 存储分类根据服务器类型分为:封闭系统的存储和开放系统的存储。封闭系统主要指大型机等服务器。开放系统指基于包括麒麟、欧拉、UNIX…

使用 ONLYOFFICE API 构建 Java 转换器,在 Word 和 PDF 之间进行转换

文章作者:ajun 随着文档处理需求的增加,格式转换成为了一个重要的需求点。由于PDF格式具有跨平台、不易被篡改的特性,将Word格式(.docx)转换为PDF格式(.pdf)的需求尤为强烈。ONLYOFFICE作为一个强大的办公套件,提供了这样的转换功…

Verilog——信号类型

Verilog HDL 的信号类型有很多种,主要包括两种数据类型:线网类型 (net type) 和寄存器类型 ( reg type )。在进行工程设计的过程中也只会使用到这两个类型的信号。 4.1 信号位宽 定义信号类型的同时,必须定义好信号…

【C#语言入门】22. 接口、依赖反转、单元测试

【C#语言入门】22. 接口、依赖反转、单元测试 一、接口与单元测试 接口的产生:自底向上(重构),自顶向下(设计)C#中接口的实现(隐式,显式,多接口)语言对面向…

java的成员变量和局部变量

1、什么是成员变量和局部变量? 2、成员变量和局部变量区别 区别 成员变量 局部变量 类中位置不同 类中方法外 方法内或者方法声明上 内存中位置不同 堆内存 栈内存 生命周期不同 随着对象的存在而存在,随着对象的消失而消失 随着方法的调用而…

【目标检测】YOLOv2 网络结构(darknet-19 作为 backbone)

上一篇文章主要是写了一些 YOLOv1 的原版网络结构,这篇文章一样,目标是还原论文中原版的 YOLOv2 的网络结构,而不是后续各种魔改的版本。 YOLOv2 和 YOLOv1 不一样,开始使用 Darknet-19 来作为 backbone 了。论文中给出了 Darkne…

RK3568平台 多点触摸电容屏

一.input事件 对于所有的input设备,报告input事件时候都分这么几部分,首先在probe函数中设置设备发送的事件类型、按键类型,设置设备一些属性信息。然后在发送事件时候要根据probe的设置来发送事件,否则就会被判为无效忽略掉。  …

冒泡与二分法的爱恨纠葛

冒泡排序与二分法查找 前言一、冒泡排序?二分法查找?二、冒泡排序的原理及使用1.原理2.手写冒泡排序思路及实现代码讲解效果演示/运行结果 三、二分法查找的原理及使用1.原理2.二分法查找思路及实现运行结果 总结 前言 冒泡排序,编程中&…

怎么做好独立站的SEO优化

随着全球贸易的蓬勃发展,越来越多的企业开始关注外贸市场,并将目光投向了外贸网站。然而,在竞争激烈的外贸市场中,如何写出吸引人的文章,以及如何优化网站以在搜索引擎中脱颖而出,成为了外贸独立网站必须面…

基于spring boot的汽车4s店管理系统

摘 要 时代在飞速进步,每个行业都在努力发展现在先进技术,通过这些先进的技术来提高自己的水平和优势,汽车4s店管理系统当然不能排除在外。汽车4s店管理系统是在实际应用和软件工程的开发原理之上,运用java语言以及SpringBoot框架…

【Windows 常用工具系列 15 -- VMWARE ubuntu 安装教程】

文章目录 安装教程镜像下载 工具安装 安装教程 安装教程参考链接:https://blog.csdn.net/Python_0011/article/details/131619864 https://linux.cn/article-15472-1.html 激活码 VMware 激活码连接:https://www.haozhuangji.com/xtjc/180037874.html…

研究人员发现 OpenAI ChatGPT、Google Gemini 的漏洞

自 OpenAI 推出 ChatGPT 以来,生成式 AI 聊天机器人的数量及其在企业中的采用率在一年多时间里呈爆炸式增长,但网络安全专业人士的担忧也随之增加,他们不仅担心威胁组织对新兴技术的使用,还担心大型网络的安全性及模型&#xff08…

开设新量子计算中心!IonQ 全力加速量子商业化

内容来源:量子前哨(ID:Qforepost) 编辑丨慕一 编译/排版丨浪味仙 沛贤 深度好文:1000字丨8分钟阅读 近日,量子计算公司IonQ对外宣布,将在华盛顿开设一家新量子中心。公告里还提出&#xff0c…

【随笔】汇编(寄存器、内存模型、常用指令、语法)

文章目录 一、简介二、寄存器三、内存模型3.1 Heap3.2 Stack 四、指令4.1 示例4.2 语法4.3常用指令 一、简介 汇编语言(英语:assembly language)是任何一种用于电子计算机、微处理器、微控制器,或其他可编程器件的低级语言。在不…

HUAWEI Pocket 2外屏实时查看App动态,小小窗口大便捷

当我们点外卖、等候飞机时,不少人习惯频繁点亮手机查看外卖配送进度、值机时间。 这时候,手机亮屏、解锁、打开对应App查看状态对于我们来说就显得非常繁琐。而华为Pocket 2结合HarmonyOS 4系统的实况窗功能,与常显外屏的搭配使用&#xff0…

PTA黑暗料理

小明最近正开发一个料理手游。游戏中仓库里有一些原材料,每个原材料都不相同。在游戏后台,每个原材料由两个不同整数构成。当烹饪锅有至少N(N≥2)个原材料且其中有N个原材料正好包含N个不同的整数(即这N个整数每个出现…

【Java 数据结构】Map和Set的介绍

目录 1、Map 和 Set 的概念 2、模型 3、Map 的学习 3.1 关于 Map.Entry 3.2 Map 的常用方法 4、Set 的常用方法 5、 Map 和 Set 的注意点 1、Map 和 Set 的概念 Java 提供了 Map 和 Set 的接口,是一种专门用来进行搜索的容器或数据结构,而他搜索…

【Maven篇】解锁 Maven 的智慧:依赖冲突纷争下的版本调停者

缘起 软件开发世界是一个充满无限可能的领域,但同时也伴随着诸多挑战。其中之一,就是依赖冲突的问题。在这篇文章中,我们将揭开 Maven 这位“版本调停者”的神秘面纱,深入探讨如何在版本纠纷的盛宴中解决依赖问题。 Maven&#…

Ansible的介绍、安装与部署

Ansible的介绍、安装与部署 文章目录 Ansible的介绍、安装与部署1. 介绍 Ansible1.1 什么是 Ansible?1.2 Ansible 无需代理1.3 Ansible 方式 2. 安装需求2.1 控制节点2.2 受管主机2.3 基于Windows的受管主机2.4 受管网络设备 3. 管理Ansible配置文件3.1 配置Ansible3.2 配置文…

JAVA后端调用OpenAI接口 实现打字机效果(SSE)

SSE SSE(Server-Sent Events,服务器发送事件)是一种基于HTTP协议的通信技术,它允许服务器持续地将数据推送给客户端,而无需客户端发起请求。这种通信方式通常用于实时性要求较高的场景,如实时更新、通知、或…