diff --git a/doc/tutorials/introduction/desktop_java/java_dev_intro.rst b/doc/tutorials/introduction/desktop_java/java_dev_intro.rst
index 7e071d85f..17aeca13f 100644
--- a/doc/tutorials/introduction/desktop_java/java_dev_intro.rst
+++ b/doc/tutorials/introduction/desktop_java/java_dev_intro.rst
@@ -52,26 +52,26 @@ Build
Let's build OpenCV:
- .. code-block:: bash
+.. code-block:: bash
- git clone git://github.com/Itseez/opencv.git
- cd opencv
- git checkout 2.4
- mkdir build
- cd build
+ git clone git://github.com/Itseez/opencv.git
+ cd opencv
+ git checkout 2.4
+ mkdir build
+ cd build
Generate a Makefile or a MS Visual Studio* solution, or whatever you use for
building executables in your system:
- .. code-block:: bash
+.. code-block:: bash
- cmake -DBUILD_SHARED_LIBS=OFF ..
+ cmake -DBUILD_SHARED_LIBS=OFF ..
or
- .. code-block:: bat
+.. code-block:: bat
- cmake -DBUILD_SHARED_LIBS=OFF -G "Visual Studio 10" ..
+ cmake -DBUILD_SHARED_LIBS=OFF -G "Visual Studio 10" ..
.. note:: When OpenCV is built as a set of **static** libraries (``-DBUILD_SHARED_LIBS=OFF`` option)
the Java bindings dynamic library is all-sufficient,
@@ -81,9 +81,9 @@ Examine the output of CMake and ensure ``java`` is one of the modules "To be bui
If not, it's likely you're missing a dependency. You should troubleshoot by looking
through the CMake output for any Java-related tools that aren't found and installing them.
- .. image:: images/cmake_output.png
- :alt: CMake output
- :align: center
+.. image:: images/cmake_output.png
+ :alt: CMake output
+ :align: center
.. note:: If ``CMake`` can't find Java in your system set the ``JAVA_HOME``
environment variable with the path to installed JDK
@@ -97,15 +97,15 @@ through the CMake output for any Java-related tools that aren't found and instal
Now start the build:
- .. code-block:: bash
+.. code-block:: bash
- make -j8
+ make -j8
or
- .. code-block:: bat
+.. code-block:: bat
- msbuild /m OpenCV.sln /t:Build /p:Configuration=Release /v:m
+ msbuild /m OpenCV.sln /t:Build /p:Configuration=Release /v:m
Besides all this will create a ``jar`` containing the Java interface (:file:`bin/opencv-244.jar`)
and a native dynamic library containing Java bindings and all the OpenCV stuff
@@ -122,8 +122,8 @@ Java sample with Ant
* In this folder create the :file:`build.xml` file with the following content using any text editor:
- .. code-block:: xml
- :linenos:
+ .. code-block:: xml
+ :linenos:
@@ -175,18 +175,18 @@ Java sample with Ant
- .. note::
- This XML file can be reused for building other Java applications.
- It describes a common folder structure in the lines 3 - 12 and common targets
- for compiling and running the application.
+ .. note::
+ This XML file can be reused for building other Java applications.
+ It describes a common folder structure in the lines 3 - 12 and common targets
+ for compiling and running the application.
- When reusing this XML don't forget to modify the project name in the line 1,
- that is also the name of the `main` class (line 14).
- The paths to OpenCV `jar` and `jni lib` are expected as parameters
- (``"${ocvJarDir}"`` in line 5 and ``"${ocvLibDir}"`` in line 37), but
- you can hardcode these paths for your convenience.
- See `Ant documentation `_ for detailed description
- of its build file format.
+ When reusing this XML don't forget to modify the project name in the line 1,
+ that is also the name of the `main` class (line 14).
+ The paths to OpenCV `jar` and `jni lib` are expected as parameters
+ (``"${ocvJarDir}"`` in line 5 and ``"${ocvLibDir}"`` in line 37), but
+ you can hardcode these paths for your convenience.
+ See `Ant documentation `_ for detailed description
+ of its build file format.
* Create an :file:`src` folder next to the :file:`build.xml` file and a :file:`SimpleSample.java` file in it.
@@ -336,66 +336,66 @@ First, download and install `SBT `_ using the instruc
Next, navigate to a new directory where you'd like the application source to live (outside :file:`opencv` dir).
Let's call it "JavaSample" and create a directory for it:
- .. code-block:: bash
+.. code-block:: bash
- cd
- mkdir JavaSample
+ cd
+ mkdir JavaSample
Now we will create the necessary folders and an SBT project:
- .. code-block:: bash
+.. code-block:: bash
- cd JavaSample
- mkdir -p src/main/java # This is where SBT expects to find Java sources
- mkdir project # This is where the build definitions live
+ cd JavaSample
+ mkdir -p src/main/java # This is where SBT expects to find Java sources
+ mkdir project # This is where the build definitions live
Now open :file:`project/build.scala` in your favorite editor and paste the following.
It defines your project:
- .. code-block:: scala
+.. code-block:: scala
- import sbt._
- import Keys._
+ import sbt._
+ import Keys._
- object JavaSampleBuild extends Build {
- def scalaSettings = Seq(
- scalaVersion := "2.10.0",
- scalacOptions ++= Seq(
- "-optimize",
- "-unchecked",
- "-deprecation"
- )
- )
+ object JavaSampleBuild extends Build {
+ def scalaSettings = Seq(
+ scalaVersion := "2.10.0",
+ scalacOptions ++= Seq(
+ "-optimize",
+ "-unchecked",
+ "-deprecation"
+ )
+ )
- def buildSettings =
- Project.defaultSettings ++
- scalaSettings
+ def buildSettings =
+ Project.defaultSettings ++
+ scalaSettings
- lazy val root = {
- val settings = buildSettings ++ Seq(name := "JavaSample")
- Project(id = "JavaSample", base = file("."), settings = settings)
- }
- }
+ lazy val root = {
+ val settings = buildSettings ++ Seq(name := "JavaSample")
+ Project(id = "JavaSample", base = file("."), settings = settings)
+ }
+ }
Now edit :file:`project/plugins.sbt` and paste the following.
This will enable auto-generation of an Eclipse project:
- .. code-block:: scala
+.. code-block:: scala
- addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.1.0")
+ addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.1.0")
Now run ``sbt`` from the :file:`JavaSample` root and from within SBT run ``eclipse`` to generate an eclipse project:
- .. code-block:: bash
+.. code-block:: bash
- sbt # Starts the sbt console
- > eclipse # Running "eclipse" from within the sbt console
+ sbt # Starts the sbt console
+ > eclipse # Running "eclipse" from within the sbt console
You should see something like this:
- .. image:: images/sbt_eclipse.png
- :alt: SBT output
- :align: center
+.. image:: images/sbt_eclipse.png
+ :alt: SBT output
+ :align: center
You can now import the SBT project to Eclipse using :guilabel:`Import ... -> Existing projects into workspace`.
Whether you actually do this is optional for the guide;
@@ -404,25 +404,25 @@ we'll be using SBT to build the project, so if you choose to use Eclipse it will
To test that everything is working, create a simple "Hello OpenCV" application.
Do this by creating a file :file:`src/main/java/HelloOpenCV.java` with the following contents:
- .. code-block:: java
+.. code-block:: java
- public class HelloOpenCV {
- public static void main(String[] args) {
- System.out.println("Hello, OpenCV");
- }
- }
+ public class HelloOpenCV {
+ public static void main(String[] args) {
+ System.out.println("Hello, OpenCV");
+ }
+ }
Now execute ``run`` from the sbt console, or more concisely, run ``sbt run`` from the command line:
- .. code-block:: bash
+.. code-block:: bash
- sbt run
+ sbt run
You should see something like this:
- .. image:: images/sbt_run.png
- :alt: SBT run
- :align: center
+.. image:: images/sbt_run.png
+ :alt: SBT run
+ :align: center
Running SBT samples
-------------------
@@ -433,17 +433,17 @@ First, create a :file:`lib/` folder and copy the OpenCV jar into it.
By default, SBT adds jars in the lib folder to the Java library search path.
You can optionally rerun ``sbt eclipse`` to update your Eclipse project.
- .. code-block:: bash
+.. code-block:: bash
- mkdir lib
- cp /build/bin/opencv_.jar lib/
- sbt eclipse
+ mkdir lib
+ cp /build/bin/opencv_.jar lib/
+ sbt eclipse
Next, create the directory :file:`src/main/resources` and download this Lena image into it:
- .. image:: images/lena.png
- :alt: Lena
- :align: center
+.. image:: images/lena.png
+ :alt: Lena
+ :align: center
Make sure it's called :file:`"lena.png"`.
Items in the resources directory are available to the Java application at runtime.
@@ -451,9 +451,9 @@ Items in the resources directory are available to the Java application at runtim
Next, copy :file:`lbpcascade_frontalface.xml` from :file:`opencv/data/lbpcascades/` into the :file:`resources`
directory:
- .. code-block:: bash
+.. code-block:: bash
- cp /data/lbpcascades/lbpcascade_frontalface.xml src/main/resources/
+ cp /data/lbpcascades/lbpcascade_frontalface.xml src/main/resources/
Now modify src/main/java/HelloOpenCV.java so it contains the following Java code:
@@ -517,21 +517,21 @@ You will also get errors if you try to load OpenCV when it has already been load
Now run the face detection app using ``sbt run``:
- .. code-block:: bash
+.. code-block:: bash
- sbt run
+ sbt run
You should see something like this:
- .. image:: images/sbt_run_face.png
- :alt: SBT run
- :align: center
+.. image:: images/sbt_run_face.png
+ :alt: SBT run
+ :align: center
It should also write the following image to :file:`faceDetection.png`:
- .. image:: images/faceDetection.png
- :alt: Detected face
- :align: center
+.. image:: images/faceDetection.png
+ :alt: Detected face
+ :align: center
You're done!
Now you have a sample Java application working with OpenCV, so you can start the work on your own.