近期申请驾照时,想着疫情不出门自己拍照PS了一波,结果市政厅大姐用标尺一量发现p的几张照片要不就是头大了,要不就是衣服和背景颜色有问题,好几张照片竟然没一张能用的,无奈只能重来一次。痛定思痛,决定开一个小项目,来自动将纯色背景的单人照输出成符合标准的id照片。
说搞就搞,因为后端比较熟悉Java就决定用Java。(其实图像处理相关的项目用c++写应该会方便很多)那首先要配置好本地用java+opencv的环境了,主要就是下载安装opencv的java包然后配置到intellij上。以下是具体步骤:
- Mac上需先安装命令工具
1 | lua复制代码xcode-select --install |
- 安装Ant,必须安装(之前自己想着用maven跳过了,结果导致最终没有生成需要的java文件夹)
1 | 复制代码brew install ant |
- 接下来需要运行
brew edit opencv
先修改opnecv的默认配置, 将-DBUILD_opencv_java=OFF
改为-DBUILD_opencv_java=ON
,以确保之后生成需要的jar文件。 - 安装opencv,如果之前有安装过但是没有jar文件的话,需要运行
brew reinstall --build-from-source opencv
来重装。
1 | csharp复制代码brew install --build-from-source opencv |
- 安装成功后,在
/usr/local/Cellar/opencv/4.5.3_2/share/java/opencv4
下会有两个需要的文件:
1 | 复制代码libopencv_java453.dylib |
6.在intellij中将上面文件夹路径配置为VM Options
7.在需要使用opencv api之前需要先加入下面代码以加载opencv模块
1 | ini复制代码System.loadLibrary(Core.NATIVE_LIBRARY_NAME); |
常见问题:
- 配置完后运行报错[no opencv_java453 in java.library.path],这种情况是jar文件没有找到,需要确认路径配置正确,并且需要的两个文件在相应路径下
- 配置完成后遇到报错UnsatisfiedLinkError: ‘long org.opencv.imgcodecs.Imgcodecs.imread_1(java.lang.String)’,之中情况是opencv模块没有加载所以无法正确链接到相应的方法。
本文转载自: 掘金