호타리
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
|
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