当前位置:网站首页 > Java教程 > 正文

opencv java官方教程



从OpenCV 2.4.4开始,OpenCV支持桌面Java开发,使用与Android开发几乎相同的界面。本指南将帮助您使用OpenCV创建您的第一个Java(或Scala)应用程序。我们将使用Apache Ant或Simple Build Tool(SBT)来构建应用程序。

如果要使用Eclipse请参考:使用OpenCV Java与Eclipse。有关本指南的进一步阅读,请参阅Android开发教程简介。

在本指南中,我们将:

  • 获取OpenCV与桌面Java支持
  • 创建一个Ant或SBT项目
  • 在Java或Scala中编写一个简单的OpenCV应用程序

使用相同的过程在OpenCV存储库的文件夹中创建样本,因此如果丢失,请查阅这些文件。

从版本2.4.4开始OpenCV包括桌面Java绑定。

最简单的方法是从OpenCV SourceForge存储库中下载相应的2.4.4或更高版本的软件包。

注意
Windows用户可以 在包中的文件夹中找到Java开发所需的预构建文件对于其他操作系统,需要从源代码构建OpenCV。

获取OpenCV源的另一个选择是克隆OpenCV git存储库。为了使用Java绑定构建OpenCV,您需要安装JDK(Java Development Kit)(我们推荐使用Oracle / Sun JDK 6或7),Apache Ant和Python v2.6或更高版本。

我们来构建OpenCV:

 

生成Makefile或MS Visual Studio *解决方案,或用于在系统中构建可执行文件的任何内容:

 

或者

 
注意
当OpenCV构建为一组 静态 库(-DBUILD_SHARED_LIBS = OFF选项)时,Java绑定动态库是足够的,即不依赖于其他OpenCV库,而是包含所有OpenCV代码。

检查CMake的输出,并确保java是“待构建”模块之一。如果没有,可能你缺少依赖。您应该通过查看CMake输出来查找未找到并安装的任何与Java相关的工具进行故障排除。

OpenCV Java开发教程

注意
如果CMake在您的系统中找不到Java,则在运行JAVA_HOME环境变量之前,使用安装JDK的路径设置JAVA_HOME环境变量。例如:
 

现在开始构建:

 

要么

 

除此之外,还将创建一个包含Java接口()和包含Java绑定和所有OpenCV内容(或分别))的本地动态库的jar 。稍后我们会使用这些文件。

注意
在文件夹中提供了描述的示例OpenCV库。
  • 创建一个文件夹,您将开发此示例应用程序。
  • 在此文件夹中build.xml,使用任何文本编辑器创建具有以下内容的文件:
 
注意
该XML文件可以重用于构建其他Java应用程序。它描述了第3 - 12行中的通用文件夹结构和用于编译和运行应用程序的常用目标。当重用该XML时,不要忘记修改第1行中的项目名称,也是主类的名称(第14行)。OpenCV jar和jni lib的路径预期为第5行中的参数(“$ {ocvJarDir}”和第37行中的“$ {ocvLibDir}”),但为方便起见,您可以对这些路径进行硬编码。有关其构建文件格式的详细说明,请参阅Ant文档
  • 在src文件旁边创建一个文件夹build.xml和一个SimpleSample.java文件。
  • 将以下Java代码放入SimpleSample.java文件中:
 

在控制台中的文件夹中运行以下命令:

 

例如:

 

该命令应启动[重新建立和运行样品。你应该在屏幕上看到这样的东西:

OpenCV Java开发教程

现在我们将使用SBT创建一个简单的Java应用程序。这是对不熟悉此构建工具的人的简要介绍。我们正在使用SBT,因为它特别容易和强大。

首先,使用其网站上的说明下载并安装SBT。

接下来,导航到您想要应用程序来源的新目录(外部opencv目录)。让我们称之为“JavaSample”并创建一个目录:

 

现在我们将创建必要的文件夹和一个SBT项目:

 

现在在您最喜欢的编辑器中打开并粘贴以下内容。它定义了您的项目:

 

现在编辑并粘贴以下内容。这将启用Eclipse项目的自动生成:

 

现在运行sbt从根和从SBT运行eclipse生成一个eclipse项目:

 

你应该看到这样的东西:

OpenCV Java开发教程

您现在可以使用导入... - >现有项目将SBT项目导入到Eclipse中。无论您是否实际执行此操作都是可选的指南; 我们将使用SBT来构建项目,所以如果你选择使用Eclipse,它将作为一个文本编辑器。

为了测试一切正常,创建一个简单的“Hello OpenCV”应用程序。通过创建src/main/java/HelloOpenCV.java具有以下内容的文件来执行此操作:

 

现在从sbt控制台执行运行,或者更简洁地,从命令行运行sbt run:

 

你应该看到这样的东西:

OpenCV Java开发教程

现在我们将使用OpenCV创建一个简单的面部检测应用程序。

首先,创建一个lib/文件夹并将OpenCV jar复制到其中。默认情况下,SBT将lib文件夹中的jar添加到Java库搜索路径。您可以选择重新运行sbt eclipse来更新Eclipse项目。

 

接下来,创建目录并将此Lena图像下载到其中:

OpenCV Java开发教程

确保它被调用"lena.png"。资源目录中的项目在运行时可用于Java应用程序。

接下来,lbpcascade_frontalface.xml从目录复制opencv/data/lbpcascades/到resources

 

现在修改src / main / java / HelloOpenCV.java,因此它包含以下Java代码:

 

请注意对System.loadLibrary(Core.NATIVE_LIBRARY_NAME)的调用。必须在使用任何本机OpenCV方法之前,每个Java进程必须执行一次此命令。如果您不打电话,您将收到UnsatisfiedLink错误。如果您尝试在已经加载OpenCV时加载OpenCV,您还会收到错误。

现在使用`sbt run`运行面部检测应用程序:

 

你应该看到这样的东西:

OpenCV Java开发教程

它也应该写下面的图像到:

OpenCV Java开发教程

你完成了!现在,您有一个使用OpenCV的示例Java应用程序,因此您可以自己开始工作。祝你好运!

  • 上一篇: java 布局教程
  • 下一篇: java乱码过滤教程
  • 版权声明


    相关文章:

  • java 布局教程2024-11-27 19:42:06
  • java图形使用教程2024-11-27 19:42:06
  • java实用案例教程2024-11-27 19:42:06
  • Java的数组菜鸟教程2024-11-27 19:42:06
  • java教程壁虎2024-11-27 19:42:06
  • java乱码过滤教程2024-11-27 19:42:06
  • java开创造教程2024-11-27 19:42:06
  • java全套自学教程2024-11-27 19:42:06
  • 入门java视频教程2024-11-27 19:42:06
  • idea开发java教程视频2024-11-27 19:42:06