Macbook M1编译安装Java OpenCV

OpenCV-4.8.0编辑安装

查询编译依赖

brew info opencv
确保所有需要模块都打上了✔,未打✔的需要使用`brew`进行安装

下载OpenCV源码

在此处下载OpenCV源代码,选择Source,点击此处下载opencv_contrib-4.8.0
opecv下载
或者使用如下命令,通过Terminal下载

brew install wget
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.8.0.zip
unzip opencv.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.8.0.zip
unzip opencv_contrib.zip

编译安装

进入下载路径,并创建build文件夹

cd opencv-4.8.0
mkdir build && cd build

建立一个run.sh文件,并输入如下代码,其中BUILD_opencv_java设置为ONOPENCV_EXTRA_MODULES_PATH设置为下载的opencv_contribmodules路径

cmake \
-DCMAKE_SYSTEM_PROCESSOR=arm64 \
-DCMAKE_OSX_ARCHITECTURES=arm64 \
-DWITH_OPENJPEG=OFF \
-DWITH_IPP=OFF \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local/opencv \
-D JAVA_INCLUDE_PATH=$JAVA_HOME/include \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_java=ON \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D INSTALL_C_EXAMPLES=OFF \
-D BUILD_ZLIB=OFF \
-D OPENCV_ENABLE_NONFREE=ON \
-D OPENCV_EXTRA_MODULES_PATH=/Users/guoquanhao/Downloads/opencv_contrib-4.8.0/modules \
-D BUILD_EXAMPLES=ON ..

输入bash run.sh运行该命令,实现cmake
完成之后输入make -j8或者make实现make

make -j8

J之后的数字8表示我们将使用所有8个内核来运行Make命令。您可以根据可用的硬件调整J选项。根据您的硬件,这应该需要6 -12分钟。

最后输入sudo make install进行安装

sudo make install

完成之后会在两个地方出现jar文件和lib文件,一个是build路径

opencv-4.8.0/build/bin/opencv-480.jar
opencv-4.8.0/build/lib/libopencv_java480.dylib

一个是安装路径

/usr/local/opencv/share/java/opencv4/libopencv_java480.dylib
/usr/local/opencv/share/java/opencv4/opencv-480.jar 

测试验证

完成后,利用Idea创建如下示例代码

