호타리 2025. 5. 27. 09:29

2025.05.26

 

가상환경 (Gstreamer 사용 불가)

 

기본환경(Gstreamer 사용 가능)

 

파일 실행 시 Gstreamer 사용 가능한 기본환경으로 실행되도록 설정

import cv2

gst = (
    "v4l2src device=/dev/video0 ! "
    "video/x-raw,format=YUY2,width=640,height=480,framerate=30/1 ! "
    "videoconvert ! "
    "video/x-raw,format=BGR ! "
    "appsink drop=true max-buffers=1"
)
cap = cv2.VideoCapture(gst, cv2.CAP_GSTREAMER)

if not cap.isOpened():
    print("Failed to open pipeline")
    exit()

print("Pipeline opened, starting frame display")
while True:
    ret, frame = cap.read()
    if not ret:
        print("Failed to receive frame")
        break

    cv2.imshow("Live Camera", frame)
    if cv2.waitKey(1) & 0xFF == 27:
        break

cap.release()
cv2.destroyAllWindows()

 

sudo apt install cmake build-essential pkg-config git

sudo apt install libjpeg-dev libtiff-dev libjasper-dev libpng-dev libwebp-dev libopenexr-dev

 

방법 1: libjasper-dev 생략하기

OpenCV 대부분의 기능은 libjasper-dev 없이도 잘 동작

sudo apt install libavcodec-dev libavformat-dev libswscale-dev \
libv4l-dev libxvidcore-dev libx264-dev libdc1394-22-dev \
libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev

 

각 패키지 간단 설명:

패키지
설명
libavcodec-dev, libavformat-dev, libswscale-dev
FFmpeg 관련, 영상 코덱 인코딩/디코딩
libv4l-dev
Video4Linux – 웹캠 등 비디오 입력 장치 지원
libxvidcore-dev, libx264-dev
Xvid, H.264 인코딩 라이브러리
libdc1394-22-dev
FireWire(IEEE 1394) 카메라 지원
libgstreamer1.0-dev, libgstreamer-plugins-base1.0-dev
GStreamer – 멀티미디어 처리 파이프라인
[출처] [Rasberrypi]Open CV|작성자 jjwkth2

 

2. 직접 빌드해서 설치 (고급, 성능 최적화 가능)

OpenCV를 직접 빌드하면, 하드웨어 최적화, 모듈 선택, CUDA 지원 등을 세밀하게 설정할 수 있습니다.

🔧 사전 패키지 설치

 
sudo apt update
sudo apt install -y build-essential cmake git pkg-config
sudo apt install -y libjpeg-dev libtiff-dev libpng-dev
sudo apt install -y libavcodec-dev libavformat-dev libswscale-dev
sudo apt install -y libv4l-dev v4l-utils
sudo apt install -y libxvidcore-dev libx264-dev
sudo apt install -y libgtk-3-dev
sudo apt install -y libatlas-base-dev gfortran
sudo apt install -y python3-dev python3-numpy

 

OpenCV 소스 다운로드

cd ~
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
cd opencv
git checkout 4.x   # 최신 4버전 사용
cd ../opencv_contrib
git checkout 4.x

 

CMake로 빌드 설정

cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D OPENCV_EXTRA_MODULES_PATH=~/Work/opencv_contrib/modules \
      -D BUILD_EXAMPLES=ON \
      -D WITH_OPENCL=ON \
      -D WITH_TBB=ON \
      -D WITH_OPENGL=ON \
      -D WITH_V4L=ON \
      -D WITH_QT=OFF \
      -D WITH_GTK=ON \
      -D WITH_FFMPEG=ON \
      -D BUILD_OPENCV_PYTHON3=ON \
      -D OPENCV_GENERATE_PKGCONFIG=ON \
      ..

 

빌드 및 설치

make -j$(nproc)   # 코어 수만큼 병렬 빌드
sudo make install
sudo ldconfig