查看: 2409|回复: 0

[教程] 关于在RK3288上安装Opencv的方法

[复制链接]
  • TA的每日心情
    奋斗
    2017-9-26 15:27
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2017-9-22 15:55:08 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 ky123 于 2017-9-22 17:38 编辑

    Opencv是一个开源的计算机视觉库,可以给开发人员提供更便捷的方式设计复杂的视觉应用,Opencv主要是用c和c++编写,可以运行在Windows/Linux/Mac等上。这几天尝试着在RK3288上安装Opencv,被虐了好多遍,幸好没有放弃,终于弄出了。之前一直是通过电脑先交叉编译Opencv再移植的方法,但是在编译过程中总是遇到各种问题,换了不同的Opencv源又会出现新的问题,所以如果有交叉编译移植成功的朋友不妨交流一下。这里采用了一种比较折中的方法,直接在开发板上配置好环境,然后安装编译Opencv。

    一、前期准备

    开发板烧写的固件是官方网站下载的,Ubuntu的系统。

    将开发板与电脑通过串口连接起来,方便命令控制。

    在Opencv官方网站下载一个在linux下的Opencv源,我的是opencv-2.4.10.zip,放到开发板的/home下,http://opencv.org/downloads.html

    二、环境配置

    1、更新软件源

    apt-get update

    apt-get upgrade

    2、下载依赖项

    apt-get install gcc g++

    apt-get install cmake

    apt-get install build-essential

    apt-get install libgtk2.0-dev

    apt-get install pkg-config

    apt-get install libavcodec-dev libavformat-dev libswscale-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev

    apt-get install python-dev python-numpy

    3、解压缩

    去到opencv源码所在文件夹下,(我的在/home目录下),解压缩

    unzip opencv-2.4.10.zip

    这时/home目录下多了一个文件夹,opencv-2.4.10

    4、编译Opencv

    cd /home/opencv-2.4.10

    mkdir build

    cd build/

    使用cmake工具编译生成makefiel,指定opencv安装在/usr/local(这个安装目录最好不要改,如果要改也是弄成/usr/local/xx这种目录)

    cmake -D CMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..

    等到环境检测完成

    make

    这时候就是等待安装,时间有点长,这时候可以放在那里干其他事情......



    等到编译完毕,install一下让它生效

    make install



    可以看到在usr/local/lib下有很多编译好的opencv动态链接库



    在环境变量文件上写库的位置
        vim /etc/ld.so.conf

    在这个文件的最后一行加上/usr/local/lib


    然后运行/sbin/ldconfig

    4、测试

    写一个测试代码opencv.cpp,看opencv能否使用,这段代码的意思是将一幅图片转换成灰度图显示出来,并且显示出原图

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

    }   

    生成可执行文件opencv

    g++ `pkg-config opencv --cflags --libs opencv` -o opencv opencv.cpp -I /usr/local/include/opencv -L /usr/local/lib -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_gpu -lopencv_ts -lopencv_video -lopencv_objdetect -lopencv_ml -lpthread

    开发板连上显示器,运行程序(下载一张图片弄到同一文件夹下)

    ./opencv lena.jpg

    效果如下:



    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条



    手机版|小黑屋|与非网

    GMT+8, 2025-1-12 13:41 , Processed in 0.106914 second(s), 15 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.