如何将OpenCV Java 与Eclipse结合使用

返回目录: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.hqwc.cn/news/549257.html

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

相关文章

杂记8---多线激光雷达与相机外参标定

背景:本人开源的标定程序,提供大家参考学习 基于棋盘格的多线激光雷达和鱼眼/针孔模型相机外参标定的程序 前言 标定数据,只需要一个棋盘格标定板。把标定板放置lidar 与camera 共视区域,拜拍几个pose进行采集。 基于简谐原则…

2023 PWNHUB 3月赛-【tt】

文章目录 setcbuf泄露栈地址转换scanf栈地址思路exp setcbuf 代码 setvbuf(stdin, 0LL, 2, 0LL); setvbuf(stdout, 0LL, 2, 0LL); setvbuf(stderr, 0LL, 2, 0LL); 是用来设置标准输入、标准输出和标准错误流的缓冲模式的。 setvbuf 函数的原型如下: int setvbuf(…

超越标签的探索:K-means与DBSCAN在数据分析中的新视角

最近在苦恼为我的数据决定分组问题,在查找资料时,恰好看到机器学习中的无监督学习的聚类分析,正好适用于我的问题,但是我之前学机器学习时。正好没有学习无监督部分,因为我认为绝大多数问题都是有标签的监督学习&#…

Linux课程四课---Linux第一个小程序(进度条)

作者前言 🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 ​🎂 作者介绍: 🎂🎂 🎂 🎉🎉&#x1f389…

快速搭建一个一元二次方程flask应用

新建flask_service目录、templates子目录 flask_service —— app.py —— templates —— —— index.html app.py from flask import Flask, request, jsonify, render_template import random import matplotlib.pyplot as plt from io import BytesIO import base64app F…

【全开源】零点城市社交电商系统源码-最新版|博纳软云

零点城市社交电商系统源码——引领未来社交电商新潮流 在当今数字化时代,社交电商已经成为商业领域的一股新势力。零点城市社交电商系统源码,正是这一新潮流的引领者,以其独特的创新理念和强大的技术实力,助力企业快速搭建高效、…

每周编辑精选|微软开源 Orca-Math 高质量数学数据集、清华大学研究团队发布条件去噪扩散模型 SPDiff...

Orca-Math 是微软研究院发布的数学推理模型,该模型展示了较小的专业模型在特定领域的价值,它们可以匹配甚至超越更大模型的性能。微软近期开源了用于训练 Orca-Math 的 Orca-Math-200K 数学单词问题数据集,现已在 hyper.ai 官网提供下载&…

熵权法计算权重

文章目录 1. 多属性决策问题2. 熵(entropy)3. 信息熵4. 熵权法5. 熵权法的实现 基于信息论的熵值法是根据各指标所含信息有序程度的差异性来确定指标权重的客观赋权方法,仅依赖于数据本身的离散程度。 熵用于度量不确定性,指标的离…

机器学习-04-分类算法-04-支持向量机SVM

总结 本系列是机器学习课程的系列课程,主要介绍机器学习中分类算法,本篇为分类算法与SVM算法部分。 本门课程的目标 完成一个特定行业的算法应用全过程: 懂业务会选择合适的算法数据处理算法训练算法调优算法融合 算法评估持续调优工程化…

2、高级语言的语法描述

常用的高级程序设计语言 程序语言的定义 语法 一组规则,用它可以形成和产生合适的程序 词法规则:单词符号的形成规则。 单词符号的形成规则单词符号是语言中具有独立意义的最基本结构 一般包括:常数、标识符、基本字、算符、界符等 描述工具:有限自动机…

LabVIEW飞行器螺旋桨性能测试与数据监控

LabVIEW飞行器螺旋桨性能测试与数据监控 开发LabVIEW的电动飞行器螺旋桨性能测试与数据监控系统,专门针对电动飞行器螺旋桨在运行过程中的性能测试和监控需求。通过采集转速、转矩、拉力和温度等关键参数,系统能够实时监测和分析螺旋桨的状态&#xff0…

git tag标签使用

创建标签 git checkout test git tag -a v1.0.0 -m v1.0.0里程碑版本 git push origin v1.0.0 删除标签 git tag -d v1.0.0 git push origin :refs/tags/v1.0.0远程分支可以直接在页面删除