파이썬 모듈 : OpenCV 이미지 확대, 회전, 자르기

2023. 3. 25. 13:48·파이썬/OpenCV
반응형
OpenCV는 다양한 이미지 처리 함수를 제공합니다. 이미지 확대, 회전, 자르기와 같은 기본적인 함수들도 포함되어 있습니다. 이번 글에서는 OpenCV를 사용하여 이미지를 확대, 회전, 자르는 방법에 대해 알아보겠습니다.

이미지 확대

이미지를 확대하기 위해서는 resize() 함수를 사용합니다. 이 함수는 이미지를 지정한 크기로 확대하거나 축소할 수 있습니다.

import cv2

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

# 이미지 확대하기
img_resized = cv2.resize(img, None, fx=2.0, fy=2.0, interpolation=cv2.INTER_CUBIC)

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

위 코드에서 resize() 함수는 fx와 fy 매개변수를 사용하여 이미지를 가로 방향과 세로 방향으로 각각 얼마나 확대할지를 지정합니다. 이 함수는 이미지를 확대할 때 발생하는 픽셀 값을 보완하기 위해 보간법(interpolation)을 사용합니다.


이미지 회전

이미지를 회전하기 위해서는 getRotationMatrix2D() 함수와 warpAffine() 함수를 사용합니다. getRotationMatrix2D() 함수는 회전 변환 행렬을 생성하고, warpAffine() 함수는 이 행렬을 사용하여 이미지를 회전합니다.

import cv2
import numpy as np

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

# 회전 변환 행렬 생성하기
rows, cols = img.shape[:2]
M = cv2.getRotationMatrix2D((cols/2, rows/2), 90, 1)

# 이미지 회전하기
img_rotated = cv2.warpAffine(img, M, (cols, rows))

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

위 코드에서 getRotationMatrix2D() 함수는 회전 변환 행렬을 생성합니다. 이 함수는 회전 중심점(x, y), 회전 각도, 확대/축소 비율을 인자로 받습니다. warpAffine() 함수는 생성한 회전 변환 행렬을 사용하여 이미지를 회전합니다.


이미지 자르기

이미지를 자르기 위해서는 NumPy 배열의 인덱싱을 사용합니다. 인덱싱을 사용하여 이미지의 부분 영역을 선택하고, 해당 영역을 새로운 이미지로 저장합니다.

import cv2

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

# 이미지 자르기
img_cropped = img[100:300, 200:400]

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

위 코드에서 img[100:300, 200:400]는 원본 이미지에서 (100, 200)부터 (300, 400)까지의 부분 영역을 선택합니다. 이 부분 영역은 새로운 이미지로 저장됩니다.


결론

이상으로 OpenCV를 사용하여 이미지를 확대, 회전, 자르는 방법에 대해 알아보았습니다. 이러한 기본적인 이미지 처리 함수들은 이미지 분석 및 처리에서 매우 유용하게 사용됩니다.

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

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

파이썬 모듈 : OpenCV 윤곽선 검출  (1) 2023.03.27
파이썬 모듈 : OpenCV 가장자리 검출  (0) 2023.03.26
파이썬 모듈 : OpenCV 읽기, 쓰기, 필터링  (0) 2023.03.24
이미지의 크기 변환 cv2.resize()  (0) 2022.11.17
CV2로 IPCAMERA 영상을 동영상으로 저장 해보자  (0) 2022.11.16
'파이썬/OpenCV' 카테고리의 다른 글
  • 파이썬 모듈 : OpenCV 윤곽선 검출
  • 파이썬 모듈 : OpenCV 가장자리 검출
  • 파이썬 모듈 : OpenCV 읽기, 쓰기, 필터링
  • 이미지의 크기 변환 cv2.resize()
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (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)
  • 인기 글

  • 태그

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

  • hELLO· Designed By정상우.v4.10.3
코샵
파이썬 모듈 : OpenCV 이미지 확대, 회전, 자르기
상단으로

티스토리툴바