OpenCV 시작하기

JERRY·2025년 5월 23일
0

Deep Learning

목록 보기
29/35
post-thumbnail

1. OpenCV 개요

OpenCV 개요

What is OpenCV?

  • Open source
  • Computer vision & machine learning
  • Software library

Why OpenCV?

  • BSD/Apache 2 license … Free for academic & commercial use
  • Multiple interface … C, C++, Python, Java, JavaScript, MATLAB, etc.
  • Multiple platform … Windows, Linux, Mac OS, iOS, Android
  • Optimized … CPU instructions, Multi-core processing, OpenCL, CUDA
  • Popular … More than 18 million downloads
  • Usage ... Stitching streetview images, detecting intrusions, monitoring mine equipment, helping robots navigate and pick up objects, Interactive art, etc.

OpenCV 역사

OpenCV 구성

OpenCV 모듈

  • 메인 모듈(main modules): Core, widely used, infrastructures
  • 추가 모듈(extra modules): Brand new, unpopular, non-free, HW dependency, etc.

OpenCV 메인 모듈과 설명

OpenCV Environment


2. OpenCV-Python 설치와 개발 환경 설정

OpenCV-Python 설치

pip 명령으로 opencv-python 설치하기

  • 명령 프롬프트에서 아래 명령어를 입력
    pip install opencv-python
  • 시스템에 numpy가 설치되어 있지 않다면 numpy도 함께 설치됨
  • Anaconda 또는 Miniconda를 사용하고 있다면 conda activate env-name 명령으로 원하는 가상 환경을 선택한 후, pip 명령으로 설치
  • 설치되는 OpenCV 버전은 https://pypi.org/ 에서 확인 가능
  • OpenCV 추가 모듈도 함께 사용하려면 opencv-contrib-python 패키지를 설치

opencv-python 설치 화면 & 설치 확인하기

OpenCV-Python 개발 환경 설정

메모장 + 명령프롬프트

주피터 노트북(Jupyter Notebook)

  • 웹 브라우저에서 파이썬 코드를 작성 & 블록 단위 실행
  • 마크업 언어와 그림 등을 활용한 설명 추가가 쉬움

파이썬 IDE

  • PyCharm, Visual Studio Code, Spider 등
  • 편리한 디버깅
  • OpenCV에서 제공하는 GUI 기능 사용

VS Code에서 새 Python 프로그램 만들기

  • VS Code에서 [파일] → [폴더 열기] 메뉴 선택한 후, 코드를 작성할 폴더를 선택
    • (e.g.) C:\coding\ds_school\opencv\ch02
  • VS Code 탐색기 창에서 [새 파일] 버튼 클릭 후, HelloCV.py 파일 이름 입력
  • 편집창에 소스 코드 입력

VS Code에서 Python 프로그램 실행하기

  • [실행] → [디버깅 없이 실행 (CTRL+F5)] 메뉴 선택

3. 기본적인 영상 출력 프로그램

기본적인 영상 출력 프로그램

BMP 파일을 불러와서 출력하는 BmpShow.py 소스 코드

영상 불러와서 출력하기

BmpShow.py 프로그램 실행하기

  • 현재 폴더에 cat.bmp 파일이 없을 경우
  • 현재 폴더에 cat.bmp 파일을 저장한 후 실행한 결과

4. OpenCV 주요 함수 사용법

OpenCV 주요 함수 사용법

영상 파일 불러오기

영상 파일 저장하기

새 창 띄우기

창 닫기

영상 출력하기

키보드 입력 대기

OpenCV 도움말 사이트

OpenCV API 도움말 찾기


5. Matplotlib을 이용한 영상 출력

Matplotlib 라이브러리

  • 함수 그래프, 차트(chart), 히스토그램(histogram) 등의 다양한 그리기 기능을 제공하는 Python 패키지
  • OpenCV를 사용하기 위해 반드시 설치해야 하는 라이브러리는 아니지만 numpy.ndarray 영상 데이터를 다양한 형태로 화면 출력할 때 사용할 수 있음
  • 특히 쥬피터 노트북 환경에서 영상을 웹브라우저 안에 출력할 때 유용

Matplotlib 라이브러리 설치하기

pip install matplotlib

Matplotlib으로 컬러 영상 출력하기

  • OpenCV에서 불러온 컬러 영상 데이터는 BGR 순서이지만, Matplotlib는 영상 데이터의 색상 순서가 RGB 순서라고 간주함
  • 그러므로 cv2.cvtColor() 함수 이용하여 색상 순서를 변경해야 함
img = cv2.imread('cat.bmp')
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
plt.show()

Matplotlib으로 그레이스케일 영상 출력하기

  • plt.imshow() 함수에서 컬러맵을 cmap='gray' 으로 지정해야 함
img = cv2.imread('cat.bmp', cv2.IMREAD_GRAYSCALE)
plt.imshow(img, cmap='gray')
plt.show()

Matplotlib을 이용하여 영상 출력하기

import matplotlib.pyplot as plt
import cv2

# 컬러 영상 출력
imgBGR = cv2.imread('cat.bmp')
imgRGB = cv2.cvtColor(imgBGR, cv2.COLOR_BGR2RGB)

plt.axis('off')
plt.imshow(imgRGB)
plt.show()

# 그레이스케일 영상 출력
imgGray = cv2.imread('cat.bmp', cv2.IMREAD_GRAYSCALE)

plt.axis('off')
plt.imshow(imgGray, cmap='gray')
plt.show()

Matplotlib을 이용하여 창 하나에 여러 개의 이미지 출력하기

import matplotlib.pyplot as plt
import cv2

# 컬러 영상 & 그레이스케일 영상 불러오기
imgBGR = cv2.imread(cat.bmp')
imgRGB = cv2.cvtColor(imgBGR, cv2.COLOR_BGR2RGB)
imgGray = cv2.imread('cat.bmp', cv2.IMREAD_GRAYSCALE)

# 두 개의 영상을 함께 출력
plt.subplot(121), plt.axis('off'), plt.imshow(imgRGB)
plt.subplot(122), plt.axis('off'), plt.imshow(imgGray, cmap='gray')
plt.show()

Jupyter Notebook에서 Matplotlib으로 영상 출력하기

0개의 댓글