import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.Scalar;public class Main {public static void main(String[] args) {// TODO Auto-generated method stubSystem.loadLibrary(Core.NATIVE_LIBRARY_NAME);Mat mat = Mat.eye( 3, 3, CvType.CV_8UC1 );System.out.println( "mat = " + mat.dump() );}
}

设置java library path

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

在这里插入图片描述
设置Libraries

启动运行输出如下
在这里插入图片描述

/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home/bin/java -Djava.library.path=/usr/local/opencv/share/java/opencv4 -javaagent:/Applications/IntelliJ IDEA CE.app/Contents/lib/idea_rt.jar=63621:/Applications/IntelliJ IDEA CE.app/Contents/bin -Dfile.encoding=UTF-8 -classpath /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home:/Users/guoquanhao/IdeaProjects/OpenCVTest/out/production/OpenCVTest:/usr/local/opencv/share/java/opencv4/opencv-460.jar Main
mat = [  1,   0,   0;0,   1,   0;0,   0,   1]Process finished with exit code 0

OpenCV-4.6.0编译安装

与4.8.0一样但是有如下两点注意,在编译过程中肯能遇见的报错

  • 4.6.0需要安装ffmpeg@4,参见github和stackoverflow
brew install ffmpeg@4
brew unlink ffmpeg
brew link ffmpeg@4
  • 4.6.0中代码有两处小bug,如果没有修复,自行对比修复,参见知乎、github issue、github pull request

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

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

相关文章

集装箱装卸作业相关的知识-Part1

1.角件 Corner Fitting of Container or called Corner Casting. there are eigth of it of one container. 国家标准|GB/T 1835-2006https://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcnoD35857F2200FA115CAA217A114F5EF12 中国的国标:GB/T 1835-2006《系列1集…

代码随想录算法训练营day51 309.最佳买卖股票时机含冷冻期 714.买卖股票的最佳时机含手续费

题目链接309.最佳买卖股票时机含冷冻期 class Solution {public int maxProfit(int[] prices) {if (prices null || prices.length < 2) {return 0;}int[][] dp new int[prices.length][2];dp[0][0] -prices[0];dp[0][1] 0;dp[1][0] Math.max(dp[0][0], dp[0][1] - pr…

2023最新ChatGPT商业运营版网站源码+支持ChatGPT4.0+GPT联网+支持ai绘画(Midjourney)+支持Mind思维导图生成

本系统使用Nestjs和Vue3框架技术&#xff0c;持续集成AI能力到本系统&#xff01; 支持GPT3模型、GPT4模型Midjourney专业绘画&#xff08;全自定义调参&#xff09;、Midjourney以图生图、Dall-E2绘画Mind思维导图生成应用工作台&#xff08;Prompt&#xff09;AI绘画广场自定…

微服务的各种边界在架构演进中的作用

演进式架构 在微服务设计和实施的过程中&#xff0c;很多人认为&#xff1a;“将单体拆分成多少个微服务&#xff0c;是微服务的设计重点。”可事实真的是这样吗&#xff1f;其实并非如此&#xff01; Martin Fowler 在提出微服务时&#xff0c;他提到了微服务的一个重要特征—…

写论文需要注意的点(持续更新)

引言 写论文投稿的时候遇到很多评审给的好的意见&#xff0c;记录下来&#xff0c;在下次写论文的时候谨记这些点&#xff0c;不再犯错 意见 写文章的时候要引用最新的文献做实验的时候将数据集获取的地址和方式记录下来&#xff0c;在文章中标注出来并不是一定要在所有数据…

iptables-netfilter基础

iptables-netfilter基础 课堂笔记 iptables Firewall&#xff1a;防火墙 隔离工具。区别于建筑防火墙。工作于主机或网络边缘&#xff0c;对于进出本主机或本网络的报文根据事先定义的检查规则作匹配检测&#xff0c;对于能够被规则匹配到的报文作出相应处理的组件&#xff…

HCIA练习2

目录 第一步 启动eNSP&#xff0c;搭建如图所示的拓扑结构 第二步 进行子网的划分 ​第三步 从第二步划分的16个网段中&#xff0c;选择14个网段进行使用 第四步 对路由器各个端口进行IP配置 第五步 对每个路由器的环回接口进行配置 第六步 对路由器进行静态路由配…

mac如何强制刷新chorm浏览器

在 macOS 上&#xff0c;你可以使用以下方法来强制刷新 Chrome 浏览器&#xff1a; 使用快捷键&#xff1a;按住 Shift 键并同时点击浏览器刷新按钮。这会强制浏览器绕过缓存并重新加载当前页面。 使用开发者工具&#xff1a;按下 Option Command I 快捷键&#xff08;或通过…

视觉套件专项活动!与飞桨技术专家一起提升技术实力,更多荣誉奖励等你领取

作为中国最早开源的深度学习框架&#xff0c;飞桨深度践行开源理念&#xff0c;开放拥抱社区&#xff0c;重视生态构建&#xff0c;与开发者和生态伙伴共成长&#xff0c;已成为国内综合竞争力第一的产业级深度学习平台。截至目前&#xff0c;飞桨已凝聚750万名开发者。 在飞桨…

如何在工作中利用Prompt高效使用ChatGPT

导读 AI 不是来替代你的&#xff0c;是来帮助你更好工作。用better prompt使用chatgpt&#xff0c;替换搜索引擎&#xff0c;让你了解如何在工作中利用Prompt高效使用ChatGPT。 01背景 现在 GPT 已经开启了人工智能狂潮&#xff0c;不过是IT圈&#xff0c;还是金融圈。 一开…

C++(MFC)调用Python

环境&#xff1a; phyton版本&#xff1a;3.10 VS版本&#xff1a;VS2017 包含文件头&#xff1a;Python\Python310\include 包含库文件&#xff1a;Python\Python310\libs 程序运行期间&#xff0c;以下函数只需要调用一次即可&#xff0c;重复调用会导致崩溃 void Initial…

rust reborrow - 重借用

两个知识点: 第一:对于不可变借用&T,它的传递属于Copy语意。对于可变借用&mut T它的传递属于Move语意或reborrow。 第二:可变引用在同一个时刻只能拥有一个,但是有一个重借用(reborrow)的方式,可以让借用重新获得可变引用。 下面为reborrow的三种方式 明确写出…

Rust之枚举与模式匹配

枚举类型&#xff0c;简称枚举&#xff0c;允许列举所有可能的值来定义一个类型。 1、定义枚举&#xff1a; 枚举类型&#xff1a;已知所有可能的值&#xff0c;并且所有值的出现是互斥的&#xff0c;即每次只能取一种可能的值&#xff0c;才使用枚举类型。 示例&#xff1a;…

CNNdebug尝试

这算是啥问题&#xff1f;&#xff1f; 接着根据群里大佬提供的指示&#xff0c;将train和validate中的nums_work改成0即可 此处因为数据已经打乱了&#xff0c;所以在这里就不用打乱数据&#xff0c;把shuffle True修改成为False 后面查看指定目录下&#xff0c;竟然没有这个…

python怎么实现tcp和udp连接

目录 什么是tcp连接 什么是udp连接 python怎么实现tcp和udp连接 什么是tcp连接 TCP&#xff08;Transmission Control Protocol&#xff09;连接是一种网络连接&#xff0c;它提供了可靠的、面向连接的数据传输服务。 在TCP连接中&#xff0c;通信的两端&#xff08;客户端和…

信息与通信工程面试准备——专业知识提问

1.无线通信&#xff1a;依靠电磁波在空间传播以传输信息。 2.通信的目的&#xff1a;传输信息。 3.通信系统&#xff1a;将信息从信源发送到一个或多个目的地。 4.本书中通信一般指电信&#xff1a;利用电信号传输信息&#xff08;光通信属于电信&#xff0c;因为光也是一种…

华为数通HCIP-OSPF路由计算

路由协议 作用&#xff1a;用于路由设备学习非直连路由&#xff1b; 动态路由协议&#xff1a;使路由设备自动学习到非直连路由&#xff1b; 分类&#xff1a; 按照算法分类&#xff1a; 1、距离矢量路由协议&#xff1b;&#xff08;RIP、BGP&#xff09; 只交互路由信息…

CTFSHOW web 信息收集

web入门的刷题 web1 教我们多看看源代码 web2 抓包 web3 抓包 web4 robots.txt robots.txt web5 phps源代码泄露 phps 就是php的源代码 用户无法访问 php 只可以通过phps来访问 web6 源代码备份 web7 git web8 svn web9 swp /index.php.swp web10 cookie web11 查域名…

电商-订单模块

电商-订单模块 流程思维图表结构支付中心流程 流程思维图 表结构 支付中心 流程

spring学习笔记二

1、spring的bean的别名和单例模式 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"ht…