본문 바로가기
컴퓨터비젼

OpenCV란?

by 3in9u 2025. 4. 4.

💡 개요

  • Open Source Computer Vision Library (OpenCV)
  • 컴퓨터 비전이미지/영상 처리를 위한 오픈소스 라이브러리
  • 다양한 프로그래밍 언어 지원: Python, C++, Java 등
  • 실시간 영상 처리 및 객체 인식, 머신러닝/딥러닝 연계 가능

예: 얼굴 인식, 번호판 인식, 동작 감지, 배경 제거, 도형 인식 등 다양한 프로젝트에 사용됨


🔧 OpenCV의 주요 기능

🖼️ 1. 이미지 처리

기능설명함수 예시
이미지 읽기 이미지 파일을 불러오기 cv2.imread('img.jpg')
이미지 저장 이미지 파일로 저장 cv2.imwrite('save.jpg', img)
색상 변환 BGR ↔ GRAY / HSV / LAB 등 cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
필터링 블러링, 노이즈 제거 cv2.GaussianBlur(), cv2.medianBlur()
히스토그램 분석 밝기 분포 확인 cv2.calcHist()

🎞️ 2. 영상 처리

기능설명함수 예시
영상 불러오기 프레임 단위로 처리 cv2.VideoCapture(0)
모션 감지 프레임 간 차이 계산 프레임 간 차분 + 이진화
엣지 검출 윤곽선 검출 cv2.Canny(img, 100, 200)

영상은 여러 개의 이미지를 빠르게 연속으로 보여주는 것 → 이미지 처리 기법 대부분을 그대로 적용 가능!


🧍 3. 객체 검출

기능설명함수 예시
얼굴/눈 검출 Haar Cascade 기반 cv2.CascadeClassifier()
딥러닝 연동 사전 학습된 YOLO, MobileNet 등 cv2.dnn.readNetFrom...()
객체 경계 상자 출력 검출 결과를 직사각형으로 시각화 cv2.rectangle()

OpenCV는 자체 검출기 외에도 YOLO나 TensorFlow 모델과의 연동도 지원합니다.


📐 4. 영상 변환 및 기하학 연산

기능설명함수 예시
크기 변경 확대/축소 cv2.resize(img, (w, h))
회전 90도, 180도 등 cv2.rotate(img, cv2.ROTATE_90_CLOCKWISE)
기하 변형 이동, 확대, 투시 왜곡 등 cv2.warpAffine(), cv2.warpPerspective()

🎨 5. 색 공간 변환 (Color Space)

이미지는 보통 BGR(Blue, Green, Red) 형식으로 저장됩니다.
→ 다양한 작업을 위해 다른 색 공간으로 변환해야 할 때가 많습니다.

변환 대상설명코드 예시
GRAY 흑백 이미지 cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
HSV 색상(Hue), 채도(Saturation), 명도(Value) cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
LAB 밝기 및 색상 분리 cv2.cvtColor(img, cv2.COLOR_BGR2LAB)

예: HSV는 색상 필터링, GRAY는 엣지 검출, LAB는 밝기 보정에 주로 사용됩니다.


✨ 간단 예제 코드 (Python)

import cv2

# 이미지 읽기
img = cv2.imread('image.jpg')

# 색 공간 변환
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

# 엣지 검출
edges = cv2.Canny(gray, 100, 200)

# 이미지 보여주기
cv2.imshow('Gray Image', gray)
cv2.imshow('Edge Detection', edges)
cv2.waitKey(0)
cv2.destroyAllWindows()

'컴퓨터비젼' 카테고리의 다른 글

객체 추적(Object Tracking)  (0) 2025.04.04
OpenCV 기능 상세 정리  (0) 2025.04.04
객체 검출 (Object Detection)  (0) 2025.03.27
영상의 미분 (Image Derivative)  (0) 2025.03.21
표본화, 양자화, 부호화  (0) 2025.03.19