树莓派源代码安装opencv

来源:互联网 发布:网络教育本科能考研吗 编辑:程序博客网 时间:2024/06/07 16:53

<span style="font-family: Tahoma; background-color: rgb(255, 255, 255);">1.下载若干依赖项</span>

 请依次安装以下依赖项,这些必须安装的依赖项来自于opencv官网的说明,在多数debian系统中都可以采用这种方式进行安装。其实在树莓派中build-essential已经默认安装,但是cmake等其他内容仍需要手动安装。
sudo apt-get install build-essential
sudo apt-get install cmake
sudo apt-get install libgtk2.0-dev
sudo apt-get install pkg-config
sudo apt-get install python-dev python-numpy
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev


2.获得源代码
    在树莓派用户目录中建立opencv文件夹
mkdir opencv

    通过sourceforge网站获取opencv源代码,本文选择2.4.9版本。下载过程可能比较缓慢,请耐心等待。
wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.9/opencv-2.4.9.zip/download opencv-2.4.9.zip

    解压源代码,获得一个名为opencv-2.4.9的文件夹
unzip opencv-2.4.9.zip

3.编译源代码
    进入opencv源代码目录,在该目录中新建一个名为release的文件夹。
cd ~/opencv/opencv-2.4.9
mkdir release
cd release
    使用cmake工具在该文件夹中生成makefile文件,指定opencv的安装目录为/usr/local,opencv的源代码位于上一层目录。
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
    编译源代码并安装(编译源代码的时间非常的长,make之后我便睡去,第二天早上才执行install)
make
sudo make install
    更新搜索动态链接库
sudo ldconfig

4.示例
【C++】——通过代码载入一张图片,通过opencv把彩色图片转换为黑白图片,并把原图和转换后的图片输出到屏幕


#include <opencv2/core/core.hpp>  #include <opencv2/imgproc/imgproc.hpp>  #include <opencv2/highgui/highgui.hpp>  #include <iostream>  using namespace cv;  using namespace std;  int main (int argc, char **argv)  {      Mat image, image_gray;      image = imread(argv[1], CV_LOAD_IMAGE_COLOR );      if (argc != 2 || !image.data) {          cout << "No image data\n";          return -1;      }           cvtColor(image, image_gray, CV_RGB2GRAY);      namedWindow("image", CV_WINDOW_AUTOSIZE);      namedWindow("image gray", CV_WINDOW_AUTOSIZE);           imshow("image", image);      imshow("image gray", image_gray);           waitKey(0);      return 0;  }  

【makefile】

INCLUDE = $(shell pkg-config --cflags opencv)  LIBS = $(shell pkg-config --libs opencv)  SOURCES = test.cpp  # 目标文件  OBJECTS = $(SOURCES:.cpp=.o)  # 可执行文件  TARGET = test  $(TARGET):$(OBJECTS)      g++ -o $(TARGET) $(OBJECTS) -I $(INCLUDE) $(LIBS)  $(OBJECTS):$(SOURCES)      g++ -c $(SOURCES)  clean:      rm $(OBJECTS) $(TARGET)  # 编译规则 $@代表目标文件 $< 代表第一个依赖文件  %.o:%.cpp      g++ -I $(INCLUDE) -o $@ -c $<  
【简要说明】

    通过pkg-config --cflags opencv 获得opencv相关头文件路径,通过pkg-config --libs opencv获得opencv扩展库
    更多makefile知识请查看—— Linux学习笔记——例说makefile 索引博文
【编译并执行】
make
./test raspberry.jpg
    示例中载入一张名为raspberry.jpg图片。在该示例中,图片和可执行文件test应在同一个目录中。运行结果如下图所示,左侧为原始图片,右侧为转换后的图片。选择的图片色彩不够丰富,彩色图片和黑白图片的对比不够强烈,但也可证明opencv在树莓派中运行正常。


0 0
原创粉丝点击