OpenCV

De system.co.free.fr.
(Différences entre les versions)
Ligne 23 : Ligne 23 :
2013/01/10 ligne de commande de préparation à la compilation cmake: <br>
2013/01/10 ligne de commande de préparation à la compilation cmake: <br>
-
   cd /home/franck/DataCenter/projets/OpenCV/OpenCV-2.4.2/OpenCV.build
+
   mkdir OpenCV-2.4.2/OpenCV.build
   cmake -DWITH_OPENGL:bool=ON -DWITH_QT:bool=ON -DWITH_TBB:bool=ON -DBUILD_EXAMPLES:bool=ON -DBUILD_DOCS:bool=ON <br>-DINSTALL_C_EXAMPLES:bool=ON -DWITH_UNICAP:bool=ON -DWITH_GTK:bool=ON -DWITH_OPENEXR:bool=ON -DENABLE_SSE3:bool=ON ..
   cmake -DWITH_OPENGL:bool=ON -DWITH_QT:bool=ON -DWITH_TBB:bool=ON -DBUILD_EXAMPLES:bool=ON -DBUILD_DOCS:bool=ON <br>-DINSTALL_C_EXAMPLES:bool=ON -DWITH_UNICAP:bool=ON -DWITH_GTK:bool=ON -DWITH_OPENEXR:bool=ON -DENABLE_SSE3:bool=ON ..
Ligne 36 : Ligne 36 :
===Compilation Version 2.4.3===
===Compilation Version 2.4.3===
-
   cd /home/franck/DataCenter/projets/OpenCV/OpenCV-2.4.2/OpenCV.build/Release
+
   mkdir OpenCV-2.4.2/OpenCV.build/Release
   cmake -D  BUILD_EXAMPLES:bool=ON -D WITH_OPENCL:bool=ON -D WITH_QT:bool=ON -D WITH_OPENGL:bool=ON -D WITH_OPENCLAMDFFT:bool=OFF<br> -D WITH_OPENCLAMDBLAS:bool=OFF -D WITH_TBB:bool=ON -D CMAKE_BUILD_TYPE:string=Release -D CLAMDBLAS_INCLUDE_DIR:string=/usr/include/ATI/clAmdBlas<br> -D CLAMDBLAS_LIBRARIES:string=/usr/lib/fglrx/libclAmdBlas.so -D CLAMDFFT_INCLUDE_DIR:string=/usr/include/ATI/clAmdFft<br> -D CLAMDFFT_LIBRARIES:string=/usr/lib/fglrx/libclAmdFft -D ENABLE_SSE41:bool=ON -D ENABLE_SSE42:bool=ON ..
   cmake -D  BUILD_EXAMPLES:bool=ON -D WITH_OPENCL:bool=ON -D WITH_QT:bool=ON -D WITH_OPENGL:bool=ON -D WITH_OPENCLAMDFFT:bool=OFF<br> -D WITH_OPENCLAMDBLAS:bool=OFF -D WITH_TBB:bool=ON -D CMAKE_BUILD_TYPE:string=Release -D CLAMDBLAS_INCLUDE_DIR:string=/usr/include/ATI/clAmdBlas<br> -D CLAMDBLAS_LIBRARIES:string=/usr/lib/fglrx/libclAmdBlas.so -D CLAMDFFT_INCLUDE_DIR:string=/usr/include/ATI/clAmdFft<br> -D CLAMDFFT_LIBRARIES:string=/usr/lib/fglrx/libclAmdFft -D ENABLE_SSE41:bool=ON -D ENABLE_SSE42:bool=ON ..
Ligne 55 : Ligne 55 :
===Compilation Version 2.4.4===
===Compilation Version 2.4.4===
-
   mkdir Release
+
   mkdir OpenCV-2.4.5/Release
   cmake -D BUILD_EXAMPLES:bool=ON -D WITH_OPENCL:bool=ON -D WITH_OPENCLAMDFFT:bool=ON -D WITH_OPENCLAMDBLAS:bool=ON  
   cmake -D BUILD_EXAMPLES:bool=ON -D WITH_OPENCL:bool=ON -D WITH_OPENCLAMDFFT:bool=ON -D WITH_OPENCLAMDBLAS:bool=ON  
