最近研究了下图像识别相关的东西,
需要识别身份证及驾驶证。
之前就有预研过opencv, 这次就顺便吧tesseract,ocr加上一起来个整合。
虽然这两个以C为主要使用语言,但是本文主要从java角度来记录及总结.
一.opencv下载安装
1.1 下载安装,
从下面官方提供的地址下载安装,我用的是window版exe安装文件.
官方下载地址https://opencv.org/releases.html
1.2 Doc,
关于使用说明,参考官方doc文档
基本上先看c版的,里面有详细说明及例子
https://docs.opencv.org/3.4.2/ ,这个界面有个搜索功能,比较好用
然后再找下面
java版的对应文档
https://docs.opencv.org/3.4.2/javadoc/index.html
For JAVA 配置 及linux so文件生成
我们关注的java里面如何使用,这个也有一个比较全的入门文档
http://opencv-java-tutorials.readthedocs.io/en/latest/01-installing-opencv-for-java.html
将上文提到的下载的exe解压至本地目录后,
查看目录 \解压目录\opencv\build\java
这里有一个 opencv_xxx.jar 及x86/x64目录,里面有对应版本的dll
Java使用需要的就是这个jar及dll。
so文件编译
当然如果linux下面需要可以参考这个手动build so文件
其中提到的cmake-gui如下安装.
#centos
yum install cmake-gui
#centos下configure如果出错 还需要这个.
yum install gcc-c++
#ubuntu
apt-get install cmake-qt-gui
然后启动cmake-gui,填入opencv源码目录及编译目录后,如下配置
在 Ungrouped Entries
组填入ant的执行路径
在 BUILD
组取消下面的编译选项
BUILD_PERF_TESTS
BUILD_SHARED_LIBRARY
to make the Java bindings dynamic library all-sufficient
BUILD_TESTS
BUILD_opencv_python
在 CMAKE
组, CMAKE_BUILD_TYPE 填入
Debug
(or Release
)
在Java组,配置对于的路径,一般都会自动配置好.
最后点击两次Configure,全部选项都变为白色即配置完成,然后点击生成按钮.
切换至build目录,运行make即可。最后再bin目录生成jar文件,lib目录生成so文件
!这里需要注意gcc的版本,高版本下编译的so在低版本环境可能无法运行,推荐使用低版本的gcc编译。
在eclipse里面使用opencv
自定义用户lib,选择外部jar包(External jars)位置,编辑native library选择外部dll位置,即可.
如果使用idea则指定
VM argument -Djava.library.path=/opencv/build/lib
.
first opencv project for java
配置好后,新建一个project,引入自定义lib
即可开始使用opencv
开始需要先加载opencv lib
然后读取图片,转换为灰度图片保存
String file = "F:\\IMG\\xiaofang.png";
String fileout = "F:\\IMG\\xiaofang_gray.png";
// read the image in gray scale
Mat image = Imgcodecs.imread(file,
Imgcodecs.CV_IMWRITE_PAM_FORMAT_RGB_ALPHA);
Mat grayImage = new Mat();
Imgproc.cvtColor(image, grayImage, Imgproc.COLOR_BGR2GRAY);
Imgcodecs.imwrite(fileout, grayImage);
结果:
JavaFX安装
官方入门代码使用了java Fx界面框架,所以我们也有必要安装下。
用过了发现这个东西还是很不错的,感觉跟android也差不多,也突然找到点当初c# winform和wpf的感觉,哈哈
使用eclipse安装如下 e(fx)clipse 组件
本文基于CC BY-NC-ND 4.0 许可协议发布,作者:野生的喵喵。 固定链接: 【opencv Java基础环境搭建及so编译】 转载请注明
相关文章: