zoukankan      html  css  js  c++  java
  • 树莓派上 安装并 运行opencv

    1.先安装依赖项

    OpenCV 2.2以后版本需要使用Cmake生成makefile文件,因此需要先安装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

    wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.13/opencv-2.4.13.zip/download opencv-2.4.13.zip

    解压以后,在其目录中创建一个文件夹build,进入该文件夹, 使用cmake工具在该文件夹中生成makefile文件,指定opencv的安装目录为/usr/local,opencv的源代码位于上一层目录。

    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
    make       #非常慢

    最后

    sudo make install
    #更新搜索动态链接库
    sudo ldconfig

    3. 测试

        //读取一张图片,转化成黑白的   
        #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("1.jpg");  
             
            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 $<

    注意:可执行动作前是Tab不是空格!

    PS:2.4.10安装在raspberry pi3 上make时报错,而2.4.13没有问题

    参考:http://blog.csdn.net/xukai871105/article/details/40988101

  • 相关阅读:
    centos7开启关闭防火墙
    虚拟机vmnet1和vmnet8找不到,注册表没有删除干净,见图
    dhcp和static的区别
    SQL手册
    canal架构原理
    SQL优化(待完善)
    数仓简介
    java逆变与协变(待完善)
    mysqljoin的原理和优化
    深入理解java虚拟机阅读笔记
  • 原文地址:https://www.cnblogs.com/farewell-farewell/p/6125761.html
Copyright © 2011-2022 走看看