Ligne 66 : Ligne 66 :
*http://www.geckogeek.fr/lire-le-flux-dune-webcam-camera-video-avec-opencv.html
*http://www.geckogeek.fr/lire-le-flux-dune-webcam-camera-video-avec-opencv.html
<br><br>
<br><br>
 +
 +
 +
===Compilation Version 2.4.5===
 +
 +
ajout des variables suivantes au fichier /etc/environement pour valoriser CLAMDFFT_PATH et CLAMDBLAS_PATH utilisé par cmake/OpenCVDetectOpenCL.cmake pour détecter FFT et BLAS d'AMD.
 +
 +
  AMDAPPSDKROOT="/opt/AMDAPP"
 +
  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"/opt/AMDAPP/lib/x86_64:/opt/AMDAPP/lib/x86:/opt/clAmdBlas-1.10.321/lib64:/opt/clAmdBlas-1.10.321/lib32:/opt/clAmdFft-1.10.321/lib64:/opt/clAmdFft-1.10.321/lib32"
 +
  CLAMDFFT_PATH=/opt/clAmdFft-1.10.321
 +
  CLAMDBLAS_PATH=/opt/clAmdBlas-1.10.321
 +
 +
Cependant ce n'est pas suffisant. Il y a des bugs dans le fichier cmake/OpenCVDetectOpenCL.cmake<br><br>
 +
Voici un patch:<br>
 +
<pre>
 +
--- OpenCVDetectOpenCL.cmake.origine 2013-04-05 11:00:20.000000000 +0200
 +
+++ OpenCVDetectOpenCL.cmake 2013-04-24 23:31:21.124626032 +0200
 +
@@ -42,11 +42,17 @@
 +
  set(OPENCL_INCLUDE_DIRS ${OPENCL_INCLUDE_DIR})
 +
  set(OPENCL_LIBRARIES    ${OPENCL_LIBRARY})
 +
 +
-  if (X86_64)
 +
+if (WIN64)
 +
    set(CLAMD_POSSIBLE_LIB_SUFFIXES lib64/import)
 +
-  elseif (X86)
 +
+elseif (WIN32)
 +
    set(CLAMD_POSSIBLE_LIB_SUFFIXES lib32/import)
 +
-  endif()
 +
+endif()
 +
+
 +
+if (X86_64 AND UNIX )
 +
+    set(CLAMD_POSSIBLE_LIB_SUFFIXES lib64)
 +
+elseif (X86 AND UNIX)
 +
+    set(CLAMD_POSSIBLE_LIB_SUFFIXES lib32)
 +
