[파이썬] opencv-python 이미지에서 기본 연산 수행하기

OpenCV-Python은 컴퓨터 비전과 이미지 처리 작업을 위한 강력한 라이브러리입니다. 여기서는 OpenCV-Python을 사용하여 이미지에서 기본적인 연산을 수행하는 방법에 대해 알아보겠습니다.

이미지 로딩하기

OpenCV-Python을 사용하기 위해 먼저 이미지를 로딩해야 합니다. 이미지를 로딩하려면 imread() 함수를 사용합니다.

import cv2

image = cv2.imread('image.jpg')

이미지 경로를 적절히 수정하여 로드하고 싶은 이미지 파일을 지정하면 됩니다.

이미지 표시하기

이미지를 표시하려면 imshow() 함수를 사용합니다. 이미지를 보고 싶은 윈도우의 이름과 이미지를 전달하면 됩니다.

cv2.imshow('Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

imshow() 함수는 이미지를 보여주기 위해 윈도우를 생성합니다. waitkey(0) 함수는 키보드 입력을 기다리지 않고 키 이벤트를 처리하는 함수입니다. destroyAllWindows() 함수는 모든 윈도우를 닫습니다.

이미지 크기 변경하기

이미지 크기를 변경하려면 resize() 함수를 사용합니다.

resized_image = cv2.resize(image, (new_width, new_height))

new_widthnew_height는 새로운 이미지 크기를 지정하는 값입니다.

이미지 회전하기

이미지를 회전시키려면 rotate() 함수를 사용합니다. getRotationMatrix2D() 함수를 사용하여 회전 변환 행렬을 만든 다음, warpAffine() 함수를 사용하여 실제로 회전시킵니다.

import numpy as np

angle = 45
image_height, image_width = image.shape[:2]
rotation_matrix = cv2.getRotationMatrix2D((image_width/2, image_height/2), angle, 1)
rotated_image = cv2.warpAffine(image, rotation_matrix, (image_width, image_height))

angle 변수는 회전할 각도를 지정합니다. 회전 중심은 이미지의 가운데 지점으로 설정됩니다.

이미지 자르기

이미지에서 특정 영역을 자르려면 배열의 인덱싱을 사용합니다.

x = 100
y = 100
width = 200
height = 200
cropped_image = image[y:y+height, x:x+width]

xy는 자를 영역의 시작 좌표를 지정하고, widthheight는 자를 영역의 크기를 지정합니다.

이미지 저장하기

이미지를 파일로 저장하려면 imwrite() 함수를 사용합니다.

cv2.imwrite('output.jpg', image)

첫 번째 매개변수로 저장할 파일명을 지정하고, 두 번째 매개변수로 저장할 이미지를 전달합니다.

결론

OpenCV-Python을 사용하면 이미지에서 다양한 기본적인 연산을 수행할 수 있습니다. 이미지 로딩, 표시, 크기 변경, 회전, 자르기, 저장 등의 작업을 수행하여 원하는 결과물을 얻을 수 있습니다. OpenCV-Python의 강력한 기능을 활용하여 이미지 처리 작업을 더욱 효율적으로 수행할 수 있습니다.