近期申请驾照时,想着疫情不出门自己拍照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模块没有加载所以无法正确链接到相应的方法。
 
本文转载自: 掘金