Doxygen tutorials: warnings cleared
This commit is contained in:
@@ -13,7 +13,7 @@ This tutorial assumes you have the following software installed and configured:
|
||||
- Eclipse IDE
|
||||
- ADT and CDT plugins for Eclipse
|
||||
|
||||
If you need help with anything of the above, you may refer to our @ref android_dev_intro guide.
|
||||
If you need help with anything of the above, you may refer to our @ref tutorial_android_dev_intro guide.
|
||||
|
||||
If you encounter any error after thoroughly following these steps, feel free to contact us via
|
||||
[OpenCV4Android](https://groups.google.com/group/android-opencv/) discussion group or OpenCV [Q&A
|
||||
@@ -27,9 +27,9 @@ Pack](http://developer.nvidia.com/tegra-android-development-pack) (**TADP**) rel
|
||||
for Android development environment setup.
|
||||
|
||||
Beside Android development tools the TADP 2.0 includes OpenCV4Android SDK, so it can be already
|
||||
installed in your system and you can skip to @ref Running_OpenCV_Samples section of this tutorial.
|
||||
installed in your system and you can skip to @ref tutorial_O4A_SDK_samples "samples" section of this tutorial.
|
||||
|
||||
More details regarding TADP can be found in the @ref android_dev_intro guide.
|
||||
More details regarding TADP can be found in the @ref tutorial_android_dev_intro guide.
|
||||
|
||||
General info
|
||||
------------
|
||||
@@ -71,20 +71,21 @@ The structure of package contents looks as follows:
|
||||
On production devices that have access to Google Play Market (and Internet) these packages will
|
||||
be installed from Market on the first start of an application using OpenCV Manager API. But
|
||||
devkits without Market or Internet connection require this packages to be installed manually.
|
||||
Install the Manager.apk and optional binary_pack.apk if it needed. See @ref manager_selection
|
||||
Install the Manager.apk and optional binary_pack.apk if it needed. See `Manager Selection`
|
||||
for details.
|
||||
|
||||
@note Installation from Internet is the preferable way since OpenCV team may publish updated
|
||||
versions of this packages on the Market. \* `samples` folder contains sample applications projects
|
||||
and their prebuilt packages (APK). Import them into Eclipse workspace (like described below) and
|
||||
browse the code to learn possible ways of OpenCV use on Android.
|
||||
@note Installation from Internet is the preferable way since OpenCV team may publish updated
|
||||
versions of this packages on the Market.
|
||||
|
||||
- `samples` folder contains sample applications projects
|
||||
and their prebuilt packages (APK). Import them into Eclipse workspace (like described below) and
|
||||
browse the code to learn possible ways of OpenCV use on Android.
|
||||
|
||||
- `doc` folder contains various OpenCV documentation in PDF format. It's also available online at
|
||||
<http://docs.opencv.org>.
|
||||
|
||||
@note The most recent docs (nightly build) are at <http://docs.opencv.org/2.4>. Generally, it's more
|
||||
up-to-date, but can refer to not-yet-released functionality. .. TODO: I'm not sure that this is the
|
||||
best place to talk about OpenCV Manager
|
||||
@note The most recent docs (nightly build) are at <http://docs.opencv.org/2.4>. Generally, it's more
|
||||
up-to-date, but can refer to not-yet-released functionality.
|
||||
@todo I'm not sure that this is the best place to talk about OpenCV Manager
|
||||
|
||||
Starting from version 2.4.3 OpenCV4Android SDK uses OpenCV Manager API for library initialization.
|
||||
OpenCV Manager is an Android service based solution providing the following benefits for OpenCV
|
||||
@@ -98,8 +99,8 @@ applications developers:
|
||||
|
||||
For additional information on OpenCV Manager see the:
|
||||
|
||||
- Slides_
|
||||
- Reference Manual_
|
||||
- [Slides](https://docs.google.com/a/itseez.com/presentation/d/1EO_1kijgBg_BsjNp2ymk-aarg-0K279_1VZRcPplSuk/present#slide=id.p)
|
||||
- [Reference Manual](http://docs.opencv.org/android/refman.html)
|
||||
|
||||
Manual OpenCV4Android SDK setup
|
||||
-------------------------------
|
||||
@@ -108,21 +109,23 @@ Manual OpenCV4Android SDK setup
|
||||
|
||||
1. Go to the [OpenCV download page on
|
||||
SourceForge](http://sourceforge.net/projects/opencvlibrary/files/opencv-android/) and download
|
||||
the latest available version. Currently it's `OpenCV-2.4.9-android-sdk.zip`_.
|
||||
the latest available version. Currently it's [OpenCV-2.4.9-android-sdk.zip](http://sourceforge.net/projects/opencvlibrary/files/opencv-android/2.4.9/OpenCV-2.4.9-android-sdk.zip/download).
|
||||
2. Create a new folder for Android with OpenCV development. For this tutorial we have unpacked
|
||||
OpenCV SDK to the `C:\\Work\\OpenCV4Android\\` directory.
|
||||
OpenCV SDK to the `C:\Work\OpenCV4Android\` directory.
|
||||
|
||||
@note Better to use a path without spaces in it. Otherwise you may have problems with ndk-build. \#.
|
||||
Unpack the SDK archive into the chosen directory.
|
||||
@note Better to use a path without spaces in it. Otherwise you may have problems with ndk-build.
|
||||
|
||||
You can unpack it using any popular archiver (e.g with 7-Zip_):
|
||||
3. Unpack the SDK archive into the chosen directory.
|
||||
|
||||

|
||||
You can unpack it using any popular archiver (e.g with 7-Zip_):
|
||||
|
||||

|
||||
|
||||
On Unix you can use the following command:
|
||||
@code{.bash}
|
||||
unzip ~/Downloads/OpenCV-2.4.9-android-sdk.zip
|
||||
@endcode
|
||||
|
||||
On Unix you can use the following command:
|
||||
@code{.bash}
|
||||
unzip ~/Downloads/OpenCV-2.4.9-android-sdk.zip
|
||||
@endcode
|
||||
### Import OpenCV library and samples to the Eclipse
|
||||
|
||||
1. Start Eclipse and choose your workspace location.
|
||||
@@ -143,23 +146,23 @@ unzip ~/Downloads/OpenCV-2.4.9-android-sdk.zip
|
||||
already references OpenCV library. Follow the steps below to import OpenCV and samples into the
|
||||
workspace:
|
||||
|
||||
@note OpenCV samples are indeed **dependent** on OpenCV library project so don't forget to import it to your workspace as well.
|
||||
- Right click on the Package Explorer window and choose Import... option from the context
|
||||
menu:
|
||||
@note OpenCV samples are indeed **dependent** on OpenCV library project so don't forget to import it to your workspace as well.
|
||||
- Right click on the Package Explorer window and choose Import... option from the context
|
||||
menu:
|
||||
|
||||

|
||||

|
||||
|
||||
- In the main panel select General --\> Existing Projects into Workspace and press Next
|
||||
button:
|
||||
- In the main panel select General --\> Existing Projects into Workspace and press Next
|
||||
button:
|
||||
|
||||

|
||||

|
||||
|
||||
- In the Select root directory field locate your OpenCV package folder. Eclipse should
|
||||
automatically locate OpenCV library and samples:
|
||||
- In the Select root directory field locate your OpenCV package folder. Eclipse should
|
||||
automatically locate OpenCV library and samples:
|
||||
|
||||

|
||||

|
||||
|
||||
- Click Finish button to complete the import operation.
|
||||
- Click Finish button to complete the import operation.
|
||||
|
||||
After clicking Finish button Eclipse will load all selected projects into workspace, and you
|
||||
have to wait some time while it is building OpenCV samples. Just give a minute to Eclipse to
|
||||
@@ -171,12 +174,13 @@ unzip ~/Downloads/OpenCV-2.4.9-android-sdk.zip
|
||||
|
||||

|
||||
|
||||
@anchor tutorial_O4A_SDK_samples
|
||||
### Running OpenCV Samples
|
||||
|
||||
At this point you should be able to build and run the samples. Keep in mind, that face-detection and
|
||||
Tutorial 2 - Mixed Processing include some native code and require Android NDK and NDK/CDT plugin
|
||||
for Eclipse to build working applications. If you haven't installed these tools, see the
|
||||
corresponding section of @ref Android_Dev_Intro.
|
||||
corresponding section of @ref tutorial_android_dev_intro.
|
||||
|
||||
**warning**
|
||||
|
||||
@@ -185,21 +189,23 @@ Please consider that some samples use Android Java Camera API, which is accessib
|
||||
emulator.
|
||||
|
||||
@note Recent *Android SDK tools, revision 19+* can run ARM v7a OS images but they available not for
|
||||
all Android versions. Well, running samples from Eclipse is very simple:
|
||||
all Android versions.
|
||||
|
||||
Well, running samples from Eclipse is very simple:
|
||||
|
||||
- Connect your device with adb tool from Android SDK or create an emulator with camera support.
|
||||
- See [Managing Virtual
|
||||
Devices](http://developer.android.com/guide/developing/devices/index.html) document for help
|
||||
- See [Managing Virtual Devices](http://developer.android.com/guide/developing/devices/index.html) document for help
|
||||
with Android Emulator.
|
||||
- See [Using Hardware Devices](http://developer.android.com/guide/developing/device.html) for
|
||||
help with real devices (not emulators).
|
||||
|
||||
- Select project you want to start in Package Explorer and just press Ctrl + F11 or select option
|
||||
Run --\> Run from the main menu, or click Run button on the toolbar.
|
||||
|
||||
@note Android Emulator can take several minutes to start. So, please, be patient. \* On the first
|
||||
run Eclipse will ask you about the running mode for your application:
|
||||
@note Android Emulator can take several minutes to start. So, please, be patient. \* On the first
|
||||
run Eclipse will ask you about the running mode for your application:
|
||||
|
||||

|
||||

|
||||
|
||||
- Select the Android Application option and click OK button. Eclipse will install and run the
|
||||
sample.
|
||||
@@ -215,18 +221,17 @@ run Eclipse will ask you about the running mode for your application:
|
||||
device/emulator. It will redirect you to the corresponding page on *Google Play Market*.
|
||||
|
||||
If you have no access to the *Market*, which is often the case with emulators - you will need to
|
||||
install the packages from OpenCV4Android SDK folder manually. See @ref manager_selection for
|
||||
install the packages from OpenCV4Android SDK folder manually. See `Manager Selection` for
|
||||
details.
|
||||
@code{.sh}
|
||||
<Android SDK path>/platform-tools/adb install <OpenCV4Android SDK path>/apk/OpenCV_2.4.9_Manager_2.18_armv7a-neon.apk
|
||||
@endcode
|
||||
@note armeabi, armv7a-neon, arm7a-neon-android8, mips and x86 stand for platform targets:
|
||||
- armeabi is for ARM v5 and ARM v6 architectures with Android API 8+,
|
||||
- armv7a-neon is for NEON-optimized ARM v7 with Android API 9+,
|
||||
- arm7a-neon-android8 is for NEON-optimized ARM v7 with Android API 8,
|
||||
- mips is for MIPS architecture with Android API 9+,
|
||||
- x86 is for Intel x86 CPUs with Android API 9+.
|
||||
|
||||
@note armeabi, armv7a-neon, arm7a-neon-android8, mips and x86 stand for platform targets:
|
||||
- armeabi is for ARM v5 and ARM v6 architectures with Android API 8+,
|
||||
- armv7a-neon is for NEON-optimized ARM v7 with Android API 9+,
|
||||
- arm7a-neon-android8 is for NEON-optimized ARM v7 with Android API 8,
|
||||
- mips is for MIPS architecture with Android API 9+,
|
||||
- x86 is for Intel x86 CPUs with Android API 9+.
|
||||
If using hardware device for testing/debugging, run the following command to learn its CPU
|
||||
architecture:
|
||||
@code{.sh}
|
||||
@@ -236,9 +241,9 @@ run Eclipse will ask you about the running mode for your application:
|
||||
Click Edit in the context menu of the selected device. In the window, which then pop-ups, find
|
||||
the CPU field.
|
||||
|
||||
You may also see section @ref manager_selection for details.
|
||||
You may also see section `Manager Selection` for details.
|
||||
|
||||
When done, you will be able to run OpenCV samples on your device/emulator seamlessly.
|
||||
When done, you will be able to run OpenCV samples on your device/emulator seamlessly.
|
||||
|
||||
- Here is Sample - image-manipulations sample, running on top of stock camera-preview of the
|
||||
emulator.
|
||||
@@ -249,6 +254,4 @@ What's next
|
||||
-----------
|
||||
|
||||
Now, when you have your instance of OpenCV4Adroid SDK set up and configured, you may want to proceed
|
||||
to using OpenCV in your own application. You can learn how to do that in a separate @ref
|
||||
dev_with_OCV_on_Android tutorial.
|
||||
|
||||
to using OpenCV in your own application. You can learn how to do that in a separate @ref tutorial_dev_with_OCV_on_Android tutorial.
|
||||
|
@@ -247,6 +247,7 @@ APP_ABI := all
|
||||
@note We recommend setting APP_ABI := all for all targets. If you want to specify the target
|
||||
explicitly, use armeabi for ARMv5/ARMv6, armeabi-v7a for ARMv7, x86 for Intel Atom or mips for MIPS.
|
||||
|
||||
@anchor tutorial_android_dev_intro_ndk
|
||||
Building application native part from command line
|
||||
--------------------------------------------------
|
||||
|
||||
@@ -284,6 +285,8 @@ build tool).
|
||||
@code{.bash}
|
||||
<path_where_NDK_is_placed>/ndk-build -B
|
||||
@endcode
|
||||
|
||||
@anchor tutorial_android_dev_intro_eclipse
|
||||
Building application native part from *Eclipse* (CDT Builder)
|
||||
-------------------------------------------------------------
|
||||
|
||||
@@ -331,9 +334,9 @@ to apply the changes.
|
||||
4. Open Project Properties -\> C/C++ Build, uncheck Use default build command, replace "Build
|
||||
command" text from "make" to
|
||||
|
||||
"\\f${NDKROOT}/ndk-build.cmd" on Windows,
|
||||
"${NDKROOT}/ndk-build.cmd" on Windows,
|
||||
|
||||
"\\f${NDKROOT}/ndk-build" on Linux and MacOS.
|
||||
"${NDKROOT}/ndk-build" on Linux and MacOS.
|
||||
|
||||

|
||||
|
||||
@@ -438,7 +441,7 @@ instructions](http://developer.android.com/tools/device.html) for more informati
|
||||

|
||||
|
||||
\` \`
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
@@ -514,5 +517,4 @@ What's next
|
||||
-----------
|
||||
|
||||
Now, when you have your development environment set up and configured, you may want to proceed to
|
||||
installing OpenCV4Android SDK. You can learn how to do that in a separate @ref O4A_SDK tutorial.
|
||||
|
||||
installing OpenCV4Android SDK. You can learn how to do that in a separate @ref tutorial_O4A_SDK tutorial.
|
||||
|
@@ -13,11 +13,11 @@ This tutorial assumes you have the following installed and configured:
|
||||
- Eclipse IDE
|
||||
- ADT and CDT plugins for Eclipse
|
||||
|
||||
If you need help with anything of the above, you may refer to our @ref android_dev_intro guide.
|
||||
If you need help with anything of the above, you may refer to our @ref tutorial_android_dev_intro guide.
|
||||
|
||||
This tutorial also assumes you have OpenCV4Android SDK already installed on your development machine
|
||||
and OpenCV Manager on your testing device correspondingly. If you need help with any of these, you
|
||||
may consult our @ref O4A_SDK tutorial.
|
||||
may consult our @ref tutorial_O4A_SDK tutorial.
|
||||
|
||||
If you encounter any error after thoroughly following these steps, feel free to contact us via
|
||||
[OpenCV4Android](https://groups.google.com/group/android-opencv/) discussion group or OpenCV [Q&A
|
||||
@@ -28,7 +28,7 @@ Using OpenCV Library Within Your Android Project
|
||||
|
||||
In this section we will explain how to make some existing project to use OpenCV. Starting with 2.4.2
|
||||
release for Android, *OpenCV Manager* is used to provide apps with the best available version of
|
||||
OpenCV. You can get more information here: @ref Android_OpenCV_Manager and in these
|
||||
OpenCV. You can get more information here: `Android OpenCV Manager` and in these
|
||||
[slides](https://docs.google.com/a/itseez.com/presentation/d/1EO_1kijgBg_BsjNp2ymk-aarg-0K279_1VZRcPplSuk/present#slide=id.p).
|
||||
|
||||
### Java
|
||||
@@ -52,7 +52,7 @@ Manager to access OpenCV libraries externally installed in the target system.
|
||||
|
||||
In most cases OpenCV Manager may be installed automatically from Google Play. For the case, when
|
||||
Google Play is not available, i.e. emulator, developer board, etc, you can install it manually using
|
||||
adb tool. See @ref manager_selection for details.
|
||||
adb tool. See `Manager Selection` for details.
|
||||
|
||||
There is a very base code snippet implementing the async initialization. It shows basic principles.
|
||||
See the "15-puzzle" OpenCV sample for details.
|
||||
@@ -118,7 +118,7 @@ described above.
|
||||
|
||||
In case of the application project **with a JNI part**, instead of manual libraries copying you
|
||||
need to modify your Android.mk file: add the following two code lines after the
|
||||
"include \\f$(CLEAR_VARS)" and before
|
||||
"include $(CLEAR_VARS)" and before
|
||||
"include path_to_OpenCV-2.4.9-android-sdk/sdk/native/jni/OpenCV.mk"
|
||||
@code{.make}
|
||||
OPENCV_CAMERA_MODULES:=on
|
||||
@@ -160,6 +160,7 @@ described above.
|
||||
}
|
||||
}
|
||||
@endcode
|
||||
|
||||
### Native/C++
|
||||
|
||||
To build your own Android application, using OpenCV as native part, the following steps should be
|
||||
@@ -184,12 +185,13 @@ taken:
|
||||
4. Several variables can be used to customize OpenCV stuff, but you **don't need** to use them when
|
||||
your application uses the async initialization via the OpenCV Manager API.
|
||||
|
||||
@note These variables should be set **before** the "include .../OpenCV.mk" line:
|
||||
@code{.make}
|
||||
@note These variables should be set **before** the "include .../OpenCV.mk" line:
|
||||
@code{.make}
|
||||
OPENCV_INSTALL_MODULES:=on
|
||||
@endcode
|
||||
Copies necessary OpenCV dynamic libs to the project libs folder in order to include them
|
||||
into the APK.
|
||||
|
||||
Copies necessary OpenCV dynamic libs to the project libs folder in order to include them
|
||||
into the APK.
|
||||
@code{.make}
|
||||
OPENCV_CAMERA_MODULES:=off
|
||||
@endcode
|
||||
@@ -200,7 +202,7 @@ Copies necessary OpenCV dynamic libs to the project libs folder in order to incl
|
||||
Perform static linking with OpenCV. By default dynamic link is used and the project JNI lib
|
||||
depends on libopencv_java.so.
|
||||
|
||||
1. The file `Application.mk` should exist and should contain lines:
|
||||
5. The file `Application.mk` should exist and should contain lines:
|
||||
@code{.make}
|
||||
APP_STL := gnustl_static
|
||||
APP_CPPFLAGS := -frtti -fexceptions
|
||||
@@ -218,8 +220,10 @@ Copies necessary OpenCV dynamic libs to the project libs folder in order to incl
|
||||
@code{.make}
|
||||
APP_PLATFORM := android-9
|
||||
@endcode
|
||||
2. Either use @ref manual \<NDK_build_cli\> ndk-build invocation or @ref setup Eclipse CDT
|
||||
Builder \<CDT_Builder\> to build native JNI lib before (re)building the Java part and creating
|
||||
|
||||
6. Either use @ref tutorial_android_dev_intro_ndk "manual" ndk-build invocation or
|
||||
@ref tutorial_android_dev_intro_eclipse "setup Eclipse CDT Builder" to build native JNI lib
|
||||
before (re)building the Java part and creating
|
||||
an APK.
|
||||
|
||||
Hello OpenCV Sample
|
||||
@@ -246,7 +250,7 @@ application. It will be capable of accessing camera output, processing it and di
|
||||
xmlns:opencv="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" >
|
||||
|
||||
|
||||
<org.opencv.android.JavaCameraView
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
@@ -254,7 +258,7 @@ application. It will be capable of accessing camera output, processing it and di
|
||||
android:id="@+id/HelloOpenCvView"
|
||||
opencv:show_fps="true"
|
||||
opencv:camera_id="any" />
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
@endcode
|
||||
8. Add the following permissions to the `AndroidManifest.xml` file:
|
||||
@@ -293,7 +297,7 @@ application. It will be capable of accessing camera output, processing it and di
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@Override
|
||||
public void onResume()
|
||||
{
|
||||
@@ -365,7 +369,8 @@ function and it is called on retrieving frame from camera. The callback input is
|
||||
CvCameraViewFrame class that represents frame from camera.
|
||||
|
||||
@note Do not save or use CvCameraViewFrame object out of onCameraFrame callback. This object does
|
||||
not have its own state and its behavior out of callback is unpredictable! It has rgba() and gray()
|
||||
not have its own state and its behavior out of callback is unpredictable!
|
||||
|
||||
It has rgba() and gray()
|
||||
methods that allows to get frame as RGBA and one channel gray scale Mat respectively. It expects
|
||||
that onCameraFrame function returns RGBA frame that will be drawn on the screen.
|
||||
|
||||
|
@@ -61,7 +61,7 @@ The available [installation guide](https://github.com/technomancy/leiningen#inst
|
||||
easy to be followed:
|
||||
|
||||
1. [Download the script](https://raw.github.com/technomancy/leiningen/stable/bin/lein)
|
||||
2. Place it on your \\f$PATH (cf. \~/bin is a good choice if it is on your path.)
|
||||
2. Place it on your $PATH (cf. \~/bin is a good choice if it is on your path.)
|
||||
3. Set the script to be executable. (i.e. chmod 755 \~/bin/lein).
|
||||
|
||||
If you work on Windows, follow [this instruction](https://github.com/technomancy/leiningen#windows)
|
||||
|
@@ -6,8 +6,8 @@ Android development. This guide will help you to create your first Java (or Scal
|
||||
OpenCV. We will use either [Apache Ant](http://ant.apache.org/) or [Simple Build Tool
|
||||
(SBT)](http://www.scala-sbt.org/) to build the application.
|
||||
|
||||
If you want to use Eclipse head to @ref Java_Eclipse. For further reading after this guide, look at
|
||||
the @ref Android_Dev_Intro tutorials.
|
||||
If you want to use Eclipse head to @ref tutorial_java_eclipse. For further reading after this guide, look at
|
||||
the @ref tutorial_android_dev_intro tutorials.
|
||||
|
||||
What we'll do in this guide
|
||||
---------------------------
|
||||
@@ -58,19 +58,23 @@ or
|
||||
@code{.bat}
|
||||
cmake -DBUILD_SHARED_LIBS=OFF -G "Visual Studio 10" ..
|
||||
@endcode
|
||||
|
||||
@note When OpenCV is built as a set of **static** libraries (-DBUILD_SHARED_LIBS=OFF option) the
|
||||
Java bindings dynamic library is all-sufficient, i.e. doesn't depend on other OpenCV libs, but
|
||||
includes all the OpenCV code inside. Examine the output of CMake and ensure java is one of the
|
||||
includes all the OpenCV code inside.
|
||||
|
||||
Examine the output of CMake and ensure java is one of the
|
||||
modules "To be built". 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.
|
||||
|
||||

|
||||
|
||||
@note If CMake can't find Java in your system set the JAVA_HOME environment variable with the path to installed JDK before running it. E.g.:
|
||||
@code{.bash}
|
||||
export JAVA_HOME=/usr/lib/jvm/java-6-oracle
|
||||
cmake -DBUILD_SHARED_LIBS=OFF ..
|
||||
@endcode
|
||||
@code{.bash}
|
||||
export JAVA_HOME=/usr/lib/jvm/java-6-oracle
|
||||
cmake -DBUILD_SHARED_LIBS=OFF ..
|
||||
@endcode
|
||||
|
||||
Now start the build:
|
||||
@code{.bash}
|
||||
make -j8
|
||||
@@ -87,72 +91,23 @@ Java sample with Ant
|
||||
--------------------
|
||||
|
||||
@note The described sample is provided with OpenCV library in the `opencv/samples/java/ant`
|
||||
folder. \* Create a folder where you'll develop this sample application.
|
||||
folder.
|
||||
|
||||
- Create a folder where you'll develop this sample application.
|
||||
|
||||
- In this folder create the `build.xml` file with the following content using any text editor:
|
||||
@code{.xml}
|
||||
<project name="SimpleSample" basedir="." default="rebuild-run">
|
||||
|
||||
<property name="src.dir" value="src"/>
|
||||
|
||||
<property name="lib.dir" value="\f${ocvJarDir}"/>
|
||||
<path id="classpath">
|
||||
<fileset dir="\f${lib.dir}" includes="**/*.jar"/>
|
||||
</path>
|
||||
|
||||
<property name="build.dir" value="build"/>
|
||||
<property name="classes.dir" value="\f${build.dir}/classes"/>
|
||||
<property name="jar.dir" value="\f${build.dir}/jar"/>
|
||||
|
||||
<property name="main-class" value="\f${ant.project.name}"/>
|
||||
|
||||
|
||||
<target name="clean">
|
||||
<delete dir="\f${build.dir}"/>
|
||||
</target>
|
||||
|
||||
<target name="compile">
|
||||
<mkdir dir="\f${classes.dir}"/>
|
||||
<javac includeantruntime="false" srcdir="\f${src.dir}" destdir="\f${classes.dir}" classpathref="classpath"/>
|
||||
</target>
|
||||
|
||||
<target name="jar" depends="compile">
|
||||
<mkdir dir="\f${jar.dir}"/>
|
||||
<jar destfile="\f${jar.dir}/\f${ant.project.name}.jar" basedir="\f${classes.dir}">
|
||||
<manifest>
|
||||
<attribute name="Main-Class" value="\f${main-class}"/>
|
||||
</manifest>
|
||||
</jar>
|
||||
</target>
|
||||
|
||||
<target name="run" depends="jar">
|
||||
<java fork="true" classname="\f${main-class}">
|
||||
<sysproperty key="java.library.path" path="\f${ocvLibDir}"/>
|
||||
<classpath>
|
||||
<path refid="classpath"/>
|
||||
<path location="\f${jar.dir}/\f${ant.project.name}.jar"/>
|
||||
</classpath>
|
||||
</java>
|
||||
</target>
|
||||
|
||||
<target name="rebuild" depends="clean,jar"/>
|
||||
|
||||
<target name="rebuild-run" depends="clean,run"/>
|
||||
|
||||
</project>
|
||||
@endcode
|
||||
@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
|
||||
@include samples/java/ant/build.xml
|
||||
@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
|
||||
("\\f${ocvJarDir}" in line 5 and "\\f${ocvLibDir}" in line 37), but you can hardcode these paths for
|
||||
("${ocvJarDir}" in line 5 and "${ocvLibDir}" in line 37), but you can hardcode these paths for
|
||||
your convenience. See [Ant documentation](http://ant.apache.org/manual/) for detailed
|
||||
description of its build file format.
|
||||
|
||||
- Create an `src` folder next to the `build.xml` file and a `SimpleSample.java` file in it.
|
||||
-
|
||||
|
||||
Put the following Java code into the `SimpleSample.java` file:
|
||||
@code{.java}
|
||||
- Put the following Java code into the `SimpleSample.java` file:
|
||||
@code{.java}
|
||||
import org.opencv.core.Core;
|
||||
import org.opencv.core.Mat;
|
||||
import org.opencv.core.CvType;
|
||||
@@ -175,20 +130,18 @@ folder. \* Create a folder where you'll develop this sample application.
|
||||
|
||||
}
|
||||
@endcode
|
||||
-
|
||||
- Run the following command in console in the folder containing `build.xml`:
|
||||
@code{.bash}
|
||||
ant -DocvJarDir=path/to/dir/containing/opencv-244.jar -DocvLibDir=path/to/dir/containing/opencv_java244/native/library
|
||||
@endcode
|
||||
For example:
|
||||
@code{.bat}
|
||||
ant -DocvJarDir=X:\opencv-2.4.4\bin -DocvLibDir=X:\opencv-2.4.4\bin\Release
|
||||
@endcode
|
||||
The command should initiate [re]building and running the sample. You should see on the
|
||||
screen something like this:
|
||||
|
||||
Run the following command in console in the folder containing `build.xml`:
|
||||
@code{.bash}
|
||||
ant -DocvJarDir=path/to/dir/containing/opencv-244.jar -DocvLibDir=path/to/dir/containing/opencv_java244/native/library
|
||||
@endcode
|
||||
For example:
|
||||
@code{.bat}
|
||||
ant -DocvJarDir=X:\opencv-2.4.4\bin -DocvLibDir=X:\opencv-2.4.4\bin\Release
|
||||
@endcode
|
||||
The command should initiate [re]building and running the sample. You should see on the
|
||||
screen something like this:
|
||||
|
||||

|
||||

|
||||
|
||||
SBT project for Java and Scala
|
||||
------------------------------
|
||||
@@ -370,4 +323,3 @@ It should also write the following image to `faceDetection.png`:
|
||||
|
||||
You're done! Now you have a sample Java application working with OpenCV, so you can start the work
|
||||
on your own. We wish you good luck and many years of joyful life!
|
||||
|
||||
|
File diff suppressed because one or more lines are too long
@@ -12,10 +12,12 @@ Required Packages
|
||||
Launch GIT client and clone OpenCV repository from [here](http://github.com/itseez/opencv)
|
||||
|
||||
In MacOS it can be done using the following command in Terminal:
|
||||
|
||||
@code{.bash}
|
||||
cd ~/<my_working _directory>
|
||||
git clone https://github.com/Itseez/opencv.git
|
||||
@endcode
|
||||
|
||||
Building OpenCV from Source, using CMake and Command Line
|
||||
---------------------------------------------------------
|
||||
|
||||
@@ -24,11 +26,13 @@ Building OpenCV from Source, using CMake and Command Line
|
||||
cd /
|
||||
sudo ln -s /Applications/Xcode.app/Contents/Developer Developer
|
||||
@endcode
|
||||
|
||||
2. Build OpenCV framework:
|
||||
@code{.bash}
|
||||
cd ~/<my_working_directory>
|
||||
python opencv/platforms/ios/build_framework.py ios
|
||||
@endcode
|
||||
|
||||
If everything's fine, a few minutes later you will get
|
||||
\~/\<my_working_directory\>/ios/opencv2.framework. You can add this framework to your Xcode
|
||||
projects.
|
||||
@@ -36,5 +40,4 @@ projects.
|
||||
Further Reading
|
||||
---------------
|
||||
|
||||
You can find several OpenCV+iOS tutorials here @ref Table-Of-Content-iOS.
|
||||
|
||||
You can find several OpenCV+iOS tutorials here @ref tutorial_table_of_content_ios.
|
||||
|
@@ -11,7 +11,7 @@ Configuring Eclipse
|
||||
-------------------
|
||||
|
||||
First, obtain a fresh release of OpenCV [from download page](http://opencv.org/downloads.html) and
|
||||
extract it under a simple location like C:\\OpenCV-2.4.6\\. I am using version 2.4.6, but the steps
|
||||
extract it under a simple location like `C:\OpenCV-2.4.6\`. I am using version 2.4.6, but the steps
|
||||
are more or less the same for other versions.
|
||||
|
||||
Now, we will define OpenCV as a user library in Eclipse, so we can reuse the configuration for any
|
||||
@@ -31,12 +31,12 @@ Now select your new user library and click Add External JARs....
|
||||
|
||||

|
||||
|
||||
Browse through C:\\OpenCV-2.4.6\\build\\java\\ and select opencv-246.jar. After adding the jar,
|
||||
Browse through `C:\OpenCV-2.4.6\build\java\` and select opencv-246.jar. After adding the jar,
|
||||
extend the opencv-246.jar and select Native library location and press Edit....
|
||||
|
||||

|
||||
|
||||
Select External Folder... and browse to select the folder C:\\OpenCV-2.4.6\\build\\java\\x64. If you
|
||||
Select External Folder... and browse to select the folder `C:\OpenCV-2.4.6\build\java\x64`. If you
|
||||
have a 32-bit system you need to select the x86 folder instead of x64.
|
||||
|
||||

|
||||
@@ -86,4 +86,3 @@ When you run the code you should see 3x3 identity matrix as output.
|
||||
|
||||
That is it, whenever you start a new project just add the OpenCV user library that you have defined
|
||||
to your project and you are good to go. Enjoy your powerful, less painful development environment :)
|
||||
|
||||
|
@@ -1,17 +1,16 @@
|
||||
Using OpenCV with Eclipse (plugin CDT) {#tutorial_linux_eclipse}
|
||||
======================================
|
||||
|
||||
@note Two ways, one by forming a project directly, and another by CMake Prerequisites
|
||||
===============
|
||||
|
||||
Prerequisites
|
||||
-------------
|
||||
Two ways, one by forming a project directly, and another by CMake Prerequisites
|
||||
1. Having installed [Eclipse](http://www.eclipse.org/) in your workstation (only the CDT plugin for
|
||||
C/C++ is needed). You can follow the following steps:
|
||||
- Go to the Eclipse site
|
||||
- Download [Eclipse IDE for C/C++
|
||||
Developers](http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/heliossr2) .
|
||||
Choose the link according to your workstation.
|
||||
|
||||
2. Having installed OpenCV. If not yet, go @ref here \<Linux-Installation\>.
|
||||
2. Having installed OpenCV. If not yet, go @ref tutorial_linux_install "here".
|
||||
|
||||
Making a project
|
||||
----------------
|
||||
@@ -75,46 +74,47 @@ Making a project
|
||||
- Go to **Project--\>Properties**
|
||||
- In **C/C++ Build**, click on **Settings**. At the right, choose the **Tool Settings** Tab.
|
||||
Here we will enter the headers and libraries info:
|
||||
a. In **GCC C++ Compiler**, go to **Includes**. In **Include paths(-l)** you should
|
||||
-# In **GCC C++ Compiler**, go to **Includes**. In **Include paths(-l)** you should
|
||||
include the path of the folder where opencv was installed. In our example, this is
|
||||
/usr/local/include/opencv.
|
||||
|
||||
|
||||

|
||||
|
||||
@note If you do not know where your opencv files are, open the **Terminal** and type:
|
||||
@code{.bash}
|
||||
pkg-config --cflags opencv
|
||||
@endcode
|
||||
For instance, that command gave me this output:
|
||||
@code{.bash}
|
||||
-I/usr/local/include/opencv -I/usr/local/include
|
||||
@endcode
|
||||
b. Now go to **GCC C++ Linker**,there you have to fill two spaces:
|
||||
|
||||
First in **Library search path (-L)** you have to write the path to where the opencv libraries
|
||||
reside, in my case the path is: :
|
||||
@note If you do not know where your opencv files are, open the **Terminal** and type:
|
||||
@code{.bash}
|
||||
pkg-config --cflags opencv
|
||||
@endcode
|
||||
For instance, that command gave me this output:
|
||||
@code{.bash}
|
||||
-I/usr/local/include/opencv -I/usr/local/include
|
||||
@endcode
|
||||
|
||||
/usr/local/lib
|
||||
-# Now go to **GCC C++ Linker**,there you have to fill two spaces:
|
||||
|
||||
Then in **Libraries(-l)** add the OpenCV libraries that you may need. Usually just the 3 first
|
||||
on the list below are enough (for simple applications) . In my case, I am putting all of them
|
||||
since I plan to use the whole bunch:
|
||||
First in **Library search path (-L)** you have to write the path to where the opencv libraries
|
||||
reside, in my case the path is: :
|
||||
|
||||
opencv_core opencv_imgproc opencv_highgui opencv_ml opencv_video opencv_features2d
|
||||
opencv_calib3d opencv_objdetect opencv_contrib opencv_legacy opencv_flann
|
||||
/usr/local/lib
|
||||
|
||||

|
||||
Then in **Libraries(-l)** add the OpenCV libraries that you may need. Usually just the 3 first
|
||||
on the list below are enough (for simple applications) . In my case, I am putting all of them
|
||||
since I plan to use the whole bunch:
|
||||
|
||||
If you don't know where your libraries are (or you are just psychotic and want to make sure
|
||||
the path is fine), type in **Terminal**:
|
||||
@code{.bash}
|
||||
pkg-config --libs opencv
|
||||
@endcode
|
||||
My output (in case you want to check) was: .. code-block:: bash
|
||||
opencv_core opencv_imgproc opencv_highgui opencv_ml opencv_video opencv_features2d
|
||||
opencv_calib3d opencv_objdetect opencv_contrib opencv_legacy opencv_flann
|
||||
|
||||
-L/usr/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann
|
||||

|
||||
|
||||
Now you are done. Click **OK**
|
||||
If you don't know where your libraries are (or you are just psychotic and want to make sure
|
||||
the path is fine), type in **Terminal**:
|
||||
@code{.bash}
|
||||
pkg-config --libs opencv
|
||||
@endcode
|
||||
My output (in case you want to check) was:
|
||||
@code{.bash}
|
||||
-L/usr/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann
|
||||
@endcode
|
||||
Now you are done. Click **OK**
|
||||
|
||||
- Your project should be ready to be built. For this, go to **Project-\>Build all**
|
||||
|
||||
@@ -171,7 +171,7 @@ int main ( int argc, char **argv )
|
||||
}
|
||||
@endcode
|
||||
1. Create a build directory, say, under *foo*: mkdir /build. Then cd build.
|
||||
2. Put a *CmakeLists.txt* file in build:
|
||||
2. Put a `CmakeLists.txt` file in build:
|
||||
@code{.bash}
|
||||
PROJECT( helloworld_proj )
|
||||
FIND_PACKAGE( OpenCV REQUIRED )
|
||||
@@ -180,21 +180,20 @@ TARGET_LINK_LIBRARIES( helloworld \f${OpenCV_LIBS} )
|
||||
@endcode
|
||||
1. Run: cmake-gui .. and make sure you fill in where opencv was built.
|
||||
2. Then click configure and then generate. If it's OK, **quit cmake-gui**
|
||||
3. Run make -j4 *(the -j4 is optional, it just tells the compiler to build in 4 threads)*. Make
|
||||
3. Run `make -j4` (the -j4 is optional, it just tells the compiler to build in 4 threads). Make
|
||||
sure it builds.
|
||||
4. Start eclipse . Put the workspace in some directory but **not** in foo or foo\\\\build
|
||||
4. Start eclipse. Put the workspace in some directory but **not** in foo or `foo\build`
|
||||
5. Right click in the Project Explorer section. Select Import And then open the C/C++ filter.
|
||||
Choose *Existing Code* as a Makefile Project\`\`
|
||||
6. Name your project, say *helloworld*. Browse to the Existing Code location foo\\\\build (where
|
||||
Choose *Existing Code* as a Makefile Project.
|
||||
6. Name your project, say *helloworld*. Browse to the Existing Code location `foo\build` (where
|
||||
you ran your cmake-gui from). Select *Linux GCC* in the *"Toolchain for Indexer Settings"* and
|
||||
press *Finish*.
|
||||
7. Right click in the Project Explorer section. Select Properties. Under C/C++ Build, set the
|
||||
*build directory:* from something like \\f${workspace_loc:/helloworld} to
|
||||
\\f${workspace_loc:/helloworld}/build since that's where you are building to.
|
||||
*build directory:* from something like `${workspace_loc:/helloworld}` to
|
||||
`${workspace_loc:/helloworld}/build` since that's where you are building to.
|
||||
|
||||
a. You can also optionally modify the Build command: from make to something like
|
||||
make VERBOSE=1 -j4 which tells the compiler to produce detailed symbol files for debugging and
|
||||
also to compile in 4 parallel threads.
|
||||
|
||||
1. Done!
|
||||
-# You can also optionally modify the Build command: from make to something like
|
||||
`make VERBOSE=1 -j4` which tells the compiler to produce detailed symbol files for debugging and
|
||||
also to compile in 4 parallel threads.
|
||||
|
||||
8. Done!
|
||||
|
@@ -127,10 +127,9 @@ Building OpenCV from Source Using CMake
|
||||
@code{.bash}
|
||||
<cmake_build_dir>/bin/opencv_test_core
|
||||
@endcode
|
||||
|
||||
@note
|
||||
If the size of the created library is a critical issue (like in case of an Android build) you
|
||||
can use the install/strip command to get the smallest size as possible. The *stripped* version
|
||||
appears to be twice as small. However, we do not recommend using this unless those extra
|
||||
megabytes do really matter.
|
||||
|
||||
|
||||
|
@@ -3,7 +3,7 @@ Load, Modify, and Save an Image {#tutorial_load_save_image}
|
||||
|
||||
@note
|
||||
We assume that by now you know how to load an image using @ref cv::imread and to display it in a
|
||||
window (using @ref cv::imshow ). Read the @ref Display_Image tutorial otherwise.
|
||||
window (using @ref cv::imshow ). Read the @ref tutorial_display_image tutorial otherwise.
|
||||
|
||||
Goals
|
||||
-----
|
||||
@@ -103,4 +103,3 @@ And if you check in your folder (in my case *images*), you should have a newly .
|
||||

|
||||
|
||||
Congratulations, you are done with this tutorial!
|
||||
|
||||
|
@@ -6,13 +6,13 @@ relatively modern version of Windows OS. If you encounter errors after following
|
||||
below, feel free to contact us via our [OpenCV Q&A forum](http://answers.opencv.org). We'll do our
|
||||
best to help you out.
|
||||
|
||||
@note To use the OpenCV library you have two options: @ref Windows_Install_Prebuild or @ref
|
||||
CppTutWindowsMakeOwn. While the first one is easier to complete, it only works if you are coding
|
||||
@note To use the OpenCV library you have two options: @ref tutorial_windows_install_prebuilt or
|
||||
@ref tutorial_windows_install_build. While the first one is easier to complete, it only works if you are coding
|
||||
with the latest Microsoft Visual Studio IDE and doesn't take advantage of the most advanced
|
||||
technologies we integrate into our library. .. _Windows_Install_Prebuild:
|
||||
|
||||
Installation by Using the Pre-built Libraries
|
||||
---------------------------------------------
|
||||
Installation by Using the Pre-built Libraries {#tutorial_windows_install_prebuilt}
|
||||
=============================================
|
||||
|
||||
1. Launch a web browser of choice and go to our [page on
|
||||
Sourceforge](http://sourceforge.net/projects/opencvlibrary/files/opencv-win/).
|
||||
@@ -22,14 +22,13 @@ Installation by Using the Pre-built Libraries
|
||||
|
||||

|
||||
|
||||
5. To finalize the installation go to the @ref WindowsSetPathAndEnviromentVariable section.
|
||||
5. To finalize the installation go to the @ref tutorial_windows_install_path section.
|
||||
|
||||
Installation by Making Your Own Libraries from the Source Files
|
||||
---------------------------------------------------------------
|
||||
Installation by Making Your Own Libraries from the Source Files {#tutorial_windows_install_build}
|
||||
===============================================================
|
||||
|
||||
You may find the content of this tutorial also inside the following videos: [Part
|
||||
1](https://www.youtube.com/watch?v=NnovZ1cTlMs) and [Part
|
||||
2](https://www.youtube.com/watch?v=qGNWMcfWwPU), hosted on YouTube.
|
||||
You may find the content of this tutorial also inside the following videos:
|
||||
[Part 1](https://www.youtube.com/watch?v=NnovZ1cTlMs) and [Part 2](https://www.youtube.com/watch?v=qGNWMcfWwPU), hosted on YouTube.
|
||||
|
||||
\htmlonly
|
||||
<div align="center">
|
||||
@@ -37,6 +36,7 @@ You may find the content of this tutorial also inside the following videos: [Par
|
||||
<iframe title="Install OpenCV by using its source files - Part 2" width="560" height="349" src="http://www.youtube.com/embed/qGNWMcfWwPU?rel=0&loop=1" frameborder="0" allowfullscreen align="middle"></iframe>
|
||||
</div>
|
||||
\endhtmlonly
|
||||
|
||||
**warning**
|
||||
|
||||
These videos above are long-obsolete and contain inaccurate information. Be careful, since
|
||||
@@ -50,10 +50,10 @@ Building the OpenCV library from scratch requires a couple of tools installed be
|
||||
- An IDE of choice (preferably), or just a CC++ compiler that will actually make the binary files.
|
||||
Here we will use the [Microsoft Visual Studio](https://www.microsoft.com/visualstudio/en-us).
|
||||
However, you can use any other IDE that has a valid CC++ compiler.
|
||||
- CMake_, which is a neat tool to make the project files (for your chosen IDE) from the OpenCV
|
||||
- [CMake](http://www.cmake.org/cmake/resources/software.html), which is a neat tool to make the project files (for your chosen IDE) from the OpenCV
|
||||
source files. It will also allow an easy configuration of the OpenCV build files, in order to
|
||||
make binary files that fits exactly to your needs.
|
||||
- Git to acquire the OpenCV source files. A good tool for this is TortoiseGit_. Alternatively,
|
||||
- Git to acquire the OpenCV source files. A good tool for this is [TortoiseGit](http://code.google.com/p/tortoisegit/wiki/Download). Alternatively,
|
||||
you can just download an archived version of the source files from our [page on
|
||||
Sourceforge](http://sourceforge.net/projects/opencvlibrary/files/opencv-win/)
|
||||
|
||||
@@ -62,35 +62,35 @@ Nevertheless, there is a couple of tools, libraries made by 3rd parties that off
|
||||
the OpenCV may take advantage. These will improve its capabilities in many ways. In order to use any
|
||||
of them, you need to download and install them on your system.
|
||||
|
||||
- The Python libraries_ are required to build the *Python interface* of OpenCV. For now use the
|
||||
- The [Python libraries](http://www.python.org/downloads/) are required to build the *Python interface* of OpenCV. For now use the
|
||||
version `2.7.{x}`. This is also a must if you want to build the *OpenCV documentation*.
|
||||
- Numpy_ is a scientific computing package for Python. Required for the *Python interface*.
|
||||
- Intel |copy| Threading Building Blocks (*TBB*)_ is used inside OpenCV for parallel code
|
||||
- [Numpy](http://numpy.scipy.org/) is a scientific computing package for Python. Required for the *Python interface*.
|
||||
- [Intel Threading Building Blocks (*TBB*)](http://threadingbuildingblocks.org/file.php?fid=77) is used inside OpenCV for parallel code
|
||||
snippets. Using this will make sure that the OpenCV library will take advantage of all the cores
|
||||
you have in your systems CPU.
|
||||
- Intel |copy| Integrated Performance Primitives (*IPP*)_ may be used to improve the performance
|
||||
- [Intel Integrated Performance Primitives (*IPP*)](http://software.intel.com/en-us/articles/intel-ipp/) may be used to improve the performance
|
||||
of color conversion, Haar training and DFT functions of the OpenCV library. Watch out, since
|
||||
this isn't a free service.
|
||||
- Intel |copy| IPP Asynchronous C/C++_ is currently focused delivering Intel |copy| Graphics
|
||||
- [Intel IPP Asynchronous C/C++](http://software.intel.com/en-us/intel-ipp-preview) is currently focused delivering Intel Graphics
|
||||
support for advanced image processing and computer vision functions.
|
||||
- OpenCV offers a somewhat fancier and more useful graphical user interface, than the default one
|
||||
by using the Qt framework_. For a quick overview of what this has to offer look into the
|
||||
by using the [Qt framework](http://qt.nokia.com/downloads). For a quick overview of what this has to offer look into the
|
||||
documentations *highgui* module, under the *Qt New Functions* section. Version 4.6 or later of
|
||||
the framework is required.
|
||||
- Eigen_ is a C++ template library for linear algebra.
|
||||
- The latest CUDA Toolkit_ will allow you to use the power lying inside your GPU. This will
|
||||
- [Eigen](http://eigen.tuxfamily.org/index.php?title=Main_Page#Download) is a C++ template library for linear algebra.
|
||||
- The latest [CUDA Toolkit](http://developer.nvidia.com/cuda-downloads) will allow you to use the power lying inside your GPU. This will
|
||||
drastically improve performance for some algorithms (e.g the HOG descriptor). Getting more and
|
||||
more of our algorithms to work on the GPUs is a constant effort of the OpenCV team.
|
||||
- OpenEXR_ source files are required for the library to work with this high dynamic range (HDR)
|
||||
- [OpenEXR](http://www.openexr.com/downloads.html) source files are required for the library to work with this high dynamic range (HDR)
|
||||
image file format.
|
||||
- The OpenNI Framework_ contains a set of open source APIs that provide support for natural
|
||||
- The [OpenNI Framework](http://www.openni.org/) contains a set of open source APIs that provide support for natural
|
||||
interaction with devices via methods such as voice command recognition, hand gestures and body
|
||||
motion tracking.
|
||||
- Miktex_ is the best [TEX](https://secure.wikimedia.org/wikipedia/en/wiki/TeX) implementation on
|
||||
- [Miktex]( http://miktex.org/2.9/setup) is the best [TEX](https://secure.wikimedia.org/wikipedia/en/wiki/TeX) implementation on
|
||||
the Windows OS. It is required to build the *OpenCV documentation*.
|
||||
- Sphinx_ is a python documentation generator and is the tool that will actually create the
|
||||
- [Sphinx](http://sphinx.pocoo.org/) is a python documentation generator and is the tool that will actually create the
|
||||
*OpenCV documentation*. This on its own requires a couple of tools installed, We will cover this
|
||||
in depth at the @ref How to Install Sphinx \<HereInstallSphinx\> section.
|
||||
in depth at the @ref tutorial_windows_install_sphinx "How to Install Sphinx" section.
|
||||
|
||||
Now we will describe the steps to follow for a full build (using all the above frameworks, tools and
|
||||
libraries). If you do not need the support for some of these you can just freely skip this section.
|
||||
@@ -99,31 +99,32 @@ libraries). If you do not need the support for some of these you can just freely
|
||||
|
||||
1. Make sure you have a working IDE with a valid compiler. In case of the Microsoft Visual Studio
|
||||
just install it and make sure it starts up.
|
||||
2. Install CMake_. Simply follow the wizard, no need to add it to the path. The default install
|
||||
2. Install [CMake](http://www.cmake.org/cmake/resources/software.html). Simply follow the wizard, no need to add it to the path. The default install
|
||||
options are OK.
|
||||
3. Download and install an up-to-date version of msysgit from its [official
|
||||
site](http://code.google.com/p/msysgit/downloads/list). There is also the portable version,
|
||||
which you need only to unpack to get access to the console version of Git. Supposing that for
|
||||
some of us it could be quite enough.
|
||||
4. Install TortoiseGit_. Choose the 32 or 64 bit version according to the type of OS you work in.
|
||||
4. Install [TortoiseGit](http://code.google.com/p/tortoisegit/wiki/Download). Choose the 32 or 64 bit version according to the type of OS you work in.
|
||||
While installing, locate your msysgit (if it doesn't do that automatically). Follow the
|
||||
wizard -- the default options are OK for the most part.
|
||||
5. Choose a directory in your file system, where you will download the OpenCV libraries to. I
|
||||
recommend creating a new one that has short path and no special charachters in it, for example
|
||||
`D:/OpenCV`. For this tutorial I'll suggest you do so. If you use your own path and know, what
|
||||
you're doing -- it's OK.
|
||||
a) Clone the repository to the selected directory. After clicking *Clone* button, a window will
|
||||
-# Clone the repository to the selected directory. After clicking *Clone* button, a window will
|
||||
appear where you can select from what repository you want to download source files
|
||||
(<https://github.com/Itseez/opencv.git>) and to what directory (`D:/OpenCV`).
|
||||
b) Push the OK button and be patient as the repository is quite a heavy download. It will take
|
||||
-# Push the OK button and be patient as the repository is quite a heavy download. It will take
|
||||
some time depending on your Internet connection.
|
||||
|
||||
6. In this section I will cover installing the 3rd party libraries.
|
||||
a) Download the Python libraries_ and install it with the default options. You will need a
|
||||
-# Download the [Python libraries](http://www.python.org/downloads/) and install it with the default options. You will need a
|
||||
couple other python extensions. Luckily installing all these may be automated by a nice tool
|
||||
called [Setuptools](http://pypi.python.org/pypi/setuptools#downloads). Download and install
|
||||
again.
|
||||
b) Installing Sphinx is easy once you have installed *Setuptools*. This contains a little
|
||||
@anchor tutorial_windows_install_sphinx
|
||||
-# Installing Sphinx is easy once you have installed *Setuptools*. This contains a little
|
||||
application that will automatically connect to the python databases and download the latest
|
||||
version of many python scripts. Start up a command window (enter *cmd* into the windows
|
||||
start menu and press enter) and use the *CD* command to navigate to your Python folders
|
||||
@@ -134,86 +135,88 @@ libraries). If you do not need the support for some of these you can just freely
|
||||
|
||||

|
||||
|
||||
@note
|
||||
The *CD* navigation command works only inside a drive. For example if you are somewhere in the
|
||||
*C:* drive you cannot use it this to go to another drive (like for example *D:*). To do so you
|
||||
first need to change drives letters. For this simply enter the command *D:*. Then you can use
|
||||
the *CD* to navigate to specific folder inside the drive. Bonus tip: you can clear the screen by
|
||||
using the *CLS* command.
|
||||
@note
|
||||
The *CD* navigation command works only inside a drive. For example if you are somewhere in the
|
||||
*C:* drive you cannot use it this to go to another drive (like for example *D:*). To do so you
|
||||
first need to change drives letters. For this simply enter the command *D:*. Then you can use
|
||||
the *CD* to navigate to specific folder inside the drive. Bonus tip: you can clear the screen by
|
||||
using the *CLS* command.
|
||||
|
||||
This will also install its prerequisites [Jinja2](http://jinja.pocoo.org/docs/) and
|
||||
[Pygments](http://pygments.org/).
|
||||
This will also install its prerequisites [Jinja2](http://jinja.pocoo.org/docs/) and
|
||||
[Pygments](http://pygments.org/).
|
||||
|
||||
1) The easiest way to install Numpy_ is to just download its binaries from the [sourceforga
|
||||
page](http://sourceforge.net/projects/numpy/files/NumPy/). Make sure your download and install
|
||||
exactly the binary for your python version (so for version `2.7`).
|
||||
2) Download the Miktex_ and install it. Again just follow the wizard. At the fourth step make
|
||||
sure you select for the *"Install missing packages on-the-fly"* the *Yes* option, as you can
|
||||
see on the image below. Again this will take quite some time so be patient.
|
||||
-# The easiest way to install Numpy is to just download its binaries from the [sourceforge page](http://sourceforge.net/projects/numpy/files/NumPy/).
|
||||
Make sure your download and install
|
||||
exactly the binary for your python version (so for version `2.7`).
|
||||
-# Download the [Miktex](http://miktex.org/2.9/setup) and install it. Again just follow the wizard. At the fourth step make
|
||||
sure you select for the *"Install missing packages on-the-fly"* the *Yes* option, as you can
|
||||
see on the image below. Again this will take quite some time so be patient.
|
||||
|
||||

|
||||

|
||||
|
||||
3) For the Intel |copy| Threading Building Blocks (*TBB*)_ download the source files and extract
|
||||
it inside a directory on your system. For example let there be `D:/OpenCV/dep`. For installing
|
||||
the Intel |copy| Integrated Performance Primitives (*IPP*)_ the story is the same. For
|
||||
exctracting the archives I recommend using the [7-Zip](http://www.7-zip.org/) application.
|
||||
-# For the [Intel Threading Building Blocks (*TBB*)](http://threadingbuildingblocks.org/file.php?fid=77)
|
||||
download the source files and extract
|
||||
it inside a directory on your system. For example let there be `D:/OpenCV/dep`. For installing
|
||||
the [Intel Integrated Performance Primitives (*IPP*)](http://software.intel.com/en-us/articles/intel-ipp/)
|
||||
the story is the same. For
|
||||
exctracting the archives I recommend using the [7-Zip](http://www.7-zip.org/) application.
|
||||
|
||||

|
||||

|
||||
|
||||
4) For the Intel |copy| IPP Asynchronous C/C++_ download the source files and set environment
|
||||
variable **IPP_ASYNC_ROOT**. It should point to
|
||||
`<your Program Files(x86) directory>/Intel/IPP Preview */ipp directory`. Here \* denotes the
|
||||
particular preview name.
|
||||
5) In case of the Eigen_ library it is again a case of download and extract to the
|
||||
`D:/OpenCV/dep` directory.
|
||||
6) Same as above with OpenEXR_.
|
||||
7) For the OpenNI Framework_ you need to install both the [development
|
||||
build](http://www.openni.org/downloadfiles/opennimodules/openni-binaries/21-stable) and the
|
||||
[PrimeSensor
|
||||
Module](http://www.openni.org/downloadfiles/opennimodules/openni-compliant-hardware-binaries/32-stable).
|
||||
8) For the CUDA you need again two modules: the latest CUDA Toolkit_ and the *CUDA Tools SDK*.
|
||||
Download and install both of them with a *complete* option by using the 32 or 64 bit setups
|
||||
according to your OS.
|
||||
9) In case of the Qt framework_ you need to build yourself the binary files (unless you use the
|
||||
Microsoft Visual Studio 2008 with 32 bit compiler). To do this go to the [Qt
|
||||
Downloads](http://qt.nokia.com/downloads) page. Download the source files (not the
|
||||
installers!!!):
|
||||
-# For the [Intel IPP Asynchronous C/C++](http://software.intel.com/en-us/intel-ipp-preview) download the source files and set environment
|
||||
variable **IPP_ASYNC_ROOT**. It should point to
|
||||
`<your Program Files(x86) directory>/Intel/IPP Preview */ipp directory`. Here \* denotes the
|
||||
particular preview name.
|
||||
-# In case of the [Eigen](http://eigen.tuxfamily.org/index.php?title=Main_Page#Download) library it is again a case of download and extract to the
|
||||
`D:/OpenCV/dep` directory.
|
||||
-# Same as above with [OpenEXR](http://www.openexr.com/downloads.html).
|
||||
-# For the [OpenNI Framework](http://www.openni.org/) you need to install both the [development
|
||||
build](http://www.openni.org/downloadfiles/opennimodules/openni-binaries/21-stable) and the
|
||||
[PrimeSensor
|
||||
Module](http://www.openni.org/downloadfiles/opennimodules/openni-compliant-hardware-binaries/32-stable).
|
||||
-# For the CUDA you need again two modules: the latest [CUDA Toolkit](http://developer.nvidia.com/cuda-downloads) and the *CUDA Tools SDK*.
|
||||
Download and install both of them with a *complete* option by using the 32 or 64 bit setups
|
||||
according to your OS.
|
||||
-# In case of the Qt framework you need to build yourself the binary files (unless you use the
|
||||
Microsoft Visual Studio 2008 with 32 bit compiler). To do this go to the [Qt
|
||||
Downloads](http://qt.nokia.com/downloads) page. Download the source files (not the
|
||||
installers!!!):
|
||||
|
||||

|
||||

|
||||
|
||||
Extract it into a nice and short named directory like `D:/OpenCV/dep/qt/` . Then you need to
|
||||
build it. Start up a *Visual* *Studio* *Command* *Prompt* (*2010*) by using the start menu
|
||||
search (or navigate through the start menu
|
||||
All Programs --\> Microsoft Visual Studio 2010 --\> Visual Studio Tools --\> Visual Studio Command Prompt (2010)).
|
||||
Extract it into a nice and short named directory like `D:/OpenCV/dep/qt/` . Then you need to
|
||||
build it. Start up a *Visual* *Studio* *Command* *Prompt* (*2010*) by using the start menu
|
||||
search (or navigate through the start menu
|
||||
All Programs --\> Microsoft Visual Studio 2010 --\> Visual Studio Tools --\> Visual Studio Command Prompt (2010)).
|
||||
|
||||

|
||||

|
||||
|
||||
Now navigate to the extracted folder and enter inside it by using this console window. You
|
||||
should have a folder containing files like *Install*, *Make* and so on. Use the *dir* command
|
||||
to list files inside your current directory. Once arrived at this directory enter the
|
||||
following command:
|
||||
@code{.bash}
|
||||
configure.exe -release -no-webkit -no-phonon -no-phonon-backend -no-script -no-scripttools
|
||||
-no-qt3support -no-multimedia -no-ltcg
|
||||
@endcode
|
||||
Completing this will take around 10-20 minutes. Then enter the next command that will take a
|
||||
lot longer (can easily take even more than a full hour):
|
||||
@code{.bash}
|
||||
nmake
|
||||
@endcode
|
||||
After this set the Qt enviroment variables using the following command on Windows 7:
|
||||
@code{.bash}
|
||||
setx -m QTDIR D:/OpenCV/dep/qt/qt-everywhere-opensource-src-4.7.3
|
||||
@endcode
|
||||
Also, add the built binary files path to the system path by using the |PathEditor|_. In our
|
||||
case this is `D:/OpenCV/dep/qt/qt-everywhere-opensource-src-4.7.3/bin`.
|
||||
Now navigate to the extracted folder and enter inside it by using this console window. You
|
||||
should have a folder containing files like *Install*, *Make* and so on. Use the *dir* command
|
||||
to list files inside your current directory. Once arrived at this directory enter the
|
||||
following command:
|
||||
@code{.bash}
|
||||
configure.exe -release -no-webkit -no-phonon -no-phonon-backend -no-script -no-scripttools
|
||||
-no-qt3support -no-multimedia -no-ltcg
|
||||
@endcode
|
||||
Completing this will take around 10-20 minutes. Then enter the next command that will take a
|
||||
lot longer (can easily take even more than a full hour):
|
||||
@code{.bash}
|
||||
nmake
|
||||
@endcode
|
||||
After this set the Qt enviroment variables using the following command on Windows 7:
|
||||
@code{.bash}
|
||||
setx -m QTDIR D:/OpenCV/dep/qt/qt-everywhere-opensource-src-4.7.3
|
||||
@endcode
|
||||
Also, add the built binary files path to the system path by using the [PathEditor](http://www.redfernplace.com/software-projects/patheditor/). In our
|
||||
case this is `D:/OpenCV/dep/qt/qt-everywhere-opensource-src-4.7.3/bin`.
|
||||
|
||||
@note
|
||||
If you plan on doing Qt application development you can also install at this point the *Qt
|
||||
Visual Studio Add-in*. After this you can make and build Qt applications without using the *Qt
|
||||
Creator*. Everything is nicely integrated into Visual Studio.
|
||||
@note
|
||||
If you plan on doing Qt application development you can also install at this point the *Qt
|
||||
Visual Studio Add-in*. After this you can make and build Qt applications without using the *Qt
|
||||
Creator*. Everything is nicely integrated into Visual Studio.
|
||||
|
||||
1. Now start the *CMake (cmake-gui)*. You may again enter it in the start menu search or get it
|
||||
7. Now start the *CMake (cmake-gui)*. You may again enter it in the start menu search or get it
|
||||
from the All Programs --\> CMake 2.8 --\> CMake (cmake-gui). First, select the directory for the
|
||||
source files of the OpenCV library (1). Then, specify a directory where you will build the
|
||||
binary files for OpenCV (2).
|
||||
@@ -307,8 +310,8 @@ This will also install its prerequisites [Jinja2](http://jinja.pocoo.org/docs/)
|
||||
|
||||
To test your build just go into the `Build/bin/Debug` or `Build/bin/Release` directory and start
|
||||
a couple of applications like the *contours.exe*. If they run, you are done. Otherwise,
|
||||
something definitely went awfully wrong. In this case you should contact us at our @ref cv::Q&A
|
||||
forum . If everything is okay the *contours.exe* output should resemble the following image (if
|
||||
something definitely went awfully wrong. In this case you should contact us at our [Q&A forum](http://answers.opencv.org/).
|
||||
If everything is okay the *contours.exe* output should resemble the following image (if
|
||||
built with Qt support):
|
||||
|
||||

|
||||
@@ -319,18 +322,18 @@ This will also install its prerequisites [Jinja2](http://jinja.pocoo.org/docs/)
|
||||
caused mostly by old video card drivers. For testing the GPU (if built) run the
|
||||
*performance_gpu.exe* sample application.
|
||||
|
||||
Set the OpenCV enviroment variable and add it to the systems path
|
||||
-----------------------------------------------------------------
|
||||
Set the OpenCV enviroment variable and add it to the systems path {#tutorial_windows_install_path}
|
||||
=================================================================
|
||||
|
||||
First we set an enviroment variable to make easier our work. This will hold the build directory of
|
||||
our OpenCV library that we use in our projects. Start up a command window and enter:
|
||||
|
||||
@code
|
||||
setx -m OPENCV_DIR D:\OpenCV\Build\x86\vc10 (suggested for Visual Studio 2010 - 32 bit Windows)
|
||||
setx -m OPENCV_DIR D:\OpenCV\Build\x64\vc10 (suggested for Visual Studio 2010 - 64 bit Windows)
|
||||
|
||||
setx -m OPENCV_DIR D:\OpenCV\Build\x86\vc11 (suggested for Visual Studio 2012 - 32 bit Windows)
|
||||
setx -m OPENCV_DIR D:\OpenCV\Build\x64\vc11 (suggested for Visual Studio 2012 - 64 bit Windows)
|
||||
|
||||
@endcode
|
||||
Here the directory is where you have your OpenCV binaries (*extracted* or *built*). You can have
|
||||
different platform (e.g. x64 instead of x86) or compiler type, so substitute appropriate value.
|
||||
Inside this you should have two folders called *lib* and *bin*. The -m should be added if you wish
|
||||
@@ -344,10 +347,11 @@ However, to do this the operating system needs to know where they are. The syste
|
||||
a list of folders where DLLs can be found. Add the OpenCV library path to this and the OS will know
|
||||
where to look if he ever needs the OpenCV binaries. Otherwise, you will need to copy the used DLLs
|
||||
right beside the applications executable file (*exe*) for the OS to find it, which is highly
|
||||
unpleasent if you work on many projects. To do this start up again the |PathEditor|_ and add the
|
||||
unpleasent if you work on many projects. To do this start up again the [PathEditor](http://www.redfernplace.com/software-projects/patheditor/) and add the
|
||||
following new entry (right click in the application to bring up the menu):
|
||||
|
||||
@code
|
||||
%OPENCV_DIR%\bin
|
||||
@endcode
|
||||
|
||||

|
||||
|
||||
@@ -357,7 +361,6 @@ Save it to the registry and you are done. If you ever change the location of you
|
||||
or want to try out your applicaton with a different build all you will need to do is to update the
|
||||
OPENCV_DIR variable via the *setx* command inside a command window.
|
||||
|
||||
Now you can continue reading the tutorials with the @ref Windows_Visual_Studio_How_To section.
|
||||
Now you can continue reading the tutorials with the @ref tutorial_windows_visual_studio_Opencv section.
|
||||
There you will find out how to use the OpenCV library in your own projects with the help of the
|
||||
Microsoft Visual Studio IDE.
|
||||
|
||||
|
@@ -1,23 +1,23 @@
|
||||
How to build applications with OpenCV inside the *Microsoft Visual Studio* {#tutorial_windows_visual_studio_Opencv}
|
||||
How to build applications with OpenCV inside the "Microsoft Visual Studio" {#tutorial_windows_visual_studio_Opencv}
|
||||
==========================================================================
|
||||
|
||||
Everything I describe here will apply to the C\\C++ interface of OpenCV. I start out from the
|
||||
assumption that you have read and completed with success the @ref Windows_Installation tutorial.
|
||||
assumption that you have read and completed with success the @ref tutorial_windows_install tutorial.
|
||||
Therefore, before you go any further make sure you have an OpenCV directory that contains the OpenCV
|
||||
header files plus binaries and you have set the environment variables as @ref described here
|
||||
\<WindowsSetPathAndEnviromentVariable\>.
|
||||
header files plus binaries and you have set the environment variables as described here
|
||||
@ref tutorial_windows_install_path.
|
||||
|
||||

|
||||
|
||||
The OpenCV libraries, distributed by us, on the Microsoft Windows operating system are in a
|
||||
**D**ynamic **L**inked **L**ibraries (*DLL*). These have the advantage that all the content of the
|
||||
Dynamic Linked Libraries (*DLL*). These have the advantage that all the content of the
|
||||
library are loaded only at runtime, on demand, and that countless programs may use the same library
|
||||
file. This means that if you have ten applications using the OpenCV library, no need to have around
|
||||
a version for each one of them. Of course you need to have the *dll* of the OpenCV on all systems
|
||||
where you want to run your application.
|
||||
|
||||
Another approach is to use static libraries that have *lib* extensions. You may build these by using
|
||||
our source files as described in the @ref Windows_Installation tutorial. When you use this the
|
||||
our source files as described in the @ref tutorial_windows_install tutorial. When you use this the
|
||||
library will be built-in inside your *exe* file. So there is no chance that the user deletes them,
|
||||
for some reason. As a drawback your application will be larger one and as, it will take more time to
|
||||
load it during its startup.
|
||||
@@ -103,13 +103,14 @@ further to someone else who has a different OpenCV install path. Moreover, fixin
|
||||
to manually modifying every explicit path. A more elegant solution is to use the environment
|
||||
variables. Anything that you put inside a parenthesis started with a dollar sign will be replaced at
|
||||
runtime with the current environment variables value. Here comes in play the environment variable
|
||||
setting we already made in our @ref previous tutorial \<WindowsSetPathAndEnviromentVariable\>.
|
||||
setting we already made in our previous tutorial @ref tutorial_windows_install_path.
|
||||
|
||||
Next go to the Linker --\> General and under the *"Additional Library Directories"* add the libs
|
||||
directory:
|
||||
@code{.bash}
|
||||
\f$(OPENCV_DIR)\lib
|
||||
$(OPENCV_DIR)\lib
|
||||
@endcode
|
||||
|
||||

|
||||
|
||||
Then you need to specify the libraries in which the linker should look into. To do this go to the
|
||||
@@ -233,5 +234,4 @@ cumbersome task. Luckily, in the Visual Studio there is a menu to automate all t
|
||||
|
||||
Specify here the name of the inputs and while you start your application from the Visual Studio
|
||||
enviroment you have automatic argument passing. In the next introductionary tutorial you'll see an
|
||||
in-depth explanation of the upper source code: @ref Display_Image.
|
||||
|
||||
in-depth explanation of the upper source code: @ref tutorial_display_image.
|
||||
|
@@ -12,9 +12,8 @@ This tutorial assumes that you have the following available:
|
||||
|
||||
1. Visual Studio 2012 Professional (or better) with Update 1 installed. Update 1 can be downloaded
|
||||
[here](http://www.microsoft.com/en-us/download/details.aspx?id=35774).
|
||||
2. An OpenCV installation on your Windows machine (Tutorial: @ref Windows_Installation).
|
||||
3. Ability to create and build OpenCV projects in Visual Studio (Tutorial: @ref
|
||||
Windows_Visual_Studio_How_To).
|
||||
2. An OpenCV installation on your Windows machine (Tutorial: @ref tutorial_windows_install).
|
||||
3. Ability to create and build OpenCV projects in Visual Studio (Tutorial: @ref tutorial_windows_visual_studio_Opencv).
|
||||
|
||||
Installation
|
||||
------------
|
||||
@@ -178,4 +177,3 @@ Documentation](http://go.microsoft.com/fwlink/?LinkId=285461) for details--you a
|
||||
documentation page by clicking on the *Help* link in the Image Watch window:
|
||||
|
||||

|
||||
|
||||
|
Reference in New Issue
Block a user