ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Windows Subsystem for Linux를 사용하여 설치한 Ubuntu에 OpenCV 3.3.1 설치하기
    개발 환경/Windows Subsystem for Linux 2017. 12. 16. 04:12

    윈도우 10에서 Windows Subsystem for Linux 기능을 활성화하고 Ubuntu를 설치한 다음에 OpenCV를 설치한 과정을 다루고 있습니다.



    우선 Ubuntu 설치 과정은 다음 포스팅을 참고하셔서 진행하세요.


    Windows 10에서 Windows Subsystem for Linux를 사용하여 Ubuntu 설치 하는 방법( bash )

    http://webnautes.tistory.com/1170




    본 포스팅에서는 OpenCV 3.3.1과 opencv_contrib(extra modules)를 컴파일하여 Ubuntu에 설치하는 방법을 다룹니다.



    최초 작성 - 2017. 12. 16




    1. 기존 설치된 패키지 업그레이드


    2. OpenCV 컴파일 전 필요한 패키지 설치


    3. OpenCV 설정과 컴파일 및 설치


    4. OpenCV 설치 결과 확인

        4.1. Xming X Server for Windows 설치

        4.2. C/C++

        4.3. Python




    1. 기존 설치된 패키지 업그레이드

    OpenCV 를 설치해주기 전에 기존에 설치된 패키지들을 업그레이드 해주기 위한 작업입니다.

    오래 걸리더라도 해주는 것이 좋습니다.



    Ubuntu 저장소(repository)로부터 패키지 리스트를 업데이트합니다.

    기존에 설치된 패키지들의 새로운 버전이 저장소에 있다면 리스트를 업데이트 하기위해 실행합니다.


    $ sudo apt-get update




    기존에 설치된 패키지의 새로운 버전이 있으면 업그레이드를 진행합니다.


    $ sudo apt-get upgrade




    2. OpenCV 컴파일 전 필요한 패키지 설치


    OpenCV를 컴파일하는데 사용하는 것들이 포함된 패키지들을 설치합니다.


    build-essential 패키지에는 C/C++ 컴파일러와 관련 라이브러리, make 같은 도구들이 포함되어 있습니다.

    cmake는 컴파일 옵션이나 빌드된 라이브러리에 포함시킬 OpenCV 모듈 설정등을 위해 필요합니다.


    $ sudo apt-get install build-essential cmake




    pkg-config는 프로그램 컴파일 및 링크시 필요한 라이브러리에 대한 정보를 메타파일(확장자가 .pc 인 파일)로부터 가져오는데 사용됩니다.

    터미널에서 특정 라이브러리를 사용한 소스코드를 컴파일시 필요한 컴파일러 및 링커 플래그를 추가하는데 도움이 됩니다.  


    $ sudo apt-get install pkg-config




    특정 포맷의 이미지 파일을 불러오거나 기록하기 위해 필요한 패키지들입니다.


    $ sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev




    특정 코덱의 비디오 파일을 읽어오거나 기록하기 위해 필요한 패키지들입니다.


    $ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libxvidcore-dev libx264-dev libxine2-dev




    아직은 Windows Subsystem for Linux에서 USB 웹캠 디바이스를 사용할 수 없습니다.

    Video4Linux 패키지는 리눅스에서 실시간 비디오 캡처를 지원하기 위한 디바이스 드라이버와 API를 포함하고 있습니다.


    $ sudo apt-get install libv4l-dev v4l-utils




    OpenCV에서는 highgui 모듈을 사용하여 자체적으로 윈도우 생성하여 이미지나 비디오들을 보여줄 수 있습니다.

    윈도우 생성 등의 GUI를 위해 gtk 또는 qt를 선택해서 사용가능합니다.  

    여기서는 gtk를 지정해주었습니다.


    $ sudo apt-get install libgtk2.0-dev




    OpenCV 최적화를 위해 사용되는 라이브러리들입니다.

    $ sudo apt-get install libatlas-base-dev gfortran libeigen3-dev




    python2.7-dev와 python3-dev 패키지는 OpenCV-Python 바인딩을 위해 필요한 패키지들입니다.

    Numpy는 매트릭스 연산등을 빠르게 처리할 수 있어서 OpenCV에서 사용됩니다.


    $ sudo apt-get install python2.7-dev python3-dev python-numpy python3-numpy





    3. OpenCV 설정과 컴파일 및 설치


    소스 코드를 저장할 임시 디렉토리를 생성하여 이동 후.. 진행합니다.


    note@webnautes-pc:~$ mkdir opencv
    note@webnautes-pc:~$ cd opencv
    note@webnautes-pc:~/opencv$




    zip 압축을 풀기 위해서 unzip 패키지가 필요합니다.


    note@webnautes-pc:~/opencv$ sudo apt-get install unzip



    OpenCV 3.3.1 소스코드를 다운로드 받아 압축을 풀어줍니다.

    $ wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.3.1.zip
    $ unzip opencv.zip




    opencv_contrib(extra modules) 소스코드를 다운로드 받아 압축을 풀어줍니다.

    SIFT, SURF 등을 사용하기 위해 필요합니다.


    $ wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.3.1.zip
    $ unzip opencv_contrib.zip




    다음처럼 두 개의 디렉토리가 생성됩니다.


    note@webnautes-pc:~/opencv$ ls -d */
    opencv-3.3.1/  opencv_contrib-3.3.1/




    opencv-3.3.1 디렉토리로 이동하여 build 디렉토리를 생성하고 build 디렉토리로 이동합니다.

    컴파일은 build 디렉토리에서 이루어집니다.


    note@webnautes-pc:~/opencv$ cd opencv-3.3.1/
    note@webnautes-pc:~/opencv/opencv-3.3.1$ mkdir build
    note@webnautes-pc:~/opencv/opencv-3.3.1$ cd build
    note@webnautes-pc:~/opencv/opencv-3.3.1/build$




    cmake를 사용하여 OpenCV 컴파일 설정을 해줍니다.


    $ cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D WITH_TBB=OFF \
    -D WITH_IPP=OFF \
    -D WITH_1394=OFF \
    -D BUILD_WITH_DEBUG_INFO=OFF \
    -D BUILD_DOCS=OFF \
    -D INSTALL_C_EXAMPLES=ON \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D BUILD_EXAMPLES=OFF \
    -D BUILD_TESTS=OFF \
    -D BUILD_PERF_TESTS=OFF \
    -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.3.1/modules \
    -D WITH_FFMPEG=ON \
    -D WITH_XINE=ON \
    -D BUILD_NEW_PYTHON_SUPPORT=ON \
    ../




    다음과 같은 메시지가 보이면 정상적으로 된 것입니다.


    -- Configuring done
    -- Generating done
    -- Build files have been written to: /home/note/opencv/opencv-3.3.1/build




    cmake 실행 결과입니다.


    -- General configuration for OpenCV 3.3.1 =====================================

    --   Version control:               unknown

    --

    --   Extra modules:

    --     Location (extra):            /home/note/opencv/opencv_contrib-3.3.1/modules

    --     Version control (extra):     unknown

    --

    --   Platform:

    --     Timestamp:                   2017-12-15T14:24:17Z

    --     Host:                        Linux 4.4.0-43-Microsoft x86_64

    --     CMake:                       3.5.1

    --     CMake generator:             Unix Makefiles

    --     CMake build tool:            /usr/bin/make

    --     Configuration:               RELEASE

    --

    --   CPU/HW features:

    --     Baseline:                    SSE SSE2 SSE3

    --       requested:                 SSE3

    --     Dispatched code generation:  SSE4_1 SSE4_2 FP16 AVX AVX2

    --       requested:                 SSE4_1 SSE4_2 AVX FP16 AVX2

    --       SSE4_1 (3 files):          + SSSE3 SSE4_1

    --       SSE4_2 (1 files):          + SSSE3 SSE4_1 POPCNT SSE4_2

    --       FP16 (1 files):            + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 AVX

    --       AVX (5 files):             + SSSE3 SSE4_1 POPCNT SSE4_2 AVX

    --       AVX2 (8 files):            + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 FMA3 AVX AVX2

    --

    --   C/C++:

    --     Built as dynamic libs?:      YES

    --     C++ Compiler:                /usr/bin/c++  (ver 5.4.0)

    --     C++ flags (Release):         -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Winit-self -Wno-narrowing -Wno-delete-non-virtual-dtor -Wno-comment -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffunction-sections  -msse -msse2 -msse3 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -DNDEBUG  -DNDEBUG

    --     C++ flags (Debug):           -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Winit-self -Wno-narrowing -Wno-delete-non-virtual-dtor -Wno-comment -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffunction-sections  -msse -msse2 -msse3 -fvisibility=hidden -fvisibility-inlines-hidden -g  -O0 -DDEBUG -D_DEBUG

    --     C Compiler:                  /usr/bin/cc

    --     C flags (Release):           -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wuninitialized -Winit-self -Wno-narrowing -Wno-comment -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffunction-sections  -msse -msse2 -msse3 -fvisibility=hidden -O3 -DNDEBUG  -DNDEBUG

    --     C flags (Debug):             -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wuninitialized -Winit-self -Wno-narrowing -Wno-comment -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffunction-sections  -msse -msse2 -msse3 -fvisibility=hidden -g  -O0 -DDEBUG -D_DEBUG

    --     Linker flags (Release):

    --     Linker flags (Debug):

    --     ccache:                      NO

    --     Precompiled headers:         YES

    --     Extra dependencies:          dl m pthread rt

    --     3rdparty dependencies:

    --

    --   OpenCV modules:

    --     To be built:                 core flann imgproc ml objdetect phase_unwrapping photo plot reg surface_matching video xphoto bgsegm dnn face freetype fuzzy img_hash imgcodecs shape videoio xobjdetect highgui superres bioinspired dpm features2d line_descriptor saliency text calib3d ccalib datasets rgbd stereo structured_light tracking videostab xfeatures2d ximgproc aruco optflow stitching python2 python3

    --     Disabled:                    js world contrib_world

    --     Disabled by dependency:      -

    --     Unavailable:                 cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev java ts viz cnn_3dobj cvv dnn_modern hdf matlab sfm

    --

    --   GUI:

    --     QT:                          NO

    --     GTK+ 2.x:                    YES (ver 2.24.30)

    --     GThread :                    YES (ver 2.48.2)

    --     GtkGlExt:                    NO

    --     OpenGL support:              NO

    --     VTK support:                 NO

    --

    --   Media I/O:

    --     ZLib:                        /usr/lib/x86_64-linux-gnu/libz.so (ver 1.2.8)

    --     JPEG:                        /usr/lib/x86_64-linux-gnu/libjpeg.so (ver )

    --     WEBP:                        build (ver encoder: 0x020e)

    --     PNG:                         /usr/lib/x86_64-linux-gnu/libpng.so (ver 1.2.54)

    --     TIFF:                        /usr/lib/x86_64-linux-gnu/libtiff.so (ver 42 - 4.0.6)

    --     JPEG 2000:                   /usr/lib/x86_64-linux-gnu/libjasper.so (ver 1.900.1)

    --     OpenEXR:                     build (ver 1.7.1)

    --     GDAL:                        NO

    --     GDCM:                        NO

    --

    --   Video I/O:

    --     DC1394 1.x:                  NO

    --     DC1394 2.x:                  NO

    --     FFMPEG:                      YES

    --       avcodec:                   YES (ver 56.60.100)

    --       avformat:                  YES (ver 56.40.101)

    --       avutil:                    YES (ver 54.31.100)

    --       swscale:                   YES (ver 3.1.101)

    --       avresample:                NO

    --     GStreamer:                   NO

    --     OpenNI:                      NO

    --     OpenNI PrimeSensor Modules:  NO

    --     OpenNI2:                     NO

    --     PvAPI:                       NO

    --     GigEVisionSDK:               NO

    --     Aravis SDK:                  NO

    --     UniCap:                      NO

    --     UniCap ucil:                 NO

    --     V4L/V4L2:                    NO/YES

    --     XIMEA:                       NO

    --     Xine:                        YES (ver 1.2.6)

    --     Intel Media SDK:             NO

    --     gPhoto2:                     NO

    --

    --   Parallel framework:            pthreads

    --

    --   Trace:                         YES (with Intel ITT)

    --

    --   Other third-party libraries:

    --     Use Intel IPP:               NO

    --     Use Intel IPP IW:            NO

    --     Use VA:                      NO

    --     Use Intel VA-API/OpenCL:     NO

    --     Use Lapack:                  NO

    --     Use Eigen:                   YES (ver 3.2.92)

    --     Use Cuda:                    NO

    --     Use OpenCL:                  YES

    --     Use OpenVX:                  NO

    --     Use custom HAL:              NO

    --

    --   OpenCL:                        <Dynamic loading of OpenCL library>

    --     Include path:                /home/note/opencv/opencv-3.3.1/3rdparty/include/opencl/1.2

    --     Use AMDFFT:                  NO

    --     Use AMDBLAS:                 NO

    --

    --   Python 2:

    --     Interpreter:                 /usr/bin/python2.7 (ver 2.7.12)

    --     Libraries:                   /usr/lib/x86_64-linux-gnu/libpython2.7.so (ver 2.7.12)

    --     numpy:                       /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.11.0)

    --     packages path:               lib/python2.7/dist-packages

    --

    --   Python 3:

    --     Interpreter:                 /usr/bin/python3 (ver 3.5.2)

    --     Libraries:                   /usr/lib/x86_64-linux-gnu/libpython3.5m.so (ver 3.5.2)

    --     numpy:                       /usr/lib/python3/dist-packages/numpy/core/include (ver 1.11.0)

    --     packages path:               lib/python3.5/dist-packages

    --

    --   Python (for build):            /usr/bin/python2.7

    --

    --   Java:

    --     ant:                         NO

    --     JNI:                         NO

    --     Java wrappers:               NO

    --     Java tests:                  NO

    --

    --   Matlab:                        Matlab not found or implicitly disabled

    --

    --   Tests and samples:

    --     Tests:                       NO

    --     Performance tests:           NO

    --     C/C++ Examples:              NO

    --

    --   Install path:                  /usr/local

    --

    --   cvconfig.h is in:              /home/note/opencv/opencv-3.3.1/build

    -- -----------------------------------------------------------------

    --

    -- Configuring done

    -- Generating done

    -- Build files have been written to: /home/note/opencv/opencv-3.3.1/build





    컴파일을 시작하기 전에 사용 중인 컴퓨터의 CPU 코어수를 확인합니다.


    $ cat /proc/cpuinfo | grep processor | wc -l
    4




    make 명령을 사용하여 컴파일을 시작합니다.

    -j 다음에 위에서 확인한 숫자를 붙여서 실행해줍니다.


    note@webnautes-pc:~/opencv/opencv-3.3.1/build$ make -j4



    컴파일 결과물을 설치합니다.

    note@webnautes-pc:~/opencv/opencv-3.3.1/build$ sudo make install




    ..


    ..


    /etc/ld.so.conf.d/ 디렉토리에 /usr/local/lib를 포함하는 설정파일이 있는지 확인합니다.


    note@webnautes-pc:~/opencv/opencv-3.3.1/build$ cat /etc/ld.so.conf.d/*
    /usr/lib/x86_64-linux-gnu/libfakeroot

    # libc default configuration

    /usr/local/lib

    # Multiarch support

    /lib/x86_64-linux-gnu

    /usr/lib/x86_64-linux-gnu




    /usr/local/lib이 출력되지 않았다면 다음 명령을 추가로 실행해야합니다.


    note@webnautes-pc:~/opencv/opencv-3.3.1/build$  sudo sh -c 'echo '/usr/local/lib' > /etc/ld.so.conf.d/opencv.conf'



    /usr/local/lib을 찾은 경우나 못찾아서 추가한 작업을 한 경우 모두 컴파일시 opencv  라이브러리를 찾을 수 있도록 다음 명령을 실행합니다.


    note@webnautes-pc:~/opencv/opencv-3.3.1/build$ sudo ldconfig




    4. OpenCV 설치 결과 확인

    4.1. Xming X Server for Windows 설치


    Xming X Server for Windows(https://sourceforge.net/projects/xming/ )을  윈도우에 설치해주고 다음처럼 실행해야 가능해집니다.



    $ export DISPLAY=:0

    $ ./main



    윈도우에서는 다음처럼 하면  실행이 됩니다.

    C:\Users\webnautes>bash -c "export DISPLAY=:0 && ./main



    4.2. C/C++

    C/C++를 위해 OpenCV 라이브러리 사용가능 여부를 확인합니다.

    문제 없으면 설치된 OpenCV 라이브러리의 버전이 출력됩니다.


    note@webnautes-pc:~/opencv/opencv-3.3.1/build$ pkg-config --modversion opencv

    3.3.1




    아래처럼 opencv를 찾을 수 없다고 나오면  추가 작업이 필요합니다.


    note@webnautes-pc:~/opencv/opencv-3.3.1/build$ pkg-config --modversion opencv
    Package opencv was not found in the pkg-config search path.
    Perhaps you should add the directory containing `opencv.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'opencv' found




    pkg-config 명령이 /usr/local/lib/pkgconfig 경로에 있는 opencv.pc 파일을 찾을 수 있도록 해줘야 합니다.


    $ sudo sh -c 'echo PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig >> /etc/bash.bashrc'

    $ sudo sh -c 'echo export PKG_CONFIG_PATH >> /etc/bash.bashrc'



    로그아웃했다가 로그인하면 적용이됩니다.


    다시 확인했을 때,  OpenCV 버전이 출력되야 합니다.


    note@webnautes-pc:~/opencv/opencv-3.3.1/build$ pkg-config --modversion opencv

    3.3.1




    pkg-config --libs --cflags opencv 명령을 실행했을 때 다음처럼 나오면 문제없이 설치가 완료된 것입니다.


    note@webnautes-pc:~/opencv/opencv-3.3.1/build$ pkg-config --libs --cflags opencv

    -I/usr/local/include/opencv -I/usr/local/include -L/usr/local/lib -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_photo -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dpm -lopencv_face -lopencv_freetype -lopencv_fuzzy -lopencv_img_hash -lopencv_line_descriptor -lopencv_optflow -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_dnn -lopencv_plot -lopencv_xfeatures2d -lopencv_shape -lopencv_video -lopencv_ml -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_flann -lopencv_xobjdetect -lopencv_imgcodecs -lopencv_objdetect -lopencv_xphoto -lopencv_imgproc -lopencv_core





    /usr/local/share/OpenCV/samples/  경로에 OpenCV 예제코드들이 설치됩니다.





    예제 코드를 하나 컴파일 해보겠습니다. main.cpp 파일 이름으로 다음 내용을 저장합니다.


    #include <opencv2/core.hpp>
    #include <opencv2/highgui.hpp>
    #include <iostream>

    using namespace cv;
    using namespace std;



    int main(int argc, char** argv)
    {
           if ( argc != 2 ){
                   cout << "usage: " << argv[0] << " <image path>" << endl;
                   return -1;
           }



           Mat image;
           image = imread( argv[1], IMREAD_COLOR);

           cout << image.channels() << endl;

           if ( image.empty() )
           {
                   cout << "Could not open or find the image" << endl;
                   return -1;
           }


           namedWindow("Display window", WINDOW_AUTOSIZE);
           imshow("Display window", image);

           waitKey(0);


           return 0;
    }




    컴파일 후, 실행시켜 봅니다.


    note@webnautes-pc:~$ g++ main.cpp -o main $(pkg-config --libs --cflags opencv)  

    note@webnautes-pc:~$ export DISPLAY=:0

    note@webnautes-pc:~$ ./main  /mnt/d/lena_std.png



    다음처럼 결과를 얻을 수 있습니다.





    4.3. Python

    python 2.x와 python 3x에서 opencv 라이브러리를 사용가능한지는 다음처럼 확인합니다.

    각각 OpenCV 버전이 출력되어야 합니다.

    note@webnautes-pc:~$ python

    Python 2.7.12 (default, Nov 20 2017, 18:23:56)

    [GCC 5.4.0 20160609] on linux2

    Type "help", "copyright", "credits" or "license" for more information.

    >>> import cv2

    >>> cv2.__version__

    '3.3.1'

    >>>



    note@webnautes-pc:~$ python3

    Python 3.5.2 (default, Nov 23 2017, 16:37:01)

    [GCC 5.4.0 20160609] on linux

    Type "help", "copyright", "credits" or "license" for more information.

    >>> import cv2

    >>> cv2.__version__

    '3.3.1'

    >>>




    예제 코드를 실행해봅니다. main.py라는 이름으로 다음 내용을 저장합니다.


    import cv2
    import sys

    img_color = cv2.imread( sys.argv[1], cv2.IMREAD_COLOR )

    cv2.imshow( 'color image', img_color )

    cv2.waitKey(0)




    이제 실행시켜 봅니다.


    note@webnautes-pc:~$ export DISPLAY=:0
    note@webnautes-pc:~$ python main.py /mnt/d/lena_std.png




    다음처럼  결과를 얻을 수 있습니다.








    포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
    댓글로 알려주시면 빠른 시일내에 답변을 드리겠습니다.

    여러분의 응원으로 좋은 컨텐츠가 만들어집니다. 지금 본 내용이 도움이 되었다면 유튜브 구독 부탁드립니다. 감사합니다 : )

    유튜브 구독하기


    댓글 2

    • 최준용 2018.11.09 11:06


      글 잘보고있어요~ 너무 감사합니다 ㅎㅎㅎ
      이렇게 서브시스템으로 우분투를 깔면, 우분투에서 윈도우 프로그램 사용할수있다고 저번에 포스팅 된 글 봤는데요!
      마찬가지로 윈도우에 설치된 opencv도 우분투에서 사용이가능할까요?

Designed by Tistory.