基于opencv的四轴飞行器寻迹系统(一)——linux下opencv的安装

  • 文章的内容本身是为2017全国大学生电子设计大赛飞行器方向题准备的,在七月底的时候寻迹的图像处理方面已经完成的差不多了,能实现非常精确的巡线,实际测试即使背景不是白布,也可以轻松分辨出道路、拟合出直线。
  • 后来赛题出来,图像处理部分基本是纯定点了,好在定点比寻迹简单的太多了,之前早已写好定点的图像处理代码,鉴于今后可能有各种项目需要用到,比如无人机、智能车等等,所以把准备电赛的寻迹代码及整体思路分享,或许2019年电赛国赛会有用到。
  • 首先是图像处理平台的选择,主要就是openmv和树莓派了,一开始我也准备用的openmv,应该说我一开始就用的openmv,那是在2016年12月的校赛,花了400块买的,后来为什么不用呢?第一、太简单了,里面历程基本覆盖了,个人基本学不到啥,做图像处理本身就是一个探索摸索的过程,没意思;第二、图像质量太差,颜色定位不准、轮廓识别不准,日后若想深入开发,没有深入开发的能力,综上,我最后决定放弃openmv。
  • 决定用opencv后,很关键就是如何找开发平台,好在有树莓派3这么一个好东西,价格和openmv差不多,但性能强上数十倍,是嵌入式视觉的最佳选择(大疆有妙算,5000大洋,感兴趣可以购买 )。
  • 如何在树莓派上安装opencv,这是本文的重点,今天主要讲的是如何在树莓派上安装opencv,涉及具体的算法将在后文继续说明。
  • 安装opencv是一个烦人的过程,整个过程大概在两个小时左右,其中编译环节占了3/4.
  • Opencv安装:
    安装构建OpenCV的相关工具:
   //安装build-essential、cmake、git和pkg-config
    sudo apt-get install build-essential cmake git pkg-config 
    //安装jpeg格式图像工具包
    sudo apt-get install libjpeg8-dev 
    //安装tif格式图像工具包
    sudo apt-get install libtiff5-dev 
    //安装JPEG-2000图像工具包
    sudo apt-get install libjasper-dev 
    //安装png图像工具包
    sudo apt-get install libpng12-dev 
    sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
    sudo apt-get install libgtk2.0-dev
    sudo apt-get install libatlas-base-dev gfortran
 以上是opencv的依赖性,现在开始下载源码并编译源码,编译过程大概一个半小时,注意散热,期间卡机直接重启,再make就可以,不需要重复上述步骤。
 到http://opencv.org/downloads.html 下载opencv-3.2.0.zip放在/home目录下
 #unzip opencv-3.2.0.zip
 解压到/home目录下
 #cd opencv-3.2.0
 #mkdir release
 #cd release
 #cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
 #make 
 #make install
 测试:
 #mkdir /tmp/opencvdemo
 #cd /tmp/opencvdemo
 #vi DisplayImage.cpp

编辑:

#include   
#include   
 using namespace cv;  
 int main(int argc, char** argv )  
 {  
    if ( argc != 2 )  
    {  
     printf("usage: DisplayImage.out \n");  
     return -1;  
  }  
 Mat image;  
image = imread( argv[1], 1 );  
  if ( !image.data )  
 {  
    printf("No image data \n");  
    return -1;  
  }  
  namedWindow("Display Image", WINDOW_AUTOSIZE );  
  imshow("Display Image", image);  
  waitKey(0);  
 return 0;  
 }  

vi CMakeLists.txt
编辑:

    cmake_minimum_required(VERSION 2.8)  
    project( DisplayImage )  
    find_package( OpenCV REQUIRED )  
    add_executable( DisplayImage DisplayImage.cpp )  
    target_link_libraries( DisplayImage ${OpenCV_LIBS} )  

#cmake .
#make
#./DisplayImage uk722.jpg //要显示图片需要安装GTK+ 2.x版本
如果成功显示图片就说明opencv安装好了。
接下来需要一个合适的编译器去写图像处理的算法,此处用的是QT,下一篇将介绍如何安装QT。

你可能感兴趣的:(STM32)