ubuntu下配置opencv2.4.10 步骤以及一些所遇问题解决方法

来源:互联网 发布:php获取ip地理位置 编辑:程序博客网 时间:2024/06/08 13:32
1.

进入超级用户,然后终端编辑

apt-get install build-essential;
apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev;
apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev;
2.
下载opencv
//这步可以提前做,可以保存在任意文件夹下,最好是放在home/用户名/创建个文件夹名字下,这样避免了一些权限问题
//例如/home/lv/opencv下 lv是用户名opencv是创建的文件夹名字

网址:http://opencv.org/
下载的是压缩文件然后利用利用指令进行解压
各种压缩文件解压指令
可以看我的博客转载的也可以百度搜索
例如:下载的是opencv2.4.10然后找到那个压缩文件,(我的是在Downloads里面),你可以利用指令进入到所在目录下然后复制到你所希望的文件夹下面,
例如放在/home/lv/opencv下面
3.
利用上面的路径/home/lv/opencv
终端输入:
cd /home/lv/opencv
这样opencv文件夹下面会有一个压缩文件还有一个解压后的文件夹,现在进入到这个文件夹下面,
例如这个文件夹名字是opencv-2.4.10
输入:cd opencv-2.4.10;
mkdir release //在opencv-2.4.10文件夹下面创建一个名字为release的文件夹
cd release //进入到这个文件夹下面
cmake -D CMAKE_BUILD_TYPE=RELEASE -D BUILD_TIFF=ON -D CMAKE_INSTALL_PREFIX=/usr/local .. //红色部分可加可不加最好加
make //在release文件夹目录下
如果出现/home/lu/autobuild/instance-0/output/build/opencv-2.4.10/modules/core/src/system.cpp:280:10: error: inconsistent operand constraints in an 'asm'
make[3]: *** [modules/core/CMakeFiles/opencv_core.dir/src/system.cpp.o] Error 1 这样的类似问题你可以这样做:
打开opencv-2.4.10/modules/core/src/system.cpp  //如果打开修改 (按照下面的编辑)之后无法保存那么关闭,然后在终端输入
sudo gedit /home/lv/opencv/opencv-2.4.10/modules/core/src/system.cpp //主要是为了编辑system.cpp文件
编辑如下:也就是编辑system.cpp270行-280行代码
  • asm volatile 
  • "pushl %%ebx\n\t" 
  • "movl $7,%%eax\n\t" 
  • "movl $0,%%ecx\n\t" 
  • "cpuid\n\t" 
  • "movl %%ebx,%1\n\t"  //添加这行
  • "popl %%ebx\n\t" 
  • "=a"(cpuid_data[0]), "=r"(cpuid_data[1]), "=c"(cpuid_data[2]), "=d"(cpuid_data[3]) //用r替换b即可
  • make 成功后
    在终端继续输入
    make install
    查看安装结果:pkg-config opencv --cflags --libs
     
    点击查看原图
     

    这样即可

    最后就是测试了 编辑一个c语言文件,我的命名为opencvTest.c,文件可以放在任何位置,下面的是测试代码
    1.#include <stdio.h>
    #include "highgui.h"

    using namespace cv;

    int main(int argc, char** argv )
    {
        IplImage *image=cvLoadImage("lena.jpg"); //lena 图片和源文件放在同一个文件夹下
        cvNamedWindow("Display Image", WINDOW_AUTOSIZE );
        cvShowImage("Display Image", image);
        waitKey(0);
        cvReleaseImage(&image);
        cvDestroyWindow("Display Image");
        return 0;
    }
    2.然后建立一个txt文件 命名为 CMakeLists.txt 编辑如下
    cmake_minimum_required(VERSION 2.8) // 版本信息 (终端输入cmake --version则会显示例如我的就是cmake version 2.8.12.2)
    project( opencvTest ) //执行文件的名字
    find_package( OpenCV REQUIRED )
    add_executable( opencvTest opencvTest.cpp ) //执行文件的名字还有源文件的名字 (用户自己编写的)
    target_link_libraries( opencvTest ${OpenCV_LIBS} )

    3. cmake . //输入
    -- Configuring done /*这是终端显示的信息不是编写的
    -- Generating done
    -- Build files have been written to: /home/lv/Clanguge/opencvTest */

    make //输入

    [100%] Built target opencvTest //终端显示的信息

    最后输入 ./opencvTest 这样就会显示图片了

    如果是由于ffmpeg的问题只要在cmake时候加上一句-D WITH_FFMPEG=OFF即可。
    如果是由于cuda的问题,只要cmake用下面的语句即可
    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D CUDA_GENERATION=Kepler ..


    0 0
    原创粉丝点击