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

OpenCV——Mac系统搭建OpenCV的Java环境

这里写目录标题

  • 一、源码编译安装
    • 1.1、下载源码包
    • 1.2、cmake安装
    • 1.3、java配置
    • 1.4、测试
  • 二、Maven引入
    • 2.1、添加Maven依赖
    • 2.2、加载本地库

一、源码编译安装

1.1、下载源码包

官网下载opencv包:https://opencv.org/releases/

在这里插入图片描述

以4.6.0为例,下载解压后:

cd opencv-4.6.0
mkdir build && cd build

1.2、cmake安装

sudo cmake -D BUILD_opencv_java=ON -D BUILD_SHARED_LIBS=OFF ..
sudo make -j8
sudo make install

1.3、java配置

添加jar包:
在这里插入图片描述

启动程序要配置本地opencv库的地址:

-Djava.library.path=/usr/local/opencv/share/java/opencv4/

如果你这样操作没有效果,代码可以这样写:

static {System.load("/usr/local/opencv/share/java/opencv4/libopencv_java4100.dylib");
}

1.4、测试

import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;public class TestOpenCV {public static void main(String[] args) {// 使用 System.load 来加载具体路径下的库文件System.load("/usr/local/opencv/share/java/opencv4/libopencv_java4100.dylib");System.out.println("Loaded OpenCV version " + Core.VERSION);Mat mat = Mat.eye(3, 3, CvType.CV_8UC1);System.out.printf("mat = %s ", mat.dump());}
}

如果输出了下列信息,则表示成功!

Loaded OpenCV version 4.10.0
mat = [  1,   0,   0;0,   1,   0;0,   0,   1]

二、Maven引入

2.1、添加Maven依赖

OpenCV 官方提供了预编译的 Java 绑定,可以通过 Maven 直接引入。

<dependency><groupId>org.openpnp</groupId><artifactId>opencv</artifactId><version>4.6.0-0</version>  <!-- 4.6.0 版本 -->
</dependency>

2.2、加载本地库

使用 opencv-java 提供的工具类自动加载:

import nu.pattern.OpenCV;
import org.opencv.core.CvType;
import org.opencv.core.Mat;public class HelloOpenCV {static {OpenCV.loadLocally(); // 自动下载并加载本地库}public static void main(String[] args) {Mat m = Mat.zeros(2, 3, CvType.CV_8UC1);System.out.println(m.dump());}
}
[  0,   0,   0;0,   0,   0]
http://www.lqws.cn/news/68185.html

相关文章:

  • 详解鸿蒙仓颉开发语言中的计时器
  • C++面向对象编程:类与对象详解
  • 【AI智能体】Spring AI MCP 从使用到操作实战详解
  • Caliper压力测试
  • 使用new操作符动态分配
  • 有公网ip但外网访问不到怎么办?内网IP端口映射公网连接常见问题和原因
  • JDK21深度解密 Day 11:云原生环境中的JDK21应用
  • JVM——从JIT到AOT:JVM编译器的云原生演进之路
  • 常见算法题目5 -常见的排序算法
  • LabVIEW准分子激光器智能控制系统
  • 【Pytorch学习笔记】模型模块07——hook实现Grad-CAM
  • 数据库系统概论(十四)详细讲解SQL中空值的处理
  • Spring框架学习day6--事务管理
  • 《人性的弱点》能带给我们什么?
  • IoTGateway项目生成Api并通过swagger和Postman调用
  • [免费]微信小程序网上花店系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】
  • 提升嵌入式软件调试效率的核心方
  • 内存管理--《Hello C++ Wrold!》(8)--(C/C++)--深入剖析new和delete的使用和底层实现
  • 【Linux】网络--网络层--IP协议
  • PyTorch——卷积层(3)
  • CppCon 2014 学习:0xBADC0DE
  • CSS之动画(奔跑的熊、两面反转盒子、3D导航栏、旋转木马)
  • 小目标检测:YOLOV7改进之双坐标注意力(DCA)
  • TDengine 高级功能——读缓存
  • 汽车安全体系:FuSa、SOTIF、Cybersecurity 从理论到实战
  • 机器人自动火焰切割H型钢的系统设计与应用
  • 机器人夹爪的选型与ROS通讯——机器人抓取系统基础系列(六)
  • 【Redis】Set 集合
  • 【基于阿里云搭建数据仓库(离线)】IDEA导出Jar包(包括第三方依赖)
  • 微型导轨在手术机器人领域中有哪些关键操作?