+endif()
 +
 +
  if(WITH_OPENCLAMDFFT)
 +
    find_path(CLAMDFFT_ROOT_DIR
 +
@@ -78,7 +84,7 @@
 +
  if(WITH_OPENCLAMDBLAS)
 +
    find_path(CLAMDBLAS_ROOT_DIR
 +
              NAMES include/clAmdBlas.h
 +
-              PATHS ENV CLAMDFFT_PATH ENV ProgramFiles
 +
+              PATHS ENV CLAMDBLAS_PATH ENV ProgramFiles
 +
              PATH_SUFFIXES clAmdBlas AMD/clAmdBlas
 +
              DOC "AMD FFT root directory"
 +
              NO_DEFAULT_PATH)
 +
</pre>
 +
 +
Pour patcher, copier coller les lignes ci-dessus dans un fichier OpenCV-2.4.5/cmake/correction.patch. Puis :<br>
 +
  cd OpenCV-2.4.5/cmake
 +
  patch -p0 < correction.patch
 +
 
 +
 +
mkdir OpenCV-2.4.5/Release
 +
 +
<pre>
 +
cmake -D BUILD_EXAMPLES:bool=ON -D WITH_OPENCL:bool=ON -D WITH_OPENCLAMDFFT:bool=ON -D WITH_OPENCLAMDBLAS:bool=ON -D WITH_QT:bool=ON -D WITH_OPENGL:bool=ON -D WITH_OPENGL:bool=ON -D ENABLE_SSE:bool=ON -D ENABLE_SSE2:bool=ON -D ENABLE_SSE3:bool=ON -D ENABLE_SSES3:bool=ON -D ENABLE_SSE41:bool=ON -D ENABLE_SSE42:bool=ON -D WITH_TBB:bool=ON -D CMAKE_BUILD_TYPE:STRING=RELEASE ..
 +
</pre>

Version du 25 avril 2013 à 20:55

retour vers Developpement

Sommaire

OpenCV: Open Computer Vision Library

Presentation

http://opencv.org/
extrait wikipedia:

OpenCV (pour Open Computer Vision) est une bibliothèque graphique libre, initialement développée par Intel, spécialisée dans le traitement d'images en temps réel. La société de robotique Willow Garage assure le support de cette bibliothèque depuis 2008.

Cette bibliothèque est distribuée sous licence BSD.

Documentation

Compilation Version 2.4.2

cmake

2013/01/10 ligne de commande de préparation à la compilation cmake:

 mkdir OpenCV-2.4.2/OpenCV.build
 cmake -DWITH_OPENGL:bool=ON -DWITH_QT:bool=ON -DWITH_TBB:bool=ON -DBUILD_EXAMPLES:bool=ON -DBUILD_DOCS:bool=ON 
-DINSTALL_C_EXAMPLES:bool=ON -DWITH_UNICAP:bool=ON -DWITH_GTK:bool=ON -DWITH_OPENEXR:bool=ON -DENABLE_SSE3:bool=ON ..

Voir le fichier OpenCV-2.4.2/CMakeList.txt pour les options de CMake.
Dans notre cas des librairies doivent etre installé avant le passage de cmake: TBB, OpenEXR, Python, OpenGL ( celles d'AMD sont parfaites quand on a une carte graphique AMD), pkgconfig, ffmpeg, libav, libjpeg-dev, ...

make

 make

Compilation Version 2.4.3

 mkdir OpenCV-2.4.2/OpenCV.build/Release
 cmake -D  BUILD_EXAMPLES:bool=ON -D WITH_OPENCL:bool=ON -D WITH_QT:bool=ON -D WITH_OPENGL:bool=ON -D WITH_OPENCLAMDFFT:bool=OFF
-D WITH_OPENCLAMDBLAS:bool=OFF -D WITH_TBB:bool=ON -D CMAKE_BUILD_TYPE:string=Release -D CLAMDBLAS_INCLUDE_DIR:string=/usr/include/ATI/clAmdBlas
-D CLAMDBLAS_LIBRARIES:string=/usr/lib/fglrx/libclAmdBlas.so -D CLAMDFFT_INCLUDE_DIR:string=/usr/include/ATI/clAmdFft
-D CLAMDFFT_LIBRARIES:string=/usr/lib/fglrx/libclAmdFft -D ENABLE_SSE41:bool=ON -D ENABLE_SSE42:bool=ON ..

Voir le fichier OpenCV-2.4.3/CMakeList.txt pour les options de CMake.

A noter que je n'ai pas réussi, pour l'instant, a compiler OpenCV avec les libs libclAmdFft et clAmdFft d'AMD. Elles sont ici en OFF avec un message de cmake sur leurs include et lib.

make

 make

Installation

 make install



Compilation Version 2.4.4

 mkdir OpenCV-2.4.5/Release
 cmake -D BUILD_EXAMPLES:bool=ON -D WITH_OPENCL:bool=ON -D WITH_OPENCLAMDFFT:bool=ON -D WITH_OPENCLAMDBLAS:bool=ON 
 -D WITH_QT:bool=ON -D WITH_OPENGL:bool=ON -D CLAMDBLAS_INCLUDE_DIR:string=/usr/include/ATI/clAmdBlas 
 -D CLAMDBLAS_LIBRARIES:string=/usr/lib/fglrx/libclAmdBlas.so -D CLAMDFFT_INCLUDE_DIR:string=/usr/include/ATI/clAmdFft 
 -D CLAMDFFT_LIBRARIES:string=/usr/lib/fglrx/libclAmdFft.Runtime.so -D CMAKE_BUILD_TYPE:STRING=RELEASE ..

Utilisation




Compilation Version 2.4.5

ajout des variables suivantes au fichier /etc/environement pour valoriser CLAMDFFT_PATH et CLAMDBLAS_PATH utilisé par cmake/OpenCVDetectOpenCL.cmake pour détecter FFT et BLAS d'AMD.

 AMDAPPSDKROOT="/opt/AMDAPP"
 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"/opt/AMDAPP/lib/x86_64:/opt/AMDAPP/lib/x86:/opt/clAmdBlas-1.10.321/lib64:/opt/clAmdBlas-1.10.321/lib32:/opt/clAmdFft-1.10.321/lib64:/opt/clAmdFft-1.10.321/lib32"
 CLAMDFFT_PATH=/opt/clAmdFft-1.10.321
 CLAMDBLAS_PATH=/opt/clAmdBlas-1.10.321

Cependant ce n'est pas suffisant. Il y a des bugs dans le fichier cmake/OpenCVDetectOpenCL.cmake

Voici un patch:

--- OpenCVDetectOpenCL.cmake.origine	2013-04-05 11:00:20.000000000 +0200
+++ OpenCVDetectOpenCL.cmake	2013-04-24 23:31:21.124626032 +0200
@@ -42,11 +42,17 @@
   set(OPENCL_INCLUDE_DIRS ${OPENCL_INCLUDE_DIR})
   set(OPENCL_LIBRARIES    ${OPENCL_LIBRARY})
 
-  if (X86_64)
+if (WIN64)
     set(CLAMD_POSSIBLE_LIB_SUFFIXES lib64/import)
-  elseif (X86)
+elseif (WIN32)
     set(CLAMD_POSSIBLE_LIB_SUFFIXES lib32/import)
-  endif()
+endif()
+
+if (X86_64 AND UNIX )
+    set(CLAMD_POSSIBLE_LIB_SUFFIXES lib64)
+elseif (X86 AND UNIX)
+    set(CLAMD_POSSIBLE_LIB_SUFFIXES lib32)
+endif()
 
   if(WITH_OPENCLAMDFFT)
     find_path(CLAMDFFT_ROOT_DIR
@@ -78,7 +84,7 @@
   if(WITH_OPENCLAMDBLAS)
     find_path(CLAMDBLAS_ROOT_DIR
               NAMES include/clAmdBlas.h
-              PATHS ENV CLAMDFFT_PATH ENV ProgramFiles
+              PATHS ENV CLAMDBLAS_PATH ENV ProgramFiles
               PATH_SUFFIXES clAmdBlas AMD/clAmdBlas
               DOC "AMD FFT root directory"
               NO_DEFAULT_PATH)

Pour patcher, copier coller les lignes ci-dessus dans un fichier OpenCV-2.4.5/cmake/correction.patch. Puis :

 cd OpenCV-2.4.5/cmake
 patch -p0 < correction.patch
 

mkdir OpenCV-2.4.5/Release

cmake -D BUILD_EXAMPLES:bool=ON -D WITH_OPENCL:bool=ON -D WITH_OPENCLAMDFFT:bool=ON -D WITH_OPENCLAMDBLAS:bool=ON -D WITH_QT:bool=ON -D WITH_OPENGL:bool=ON -D WITH_OPENGL:bool=ON -D ENABLE_SSE:bool=ON -D ENABLE_SSE2:bool=ON -D ENABLE_SSE3:bool=ON -D ENABLE_SSES3:bool=ON -D ENABLE_SSE41:bool=ON -D ENABLE_SSE42:bool=ON -D WITH_TBB:bool=ON -D CMAKE_BUILD_TYPE:STRING=RELEASE ..
Outils personnels