Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv
Commits
aaefd318
Commit
aaefd318
authored
Mar 05, 2013
by
Andrey Pavlenko
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
more formatting
parent
23fb570c
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
93 additions
and
93 deletions
+93
-93
java_dev_intro.rst
doc/tutorials/introduction/desktop_java/java_dev_intro.rst
+93
-93
No files found.
doc/tutorials/introduction/desktop_java/java_dev_intro.rst
View file @
aaefd318
...
@@ -52,26 +52,26 @@ Build
...
@@ -52,26 +52,26 @@ Build
Let's build OpenCV:
Let's build OpenCV:
.. code-block:: bash
.. code-block:: bash
git clone git://github.com/Itseez/opencv.git
git clone git://github.com/Itseez/opencv.git
cd opencv
cd opencv
git checkout 2.4
git checkout 2.4
mkdir build
mkdir build
cd build
cd build
Generate a Makefile or a MS Visual Studio* solution, or whatever you use for
Generate a Makefile or a MS Visual Studio* solution, or whatever you use for
building executables in your system:
building executables in your system:
.. code-block:: bash
.. code-block:: bash
cmake -DBUILD_SHARED_LIBS=OFF ..
cmake -DBUILD_SHARED_LIBS=OFF ..
or
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)
.. note:: When OpenCV is built as a set of **static** libraries (``-DBUILD_SHARED_LIBS=OFF`` option)
the Java bindings dynamic library is all-sufficient,
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
...
@@ -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
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.
through the CMake output for any Java-related tools that aren't found and installing them.
.. image:: images/cmake_output.png
.. image:: images/cmake_output.png
:alt: CMake output
:alt: CMake output
:align: center
:align: center
.. note:: If ``CMake`` can't find Java in your system set the ``JAVA_HOME``
.. note:: If ``CMake`` can't find Java in your system set the ``JAVA_HOME``
environment variable with the path to installed JDK
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
...
@@ -97,15 +97,15 @@ through the CMake output for any Java-related tools that aren't found and instal
Now start the build:
Now start the build:
.. code-block:: bash
.. code-block:: bash
make -j8
make -j8
or
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`)
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
and a native dynamic library containing Java bindings and all the OpenCV stuff
...
@@ -122,8 +122,8 @@ Java sample with Ant
...
@@ -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:
* In this folder create the :file:`build.xml` file with the following content using any text editor:
.. code-block:: xml
.. code-block:: xml
:linenos:
:linenos:
<project name="SimpleSample" basedir="." default="rebuild-run">
<project name="SimpleSample" basedir="." default="rebuild-run">
...
@@ -175,18 +175,18 @@ Java sample with Ant
...
@@ -175,18 +175,18 @@ Java sample with Ant
</project>
</project>
.. note::
.. note::
This XML file can be reused for building other Java applications.
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
It describes a common folder structure in the lines 3 - 12 and common targets
for compiling and running the application.
for compiling and running the application.
When reusing this XML don't forget to modify the project name in the line 1,
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).
that is also the name of the `main` class (line 14).
The paths to OpenCV `jar` and `jni lib` are expected as parameters
The paths to OpenCV `jar` and `jni lib` are expected as parameters
(``"${ocvJarDir}"`` in line 5 and ``"${ocvLibDir}"`` in line 37), but
(``"${ocvJarDir}"`` in line 5 and ``"${ocvLibDir}"`` in line 37), but
you can hardcode these paths for your convenience.
you can hardcode these paths for your convenience.
See `Ant documentation <http://ant.apache.org/manual/>`_ for detailed description
See `Ant documentation <http://ant.apache.org/manual/>`_ for detailed description
of its build file format.
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.
* 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 <http://www.scala-sbt.org/>`_ using the instruc
...
@@ -336,66 +336,66 @@ First, download and install `SBT <http://www.scala-sbt.org/>`_ using the instruc
Next, navigate to a new directory where you'd like the application source to live (outside :file:`opencv` dir).
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:
Let's call it "JavaSample" and create a directory for it:
.. code-block:: bash
.. code-block:: bash
cd <somewhere outside opencv>
cd <somewhere outside opencv>
mkdir JavaSample
mkdir JavaSample
Now we will create the necessary folders and an SBT project:
Now we will create the necessary folders and an SBT project:
.. code-block:: bash
.. code-block:: bash
cd JavaSample
cd JavaSample
mkdir -p src/main/java # This is where SBT expects to find Java sources
mkdir -p src/main/java # This is where SBT expects to find Java sources
mkdir project # This is where the build definitions live
mkdir project # This is where the build definitions live
Now open :file:`project/build.scala` in your favorite editor and paste the following.
Now open :file:`project/build.scala` in your favorite editor and paste the following.
It defines your project:
It defines your project:
.. code-block:: scala
.. code-block:: scala
import sbt._
import sbt._
import Keys._
import Keys._
object JavaSampleBuild extends Build {
object JavaSampleBuild extends Build {
def scalaSettings = Seq(
def scalaSettings = Seq(
scalaVersion := "2.10.0",
scalaVersion := "2.10.0",
scalacOptions ++= Seq(
scalacOptions ++= Seq(
"-optimize",
"-optimize",
"-unchecked",
"-unchecked",
"-deprecation"
"-deprecation"
)
)
)
)
def buildSettings =
def buildSettings =
Project.defaultSettings ++
Project.defaultSettings ++
scalaSettings
scalaSettings
lazy val root = {
lazy val root = {
val settings = buildSettings ++ Seq(name := "JavaSample")
val settings = buildSettings ++ Seq(name := "JavaSample")
Project(id = "JavaSample", base = file("."), settings = settings)
Project(id = "JavaSample", base = file("."), settings = settings)
}
}
}
}
Now edit :file:`project/plugins.sbt` and paste the following.
Now edit :file:`project/plugins.sbt` and paste the following.
This will enable auto-generation of an Eclipse project:
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:
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
sbt # Starts the sbt console
> eclipse # Running "eclipse" from within the sbt console
> eclipse # Running "eclipse" from within the sbt console
You should see something like this:
You should see something like this:
.. image:: images/sbt_eclipse.png
.. image:: images/sbt_eclipse.png
:alt: SBT output
:alt: SBT output
:align: center
:align: center
You can now import the SBT project to Eclipse using :guilabel:`Import ... -> Existing projects into workspace`.
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;
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
...
@@ -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.
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:
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 class HelloOpenCV {
public static void main(String[] args) {
public static void main(String[] args) {
System.out.println("Hello, OpenCV");
System.out.println("Hello, OpenCV");
}
}
}
}
Now execute ``run`` from the sbt console, or more concisely, run ``sbt run`` from the command line:
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:
You should see something like this:
.. image:: images/sbt_run.png
.. image:: images/sbt_run.png
:alt: SBT run
:alt: SBT run
:align: center
:align: center
Running SBT samples
Running SBT samples
-------------------
-------------------
...
@@ -433,17 +433,17 @@ First, create a :file:`lib/` folder and copy the OpenCV jar into it.
...
@@ -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.
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.
You can optionally rerun ``sbt eclipse`` to update your Eclipse project.
.. code-block:: bash
.. code-block:: bash
mkdir lib
mkdir lib
cp <opencv_dir>/build/bin/opencv_<version>.jar lib/
cp <opencv_dir>/build/bin/opencv_<version>.jar lib/
sbt eclipse
sbt eclipse
Next, create the directory :file:`src/main/resources` and download this Lena image into it:
Next, create the directory :file:`src/main/resources` and download this Lena image into it:
.. image:: images/lena.png
.. image:: images/lena.png
:alt: Lena
:alt: Lena
:align: center
:align: center
Make sure it's called :file:`"lena.png"`.
Make sure it's called :file:`"lena.png"`.
Items in the resources directory are available to the Java application at runtime.
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
...
@@ -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`
Next, copy :file:`lbpcascade_frontalface.xml` from :file:`opencv/data/lbpcascades/` into the :file:`resources`
directory:
directory:
.. code-block:: bash
.. code-block:: bash
cp <opencv_dir>/data/lbpcascades/lbpcascade_frontalface.xml src/main/resources/
cp <opencv_dir>/data/lbpcascades/lbpcascade_frontalface.xml src/main/resources/
Now modify src/main/java/HelloOpenCV.java so it contains the following Java code:
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
...
@@ -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``:
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:
You should see something like this:
.. image:: images/sbt_run_face.png
.. image:: images/sbt_run_face.png
:alt: SBT run
:alt: SBT run
:align: center
:align: center
It should also write the following image to :file:`faceDetection.png`:
It should also write the following image to :file:`faceDetection.png`:
.. image:: images/faceDetection.png
.. image:: images/faceDetection.png
:alt: Detected face
:alt: Detected face
:align: center
:align: center
You're done!
You're done!
Now you have a sample Java application working with OpenCV, so you can start the work on your own.
Now you have a sample Java application working with OpenCV, so you can start the work on your own.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment