Linux下安装opencv图像处理库

前言:opencv是一个开源的图像处理库,它支持Linux系统。S5P6818是三星八核Cortex-A53的CPU,现在我们来配置、编译、安装opencv-2.4.9图像处理库。


一、环境

硬件:这里选用友善之臂NANOPC-T3开发板

软件:Debian系统

二、准备工作

    1. 软件更新

          (1) [email protected]:~/work$     sudo apt-get update  

    2. 安装cmake-gui和unzip解压工具

          (1) [email protected]:~/work$     sudo apt-get install cmake-gui 

          (2) [email protected]:~/work$     sudo apt-get install unzip   

    3. 下载opencv-2.4.9源码,可以到官网下载或者到我的资源下载opencv_test在windows上解压后可以得到

          链接:http://download.csdn.net/download/wenwang88/10154796        

    4. 在linux系统上解压opencv-2.4.9源码

          (1) [email protected]:~/work$     unzip opencv-2.4.9.zip  

    5.创建两个目录build和temp,build存放Makefile等文件,temp存放编译出来的opencv库文件

          (1) [email protected]:~/work$    mkdir build 

          (2) [email protected]:~/work$    mkdir temp  


三、 使用cmake配置,生成Makefile等文件

    1. 打开cmake图形界面程序

Linux下安装opencv图像处理库


    2. 指定opencv-2.4.9源码目录和存放cmake生成的工程文件目录



    3. 选择编译器类型

Linux下安装opencv图像处理库


    4. 第一次配置

Linux下安装opencv图像处理库


    5. 选择opencv库的安装目录

Linux下安装opencv图像处理库


    6. 增加WITH_OPENMP这个配置项,支持openmp

Linux下安装opencv图像处理库


    7. 同理,去掉WITH_FFMPEG、WITH_TIFF这两个选项


    8. 第二次配置

Linux下安装opencv图像处理库


   9. 生成Makefile等文件

Linux下安装opencv图像处理库


四、编译和安装opencv库

    1. 编译   

          (1) [email protected]:~/work$         cd build 

          (2) [email protected]:~/work/build$   make  


    2. 安装

          (1) [email protected]:~/work/build$   make install  


    3. 复制opencv库文件到指定的目录,以后供编译应用程序使用

          (1) [email protected]:~/work/build$   cd ../temp/ 

          (2) [email protected]:~/work/temp$    sudo cp lib/* /usr/lib/ -rfd 

          (3) [email protected]:~/work/temp$    sudo cp lib/* /lib/arm-linux-gnueabihf -rfd 

          (4) [email protected]:~/work/temp$    sudo cp lib/* /usr/lib/arm-linux-gnueabihf/ -rfd 

          (5) [email protected]:~/work/temp$    sudo cp include/* /usr/include -rf  


五、测试

   1. 源码identifity.cpp

  1. #include "opencv2/highgui/highgui.hpp"  
  2. #include "opencv2/imgproc/imgproc.hpp"  
  3. #include <opencv2/opencv.hpp>  
  4. #include <stdio.h>  
  5. #include <sys/time.h>  
  6. #include <omp.h>  
  7. #include <unistd.h>  
  8.   
  9. using namespace std;  
  10. using namespace cv;  
  11.   
  12. #define DEBUG 1  
  13. #if DEBUG  
  14. struct timeval tPreTime ;  
  15. struct timeval tCurTime ;  
  16. long delta;  
  17. #endif  
  18.   
  19. int main(int argc, char** argv)  
  20. {     
  21.     Mat srcimage;  
  22.     Mat hsvimage;  
  23.     Mat element = cv::getStructuringElement(cv::MORPH_RECT, cv::Size(5, 5));  
  24.   
  25.     while (1)  
  26.     {  
  27.         srcimage =imread("test.jpg");  
  28. #if DEBUG  
  29.         gettimeofday(&tCurTime, NULL);   
  30. #endif        
  31.         if (srcimage.empty())  
  32.         {  
  33.             printf("srcimage.empty()\n");         
  34.             continue;  
  35.         }  
  36.   
  37.         cvtColor(srcimage, hsvimage, COLOR_BGR2HSV);  
  38.   
  39.         //二值化  
  40.         inRange(hsvimage, Scalar(25, 25, 130), Scalar(150, 240, 255), hsvimage);  
  41.   
  42.         erode(hsvimage, hsvimage, element);  
  43.         dilate(hsvimage, hsvimage, element);  
  44.         imshow("srcimage", srcimage);   
  45.         imshow("hsvimage", hsvimage);   
  46.         waitKey(1);               
  47. #if DEBUG  
  48.         gettimeofday(&tPreTime, NULL);   
  49.             delta =  ( tPreTime.tv_sec - tCurTime.tv_sec ) *1000 + (tPreTime.tv_usec -tCurTime.tv_usec)  /1000;             
  50.         printf("process one frame: %ld\n",delta);         
  51. #endif  
  52.     }  
  53.     return 0;  
  54. }  


2. 编译、执行

          (1) [email protected]:~/work/test$     g++ identifity.cpp -o identifity -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_ml -lpthread 

          (2) [email protected]:~/work/test$     ./identifity  


   3. 查看进程IP

          (1) [email protected]:~/work/test$    ps -aux | grep identifity 

          (2) fa        1365  228  0.6  68464  5964 pts/0    Sl+  22:30   0:04 ./identifity 

               fa        1372  0.0  0.0   4132   780 pts/3    S+   22:30   0:00 grep identifity  




附上效果图

Linux下安装opencv图像处理库