基于最近学习opencv总结一下网上查找的资料和遇到的坑
首先安装opencv按照官方给出的配置在自己的电脑要安装python和cmake
这两个的安装度娘就行一步一步来
如果用需要生成java环境需要安装jdk
我用的zulu jdk 1.8
个人建议上述所有都安装最新版本
终端输入
brew edit opencv
https://github.com/Homebrew/homebrew-core/blob/master/Formula/opencv.rb 这是使用brew安装时执行的命令,我们可以看到它下载了opencv和opencv_contrib两个包
所以,homebrew默认安装opencv_contrib,不需要考虑重新编译opencv+opencv_contrib,这也就是为什么说brew安装是最简单的方法。
查看这些信息安装的是4.5.5
因为要安装opencv_contrib 这个通过brew就可以直接安装,我们需要修改的地方
-DBUILD_opencv_java=OFF 改成 -DBUILD_opencv_java=ON
这个目的是生成对应的jar包
同时将以下信息自己拷进去就行
1.8对应的是jdk的版本 其他的是对应的安装的jdk的位置
-DOPENCV_JAVA_TARGET_VERSION=1.8
-DJAVA_INCLUDE_PATH=/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/include
-DJAVA_AWT_LIBRARY=/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/libawt.dylib
-DJAVA_JVM_LIBRARY=/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/libjvm.dylib
网上查找m1的需要在每个cmake 前加 "arch" ,"-arm64"
找到对应 mkdir "build" do下的信息
这是修改后的
mkdir "build" do
system "arch" ,"-arm64","cmake", "..", *args
inreplace "modules/core/version_string.inc", Superenv.shims_path, ""
system "arch" ,"-arm64","make"
system "arch" ,"-arm64","make", "install"
system "arch" ,"-arm64","make", "clean"
system "arch" ,"-arm64","cmake", "..", "-DBUILD_SHARED_LIBS=OFF", *args
inreplace "modules/core/version_string.inc", Superenv.shims_path, ""
system "arch","-arm64","make"
lib.install Dir["lib/*.a"]
lib.install Dir["3rdparty/**/*.a"]
end
至此opencv的文件配置完毕 保存退出既可
安装前再此确认python3 cmake jdk
如果电脑之前安装过opencv 请先卸载
brew uninstall opencv
如果没装过直接运行
brew install --build-from-source opencv
意思是通过刚才的配置文件进行安装 安装过程等着就行,个人建议把占用cpu的应用关掉
安装完成之后找到对应目录
一般安装完都有显示安装目录
cd /opt/homebrew/Cellar/opencv/4.5.5_2/share/java/opencv4/
进入后可发现生成的对应文件libopencv_java455.dylib* opencv-455.jar
有这两个文件证明安装成功,然后就是开始用了
打开idea创建好自己的项目
配置自己的jdk 注意这里划重点⚠️:项目的jdk一定要和opencv刚才安装用的jdk是一个否则用的时候可能报错版本不对应
找到刚才生成的opencv的jar包添加
添加好后点加号再次选择jar包目录下的另一个文件
点击应用并确认
idea java编辑器版本一定要对应
添加好了这就没问题了
public static void main(String[] args) {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
Mat src = Imgcodecs.imread(文件地址);
new ImageViewer(src, "第一幅图片").imshow();
}
这个时候弹出打开的文件就没问题了
因为是从git上下载文件 安装的时候可能会比较慢,请科学上网
安装如果有问题卸载后重装
不要去下载别人安装好的包,opencv一直更新建议还是自己去安装