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
13f402a5
Commit
13f402a5
authored
Mar 06, 2013
by
Andrey Kamaev
Committed by
OpenCV Buildbot
Mar 06, 2013
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #620 from apavlenko:java_tutorial_fix
parents
bbac4bc4
0e64baae
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
40 additions
and
44 deletions
+40
-44
java_dev_intro.rst
doc/tutorials/introduction/desktop_java/java_dev_intro.rst
+38
-40
CMakeLists.txt
modules/java/CMakeLists.txt
+2
-4
No files found.
doc/tutorials/introduction/desktop_java/java_dev_intro.rst
View file @
13f402a5
...
@@ -5,8 +5,6 @@
...
@@ -5,8 +5,6 @@
Introduction to Java Development
Introduction to Java Development
********************************
********************************
Last updated: 28 February, 2013.
As of OpenCV 2.4.4, OpenCV supports desktop Java development using nearly the same interface as for
As of OpenCV 2.4.4, OpenCV supports desktop Java development using nearly the same interface as for
Android development. This guide will help you to create your first Java (or Scala) application using OpenCV.
Android development. This guide will help you to create your first Java (or Scala) application using OpenCV.
We will use either `Eclipse <http://eclipse.org/>`_, `Apache Ant <http://ant.apache.org/>`_ or the
We will use either `Eclipse <http://eclipse.org/>`_, `Apache Ant <http://ant.apache.org/>`_ or the
...
@@ -15,7 +13,7 @@ We will use either `Eclipse <http://eclipse.org/>`_, `Apache Ant <http://ant.apa
...
@@ -15,7 +13,7 @@ We will use either `Eclipse <http://eclipse.org/>`_, `Apache Ant <http://ant.apa
For further reading after this guide, look at the :ref:`Android_Dev_Intro` tutorials.
For further reading after this guide, look at the :ref:`Android_Dev_Intro` tutorials.
What we'll do in this guide
What we'll do in this guide
***************************
===========================
In this guide, we will:
In this guide, we will:
...
@@ -29,12 +27,12 @@ The same process was used to create the samples in the :file:`samples/java` fold
...
@@ -29,12 +27,12 @@ The same process was used to create the samples in the :file:`samples/java` fold
so consult those files if you get lost.
so consult those files if you get lost.
Get proper OpenCV
Get proper OpenCV
*****************
=================
Starting from version 2.4.4 OpenCV includes desktop Java bindings.
Starting from version 2.4.4 OpenCV includes desktop Java bindings.
Download
Download
########
--------
The most simple way to get it is downloading the appropriate package of **version 2.4.4 or higher** from the
The most simple way to get it is downloading the appropriate package of **version 2.4.4 or higher** from the
`OpenCV SourceForge repository <http://sourceforge.net/projects/opencvlibrary/files/>`_.
`OpenCV SourceForge repository <http://sourceforge.net/projects/opencvlibrary/files/>`_.
...
@@ -50,11 +48,11 @@ In order to build OpenCV with Java bindings you need :abbr:`JDK (Java Developmen
...
@@ -50,11 +48,11 @@ In order to build OpenCV with Java bindings you need :abbr:`JDK (Java Developmen
`Apache Ant <http://ant.apache.org/>`_ and `Python` v2.6 or higher to be installed.
`Apache Ant <http://ant.apache.org/>`_ and `Python` v2.6 or higher to be installed.
Build
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
...
@@ -65,13 +63,13 @@ Let's build OpenCV:
...
@@ -65,13 +63,13 @@ Let's build OpenCV:
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" ..
...
@@ -83,7 +81,7 @@ Examine the output of CMake and ensure ``java`` is one of the modules "To be bui
...
@@ -83,7 +81,7 @@ 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
...
@@ -99,23 +97,23 @@ through the CMake output for any Java-related tools that aren't found and instal
...
@@ -99,23 +97,23 @@ 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
(:file:`
bin/Release/opencv_java244.dll` or :file:`lib/libopencv_java244.so
` respectively).
(:file:`
lib/libopencv_java244.so` or :file:`bin/Release/opencv_java244.dll
` respectively).
We'll use these files later.
We'll use these files later.
Java sample with Ant
Java sample with Ant
********************
====================
.. note::
.. note::
The described sample is provided with OpenCV library in the :file:`opencv/samples/java/ant` folder.
The described sample is provided with OpenCV library in the :file:`opencv/samples/java/ant` folder.
...
@@ -236,7 +234,7 @@ Java sample with Ant
...
@@ -236,7 +234,7 @@ Java sample with Ant
:align: center
:align: center
Java project in Eclipse
Java project in Eclipse
***********************
=======================
Now let's look at the possiblity of using OpenCV in Java when developing in Eclipse IDE.
Now let's look at the possiblity of using OpenCV in Java when developing in Eclipse IDE.
...
@@ -256,49 +254,48 @@ Now let's look at the possiblity of using OpenCV in Java when developing in Ecli
...
@@ -256,49 +254,48 @@ Now let's look at the possiblity of using OpenCV in Java when developing in Ecli
:alt: Eclipse: external JAR
:alt: Eclipse: external JAR
:align: center
:align: center
` `
|
.. image:: images/eclipse_user_lib2.png
.. image:: images/eclipse_user_lib2.png
:alt: Eclipse: external JAR
:alt: Eclipse: external JAR
:align: center
:align: center
` `
|
.. image:: images/eclipse_user_lib3.png
.. image:: images/eclipse_user_lib3.png
:alt: Eclipse: external JAR
:alt: Eclipse: external JAR
:align: center
:align: center
` `
|
.. image:: images/eclipse_user_lib4.png
.. image:: images/eclipse_user_lib4.png
:alt: Eclipse: external JAR
:alt: Eclipse: external JAR
:align: center
:align: center
` `
|
.. image:: images/eclipse_user_lib5.png
.. image:: images/eclipse_user_lib5.png
:alt: Eclipse: external JAR
:alt: Eclipse: external JAR
:align: center
:align: center
` `
|
.. image:: images/eclipse_user_lib6.png
.. image:: images/eclipse_user_lib6.png
:alt: Eclipse: external JAR
:alt: Eclipse: external JAR
:align: center
:align: center
` `
|
.. image:: images/eclipse_user_lib7.png
.. image:: images/eclipse_user_lib7.png
:alt: Eclipse: external JAR
:alt: Eclipse: external JAR
:align: center
:align: center
` `
|
.. image:: images/eclipse_user_lib8.png
.. image:: images/eclipse_user_lib8.png
:alt: Eclipse: external JAR
:alt: Eclipse: external JAR
:align: center
:align: center
` `
* Add a new Java class (say ``Main``) containing the application entry:
* Add a new Java class (say ``Main``) containing the application entry:
...
@@ -307,6 +304,7 @@ Now let's look at the possiblity of using OpenCV in Java when developing in Ecli
...
@@ -307,6 +304,7 @@ Now let's look at the possiblity of using OpenCV in Java when developing in Ecli
:align: center
:align: center
* Put some simple OpenCV calls there, e.g.:
* Put some simple OpenCV calls there, e.g.:
.. code-block:: java
.. code-block:: java
import org.opencv.core.Core;
import org.opencv.core.Core;
...
@@ -328,7 +326,7 @@ Now let's look at the possiblity of using OpenCV in Java when developing in Ecli
...
@@ -328,7 +326,7 @@ Now let's look at the possiblity of using OpenCV in Java when developing in Ecli
:align: center
:align: center
SBT project for Java and Scala
SBT project for Java and Scala
******************************
==============================
Now we'll create a simple Java application using SBT. This serves as a brief introduction to
Now we'll create a simple Java application using SBT. This serves as a brief introduction to
those unfamiliar with this build tool. We're using SBT because it is particularly easy and powerful.
those unfamiliar with this build tool. We're using SBT because it is particularly easy and powerful.
...
@@ -338,14 +336,14 @@ First, download and install `SBT <http://www.scala-sbt.org/>`_ using the instruc
...
@@ -338,14 +336,14 @@ 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
...
@@ -354,7 +352,7 @@ Now we will create the necessary folders and an SBT project:
...
@@ -354,7 +352,7 @@ Now we will create the necessary folders and an SBT project:
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._
...
@@ -382,20 +380,20 @@ It defines your project:
...
@@ -382,20 +380,20 @@ It defines your project:
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
...
@@ -406,7 +404,7 @@ we'll be using SBT to build the project, so if you choose to use Eclipse it will
...
@@ -406,7 +404,7 @@ 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) {
...
@@ -416,18 +414,18 @@ Do this by creating a file :file:`src/main/java/HelloOpenCV.java` with the follo
...
@@ -416,18 +414,18 @@ Do this by creating a file :file:`src/main/java/HelloOpenCV.java` with the follo
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
###################
-------------------
Now we'll create a simple face detection application using OpenCV.
Now we'll create a simple face detection application using OpenCV.
...
@@ -435,7 +433,7 @@ First, create a :file:`lib/` folder and copy the OpenCV jar into it.
...
@@ -435,7 +433,7 @@ 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/
...
@@ -443,7 +441,7 @@ You can optionally rerun ``sbt eclipse`` to update your Eclipse project.
...
@@ -443,7 +441,7 @@ You can optionally rerun ``sbt eclipse`` to update your Eclipse project.
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
...
@@ -453,7 +451,7 @@ Items in the resources directory are available to the Java application at runtim
...
@@ -453,7 +451,7 @@ 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/
...
@@ -519,19 +517,19 @@ You will also get errors if you try to load OpenCV when it has already been load
...
@@ -519,19 +517,19 @@ 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
...
...
modules/java/CMakeLists.txt
View file @
13f402a5
...
@@ -301,16 +301,14 @@ endif()
...
@@ -301,16 +301,14 @@ endif()
# Additional target properties
# Additional target properties
set_target_properties
(
${
the_module
}
PROPERTIES
set_target_properties
(
${
the_module
}
PROPERTIES
OUTPUT_NAME
"
${
the_module
}${
LIB_NAME_SUFIX
}
"
OUTPUT_NAME
"
${
the_module
}${
LIB_NAME_SUFIX
}
"
#DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}"
ARCHIVE_OUTPUT_DIRECTORY
${
LIBRARY_OUTPUT_PATH
}
ARCHIVE_OUTPUT_DIRECTORY
${
LIBRARY_OUTPUT_PATH
}
LIBRARY_OUTPUT_DIRECTORY
${
LIBRARY_OUTPUT_PATH
}
RUNTIME_OUTPUT_DIRECTORY
${
EXECUTABLE_OUTPUT_PATH
}
RUNTIME_OUTPUT_DIRECTORY
${
EXECUTABLE_OUTPUT_PATH
}
INSTALL_NAME_DIR
${
OPENCV_LIB_INSTALL_PATH
}
INSTALL_NAME_DIR
${
OPENCV_LIB_INSTALL_PATH
}
LINK_INTERFACE_LIBRARIES
""
LINK_INTERFACE_LIBRARIES
""
)
)
if
(
ANDROID
)
if
(
WIN32
)
set_target_properties
(
${
the_module
}
PROPERTIES LIBRARY_OUTPUT_DIRECTORY
${
LIBRARY_OUTPUT_PATH
}
)
else
()
set_target_properties
(
${
the_module
}
PROPERTIES LIBRARY_OUTPUT_DIRECTORY
${
EXECUTABLE_OUTPUT_PATH
}
)
set_target_properties
(
${
the_module
}
PROPERTIES LIBRARY_OUTPUT_DIRECTORY
${
EXECUTABLE_OUTPUT_PATH
}
)
endif
()
endif
()
...
...
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