JavaCV是java实现的调用openCV的接口,本身opencv就可以支持Windows,Linux和Mac OS,Javacv可以将OpenCV的功能放到Android系统上调用,处理设备的图形图像和视频等
关于javacv 在Windows、Android系统的配置,可以参考:http://blog.csdn.net/victory06057231/article/details/8026188 这篇文章来做。
在Java的Web服务器上配置JavaCV的环境,没有介绍。
JavaCV的依赖是:
<dependency> <groupId>com.googlecode.javacv</groupId> <artifactId>javacv</artifactId> <version>0.1</version> </dependency>
下载下来有7个jar包,其中带系统和机型后缀的jar包里面都是OpenCV的配置文件,在带linux后缀的jar包中是C编译的.so文件,解压之后就可以看到
javacv-0.1.jar javacv-0.1-macosx-x86_64.jar javacv-0.1-linux-x86_64.jar javacv-0.1-linux-x86.jar javacv-0.1-windows-x86.jar javacv-0.1-windows-x86_64.jar
这个.so文件,要Linux环境配置是要配置到指定目录下面的,开始以为定义环境变量就可以了,但是直到看到javacv-0.1.jar的源码(反编译得来的),才发现所有的配置目录都是写死了的
public class opencv_core { public static final String genericIncludepath = "/opt/local/include/"; public static final String genericLinkpath = "/opt/local/lib/:/opt/local/lib64/:/usr/local/lib/:/usr/local/lib64/"; public static final String windowsIncludepath = "C:/opencv/build/include/"; public static final String windowsx86Linkpath = "C:/opencv/build/x86/vc10/lib/"; public static final String windowsx86Preloadpath = "C:/opencv/build/x86/vc10/bin/;C:/opencv/build/common/tbb/ia32/vc10/"; public static final String windowsx64Linkpath = "C:/opencv/build/x64/vc10/lib/"; public static final String windowsx64Preloadpath = "C:/opencv/build/x64/vc10/bin/;C:/opencv/build/common/tbb/intel64/vc10/"; public static final String androidIncludepath = "../include/"; public static final String androidLinkpath = "../lib/";
@Properties({@com.googlecode.javacpp.annotation.Platform(includepath={"/opt/local/include/"}, linkpath={"/opt/local/lib/:/opt/local/lib64/:/usr/local/lib/:/usr/local/lib64/"}, include={"<opencv2/calib3d/calib3d.hpp>", "opencv_adapters.h"}, link={"opencv_calib3d@.2.4", "opencv_features2d@.2.4", "opencv_flann@.2.4", "opencv_highgui@.2.4", "opencv_imgproc@.2.4", "opencv_core@.2.4"}), @com.googlecode.javacpp.annotation.Platform(value={"windows"}, includepath={"C:/opencv/build/include/"}, link={"opencv_calib3d240", "opencv_features2d240", "opencv_flann240", "opencv_highgui240", "opencv_imgproc240", "opencv_core240"}), @com.googlecode.javacpp.annotation.Platform(value={"windows-x86"}, linkpath={"C:/opencv/build/x86/vc10/lib/"}, preloadpath={"C:/opencv/build/x86/vc10/bin/;C:/opencv/build/common/tbb/ia32/vc10/"}), @com.googlecode.javacpp.annotation.Platform(value={"windows-x86_64"}, linkpath={"C:/opencv/build/x64/vc10/lib/"}, preloadpath={"C:/opencv/build/x64/vc10/bin/;C:/opencv/build/common/tbb/intel64/vc10/"}), @com.googlecode.javacpp.annotation.Platform(value={"android"}, includepath={"../include/"}, linkpath={"../lib/"})}) public class opencv_calib3d {
也就是必须按照源码的配置,javacv才会读OpenCV的动态链接库。
对于我的linux服务器是Linux86_64位的8核机,将javacv-0.1-windows-x86_64.jar的解压的.so文件放到/usr/local/lib64/或者/opt/local/lib64/目录下面就可以了。
如果没有找到配置文件,会在应用服务器的临时文件夹解压文件,解压不成功找不到文件,就抛这个异常
ERROR com.alibaba.citrus.turbine.pipeline.valve.HandleExceptionValve - Failed to process request /auto/imageCompare.do, the root cause was UnsatisfiedLinkError: /home/admin/wtp/.default/temp/javacpp33861831521035698/libjniopencv_core.so: libopencv_core.so.2.4: 无法打开共享对象文件: 没有那个文件或目录
java.lang.UnsatisfiedLinkError: /home/admin/wtp/.default/temp/javacpp33861831521035698/libjniopencv_core.so: libopencv_core.so.2.4: 无法打开共享对象文件: 没有那个文件>
或目录
at java.lang.ClassLoader$NativeLibrary.load(Native Method) ~[na:1.6.0_32]
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1807) ~[na:1.6.0_32]
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1703) ~[na:1.6.0_32]
at java.lang.Runtime.load0(Runtime.java:770) ~[na:1.6.0_32]
at java.lang.System.load(System.java:1003) ~[na:1.6.0_32]
相关推荐
不过,确保所有依赖项(如Python,PaddleOCR,Java等)都在目标平台上正确安装和配置。 在实际应用中,你可能还需要考虑性能优化、错误处理、多线程处理等高级话题。RapidOCR与Java的结合为开发者提供了一个强大且...
3. **Tomcat服务器包**: Apache Tomcat是一款开源的Servlet容器,用于部署和运行Java Web应用程序。GeoServer作为Web应用,需要在这样的容器中运行。Tomcat安装简单,配置灵活,是许多小型到中型企业首选的Java应用...
- 将项目打包成可执行的jar文件,部署到服务器上。 - 使用Postman或其他工具进行API测试,验证OCR功能是否正常工作。 通过以上步骤,我们可以成功地在Java SpringBoot应用中集成PaddleOCR,实现高效、便捷的OCR...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥 Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
- **安装配置 Tomcat**:Tomcat 是一个开源的 Java 应用服务器,用于部署 Java Web 应用。在 Linux 上安装 Tomcat 可以通过下载官方提供的二进制包并解压到指定目录,然后设置环境变量和启动脚本来实现。配置包括...
Resin 是一款高性能、高稳定性的Web服务器/应用服务器,支持多种语言如Java、Ruby等。 #### 数据库 - **H2**: 框架。H2 是一个开源的嵌入式数据库,支持多种模式:内存模式、文件模式及网络服务器模式。 - **SQLite...
### Java基本概念及环境配置 #### 1.1 什么是面向对象程序设计? 面向对象程序设计(Object-Oriented Programming, OOP)是一种编程范式,它基于“对象”的概念来构建程序。对象是现实世界实体的抽象表示,具有...