首页 > 代码库 > OpenCV入门笔记(一) Linux下的安装

OpenCV入门笔记(一) Linux下的安装

关于OpenCV,有中文的官方站点。里面翻译了官网的教程和API等。中文官方Tutorials见这里:【Tutorials】


一、Ubuntu下的安装

能够选择直接从库里安装,或者手动编译安装,请參考这里:【Installation in Linux】

1. 从repository(库)中安装

sudo apt-get install libopencv-dev python-opencv

2. 手动编译安装

首先要解决OpenCV的依赖问题,直接在终端下执行

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

从【

source=navbar">sourceforge】上面下载下来源代码,只是不知道为啥。我的Ubuntu15.04不能编译open-2.4.11,仅仅能再下个opencv-2.4.10。进去文件夹。直接用cmake编译例如以下

mkdir build
cd build
cmake ..
sudo make
sudo make install

3. 样例

编译完了就先来跑个样例吧,见这里:【Linux下的样例】,事实上就是个寻常的C++样例,新建cpp和txt文件,编译执行即可。


DisplayImage.cpp

#include <cv.h>
#include <highgui.h>

using namespace cv;
int main( int argc, char** argv )
{
    Mat image;
    image = imread( argv[1], 1 );

    if( argc != 2 || !image.data )
    {
        printf( "No image data \n" );
        return -1;
    }

    namedWindow( "Display Image", CV_WINDOW_AUTOSIZE );
    imshow( "Display Image", image );
    waitKey(0);

    return 0;
}

CMakeLists.txt

project( DisplayImage )
find_package( OpenCV REQUIRED )
add_executable( DisplayImage DisplayImage )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )

编译

cd <DisplayImage_directory>
cmake .
make

执行

./DisplayImage lena.jpg

著名的lena图能够给个链接:【lena图】


二、用Python开发OpenCV

发现除了C++。Python对OpenCV的支持也特别好。

官方的接口文档中,一般都会给出C++。C和Python三种接口。

Python支持

首先。安装python的opencv模块

sudo apt-get install python-opencv

以下给个样例

import cv2

img = cv2.imread("lena.jpg") # load image
cv2.imshow("image", img)    # show image
cv2.waitKey(0)  # wait until key pressed

命名为test.py。直接在终端里

python test.py
# or
python ./test.py

直接执行就能够了。


这个样例仅仅是简单的把图片载入进来,并依照原来的大小显示出来,这几个函数也有重载。详细使用方法就要去查了。
在github上发现一个大牛写的python-opencv的文档,太棒了,链接在这里:【OpenCV-Python Tutorials】。

有函数不会用的,直接在左边搜索即可了。

能够和官方的【Tutorials】结合起来看。

<script type="text/javascript"> $(function () { $(‘pre.prettyprint code‘).each(function () { var lines = $(this).text().split(‘\n‘).length; var $numbering = $(‘
    ‘).addClass(‘pre-numbering‘).hide(); $(this).addClass(‘has-numbering‘).parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($(‘
  • ‘).text(i)); }; $numbering.fadeIn(1700); }); }); </script>

OpenCV入门笔记(一) Linux下的安装