아카이브/컴퓨터 일반

[OpenCV 설치] Ubuntu OpenCV 설치, C++ 테스트

될성부른떡잎 2015. 10. 5. 20:21


[OpenCV 설치] Ubuntu OpenCV 설치, C++ 테스트


OpenCV 설치

OpenCV는 설치해야 하는 패키지가 많으므로 스크립트로 만들어서 실행시키는게 편하다.

gedit을 실행 시키고 아래 내용을 붙여 넣는다.

version="$(wget -q -O - http://sourceforge.net/projects/opencvlibrary/files/opencv-unix | egrep -m1 -o '\"[0-9](\.[0-9]+)+' | cut -c2-)" echo "Installing OpenCV" $version mkdir OpenCV cd OpenCV echo "Removing any pre-installed ffmpeg and x264" sudo apt-get -qq remove ffmpeg x264 libx264-dev echo "Installing Dependenices" sudo apt-get -qq install libopencv-dev build-essential checkinstall cmake pkg-config yasm libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils cmake qt5-default checkinstall echo "Downloading OpenCV" $version wget -O OpenCV-$version.zip http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/$version/opencv-"$version".zip/download echo "Installing OpenCV" $version unzip OpenCV-$version.zip cd opencv-$version mkdir build cd build cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON .. make -j2 sudo checkinstall sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf' sudo ldconfig echo "OpenCV" $version "ready to be used"

붙여 넣고 opencv.sh 파일명으로 저장한다.

터미널을 열고 파일을 저장한 위치로 이동한 후 아래 명령어를 실행한다.

$ chmod +x opencv.sh

$ ./opencv.sh

설치할 패키지가 많기 때문에 여유롭게 기다리다 보면 설치가 완료 된다.


OpenCV 테스트 - 사진 띄우기

설치한 OpenCV를 C++에서 테스트 해 보도록 하겠다.

<C++ 코드>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <opencv2/opencv.hpp>
 
int main()
{
    std::cout << "OpenCV Version : " << CV_VERSION << std::endl;
    cv::Mat img;
    cv::namedWindow("EXAMPLE01", CV_WINDOW_AUTOSIZE);
 
    img = cv::imread("cat.jpg", CV_LOAD_IMAGE_COLOR);
    if (img.empty())
    {
        std::cout << "[!] You can NOT see the cat!" << std::endl;
        return -1;
    }
    cv::imshow("EXAMPLE01", img);
    cv::waitKey(0);
    cv::destroyWindow("EXAMPLE01");
    return 0;
}
 
 
cs

<컴파일, 실행>

1
2
3
4
5
6
// 컴파일
$ g++ test.cpp -o test `pkg-config --libs opencv`
 
// 실행
$ ./test
 
cs


<실행 결과>


OpenCV 테스트 - 웹 캠

<C++ 코드>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <opencv2/opencv.hpp>
 
int main()
{
    std::cout << "OpenCV Version : " << CV_VERSION << std::endl;
    cv::Mat img;
    cv::namedWindow("EXAMPLE02"1);
        cv::VideoCapture cap;
 
    cap.open(1); // 노트북 카메라는 cap.open(1) 또는 cap.open(-1)
                     // USB 카메라는 cap.open(0);
    while (cap.isOpened())
    {
        cap >> img;
        cv::imshow("EXAMPLE02", img);
        if (cv::waitKey(30)==27)
        {
            break;
        }
    }
    cv::destroyWindow("EXAMPLE02");
    return 0;
}
 
 
cs


<컴파일, 실행>

1
2
3
4
5
6
// 컴파일
$ g++ test2.cpp -o test2 `pkg-config --libs opencv`
 
// 실행
$ ./test2
 
cs

<실행 결과>