파이썬 모듈 : OpenCV 읽기, 쓰기, 필터링

2023. 3. 24. 08:46·파이썬/OpenCV
반응형
OpenCV는 영상 처리를 위한 라이브러리입니다. 파이썬에서 OpenCV를 사용하려면 cv2 모듈을 import해야 합니다. 이번 글에서는 cv2 모듈의 기본적인 사용법과 실제 예제를 포함한 코드 샘플을 알아보겠습니다.

이미지 읽기

cv2.imread() 함수를 사용하여 이미지를 읽을 수 있습니다. 이 함수는 이미지 파일의 경로를 인자로 받고, 이미지를 NumPy 배열로 반환합니다.

import cv2

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

# 이미지 출력
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

위 코드에서 cv2.imshow() 함수는 이미지를 화면에 출력합니다. cv2.waitKey() 함수는 키보드 입력을 기다리는 동안 이미지를 출력하며, cv2.destroyAllWindows() 함수는 모든 창을 닫습니다.


이미지 쓰기

cv2.imwrite() 함수를 사용하여 이미지를 파일로 저장할 수 있습니다.

import cv2

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

# 이미지 회전
img_rotated = cv2.rotate(img, cv2.ROTATE_90_CLOCKWISE)

# 이미지 쓰기
cv2.imwrite('image_rotated.jpg', img_rotated)

위 코드에서 cv2.rotate() 함수는 이미지를 회전시키며, cv2.imwrite() 함수는 회전된 이미지를 파일로 저장합니다.


이미지 필터링

cv2.filter2D() 함수를 사용하여 이미지를 필터링할 수 있습니다. 이 함수는 이미지와 필터 커널을 인자로 받고, 필터링된 이미지를 반환합니다.

import cv2
import numpy as np

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

# 필터 커널 정의
kernel = np.array([[0, -1, 0], [-1, 5, -1], [0, -1, 0]])

# 이미지 필터링
img_filtered = cv2.filter2D(img, -1, kernel)

# 이미지 출력
cv2.imshow('image', img_filtered)
cv2.waitKey(0)
cv2.destroyAllWindows()

위 코드에서 필터 커널은 NumPy 배열로 정의되며, 이미지 필터링 결과는 cv2.filter2D() 함수로 얻을 수 있습니다.


객체 검출

cv2.CascadeClassifier() 함수와 detectMultiScale() 함수를 사용하여 객체를 검출할 수 있습니다. 이 함수들은 얼굴 인식 등 다양한 분야에서 사용됩니다.

import cv2

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

# CascadeClassifier 객체 생성
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

# 이미지 grayscale 변환
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 얼굴 검출
faces = face_cascade.detectMultiScale(gray, 1.3, 5)

# 얼굴에 사각형 그리기
for (x, y, w, h) in faces:
    cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 2)

# 이미지 출력
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

위 코드에서 얼굴 검출을 위해 haarcascade_frontalface_default.xml 파일이 필요합니다. 이 파일은 OpenCV 공식 GitHub 저장소에서 다운로드할 수 있습니다.


결론

이상으로 cv2 모듈의 기본적인 사용법과 실제 예제가 포함된 코드 샘플을 알아보았습니다. 이를 바탕으로 OpenCV를 사용하여 이미지 처리 및 객체 검출 등 다양한 작업을 수행할 수 있습니다.

저작자표시 비영리 변경금지 (새창열림)

'파이썬 > OpenCV' 카테고리의 다른 글

파이썬 모듈 : OpenCV 가장자리 검출  (0) 2023.03.26
파이썬 모듈 : OpenCV 이미지 확대, 회전, 자르기  (1) 2023.03.25
이미지의 크기 변환 cv2.resize()  (0) 2022.11.17
CV2로 IPCAMERA 영상을 동영상으로 저장 해보자  (0) 2022.11.16
CV2로 IPCAMERA 영상을 출력해보자  (0) 2022.11.16
'파이썬/OpenCV' 카테고리의 다른 글
  • 파이썬 모듈 : OpenCV 가장자리 검출
  • 파이썬 모듈 : OpenCV 이미지 확대, 회전, 자르기
  • 이미지의 크기 변환 cv2.resize()
  • CV2로 IPCAMERA 영상을 동영상으로 저장 해보자
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (725)
      • 스마트팜 (0)
      • 상품 추천 (223)
      • MongoDB (4)
      • 하드웨어 (17)
      • 일기장 (4)
      • 파이썬 (130)
        • Basic (41)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (51)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    appdevelopment
    스크립트 실행
    스크립트 실행 순서
    rtsp
    list
    유니티
    리스트
    스마트스토어리뷰
    devlife
    ipcamera
    unity
    쇼핑몰리뷰
    리뷰이관
    라떼우유
    cv2
    codingtips
    믈레코비타멸균우유
    programmerlife
    리뷰관리
    긴유통기한우유
    programming101
    codingcommunity
    Python
    카페24리뷰이관
    상품 리뷰 크롤링
    C#
    파이썬
    셀레니움
    learntocode
    카페24리뷰
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
파이썬 모듈 : OpenCV 읽기, 쓰기, 필터링
상단으로

티스토리툴바