Python3+OpenCV3.1+ffmpeg로 동영상 로드(Ubuntu16.04)

Mac에 듀얼 부트 한 Ubuntu16.04에 OpenCV3.1을 설치했을 때의 각서입니다.

환경


  • Ubuntu16.04
  • Python 3.5.2

  • 우분투는 iMac에 듀얼 부팅 한 것입니다. Python3계는 pyenv 를 사용하지 않고 sudo apt-get install python3-pip python3-dev 로 인스톨 했습니다.

    ffmpeg를 OpenCV에서 사용하려면



    OpenCV의 설치는 anaconda 를 사용하면 편하게 할 수 있다고 생각했습니다만, 동영상 파일( mp4avi 등)의 로딩에 대응하고 있지 않습니다.

    아무래도 전개할 때, 스스로 빌드해야 하는 것 같습니다. 참고가 된 링크를 붙여 둡니다.

    OpenCV 3.1 Installation Guide on Ubuntu 16.04 - GitHub

    이쪽을 그대로 이용할 수 있었습니다.
    $ sudo apt-get install --assume-yes build-essential cmake git
    $ sudo apt-get install --assume-yes build-essential pkg-config unzip ffmpeg qtbase5-dev python-dev python3-dev python-numpy python3-numpy
    $ sudo apt-get install --assume-yes libopencv-dev libgtk-3-dev libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev
    $ sudo apt-get install --assume-yes libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
    $ sudo apt-get install --assume-yes libv4l-dev libtbb-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev
    $ sudo apt-get install --assume-yes libvorbis-dev libxvidcore-dev v4l-utils
    

    공식 리포지토리에서 다운로드 한 것은 CUDA 지원도되어있는 것 같습니다.
    $ git clone https://github.com/opencv/opencv.git
    $ cd opencv
    

    다운로드 후, 이하의 지정을 해 빌드합니다.
    $ mkdir build
    $ cd build/
    $ cmake -D CMAKE_BUILD_TYPE=RELEASE -D
    CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D
    WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D
    WITH_CUBLAS=ON -DCUDA_NVCC_FLAGS="-D_FORCE_INLINES" ..    
    $ make -j $(($(nproc) + 1))
    

    배포하고 설치합니다.
    $ sudo make install
    $ sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
    $ sudo ldconfig
    $ sudo apt-get update
    

    빌드는 1시간 반위는 봐 두는 편이 좋네요.

    동영상 로드



    이제 동영상을 로드할 수 있습니다. 공식 문서 의 샘플 코드를 사용해 보십시오.
    import numpy as np
    import cv2
    
    cap = cv2.VideoCapture('street.mp4')
    
    while(cap.isOpened()):
        ret, frame = cap.read()
    
        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    
        cv2.imshow('frame',gray)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    
    cap.release()
    cv2.destroyAllWindows()
    
    

    무료 스톡 동영상 사이트 보다 다운로드한 이미지를 흑백으로 표시해 봅니다.



    잘 갔다.

    좋은 웹페이지 즐겨찾기