소개
cv2.resize는 OpenCV에서 이미지를 원하는 크기로 조절하는 함수입니다. 이미지 처리에서 크기를 조정하는 것은 객체 감지, 이미지 전처리, 데이터 증강 등의 작업에서 자주 사용됩니다. 이미지의 새로운 크기를 직접 설정하거나 비율을 지정하여 이미지를 축소하거나 확대할 수 있습니다.
기본 사용법
# 기본 사용법
import cv2
# 이미지 읽기
image = cv2.imread('input_image.jpg')
# 이미지 크기 조정 (300x300으로 리사이즈)
resized_image = cv2.resize(image, (300, 300))
# 결과 이미지 창에 표시
cv2.imshow('Resized Image', resized_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
# 비율로 크기 조정
import cv2
# 이미지 읽기
image = cv2.imread('input_image.jpg')
# 비율로 크기 조정 (가로, 세로 비율 0.5로 축소)
resized_image = cv2.resize(image, (0, 0), fx=0.5, fy=0.5)
# 결과 이미지 창에 표시
cv2.imshow('Resized Image by Scale', resized_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
상세 설명
- 기본 사용법: cv2.resize(이미지, (width, height))를 통해 원하는 크기로 이미지를 조정할 수 있습니다.
- 비율로 조정: fx와 fy 파라미터를 사용하면 가로와 세로 크기를 비율로 조정할 수 있습니다. 예를 들어, fx=0.5, fy=0.5는 이미지를 가로 세로 각각 50% 축소합니다.
- 보간법(Interpolation)
- cv2.resize는 이미지 크기 조정 시 보간법을 사용하여 이미지를 부드럽게 처리합니다. 주요 보간 방법에는 cv2.INTER_LINEAR(기본값), cv2.INTER_CUBIC, cv2.INTER_NEAREST 등이 있으며, 이미지 확대에는 cv2.INTER_LINEAR가, 축소에는 cv2.INTER_AREA가 적합합니다.
- 활용
- 크기 조정은 이미지 분석, 컴퓨터 비전 모델의 입력으로 사용되는 이미지 전처리 단계에서 필수적인 작업입니다. 또한 데이터 증강 기법으로 다양한 크기의 이미지 데이터를 생성하는 데도 활용됩니다.
라이센스
OpenCV 4.4.0 까지는 3-clause BSD license를 따르고 있으며 자유롭게 사용, 수정, 배포할 수 있으며, 상업적 목적으로도 사용할 수 있습니다.
OpenCV 4.5.0 이상 부터는 Apache 2 License를 따르고 있습니다. 해당 라이선스는 사용, 수정, 배포, 상업적 이용을 자유롭게 허용하며, 사용자가 해당 소프트웨어의 기여자에 대한 특허 청구를 방지하도록 명시하는 것을 특징으로 합니다. 또한 수정된 코드를 배포할 때 변경 사항을 고지해야 하며, 특허 분쟁 시 관련 권리를 상실할 수 있습니다.
관련 내용
[OpenCV] 비디오 생성 및 저장하기: cv2.VideoWriter() 사용 및 설명
[OpenCV] 카메라 및 비디오 파일에서 프레임 읽기: cv2.VideoCapture() 사용 및 설명
[OpenCV] 이미지의 엣지를 보호하며 부드럽게: cv2.medianBlur() 사용 및 설명
[OpenCV] 이미지 흐리게 만들기: cv2.GaussianBlur() 사용 및 설명
[OpenCV] 이미지 색상 공간 변환: cv2.cvtColor() 사용 및 설명
[OpenCV] 이미지 축소: cv2.pyrDown() 사용 및 설명
[OpenCV] 이미지 확대: cv2.pyrUp() 사용 및 설명
[OpenCV] 원 찾기: cv2.HoughCircles() 사용 및 설명
[OpenCV] 직선 찾기: cv2.HoughLines() 사용 및 설명
[OpenCV] 경계선 찾기: cv2.Canny() 사용 및 설명
[OpenCV] 적응형 임계값 처리하기: cv2.adaptiveThreshold() 사용 및 설명
[OpenCV] 이미지 임계값 처리: cv2.threshold() 사용 및 설명
[OpenCV] 이미지의 원근 변환: cv2.warpPerspective() 사용 및 설명
[OpenCV] 이미지 기하학적 변환: cv2.warpAffine() 사용 및 설명
[OpenCV] 이미지 좌우, 상하 반전하기: cv2.flip() 사용 및 설명
[OpenCV] 이미지 회전: cv2.rotate() 사용 및 설명
[OpenCV] 이미지 크기 조절: cv2.resize() 사용 및 설명
[OpenCV] 이미지 팽창하기: cv2.dilate() 사용 및 설명
[OpenCV] 이미지 침식하기: cv2.erode() 사용 및 설명
[OpenCV] 이미지 블렌딩하기: cv2.addWeighted() 사용 및 설명
[OpenCV] 이미지 간 빼기: cv2.subtract 사용법() 사용 및 설명
[OpenCV] 이미지 간 더하기: cv2.add() 사용 및 설명
[OpenCV] 이미지에 다각형 그리기: cv2.polylines() 사용 및 설명
[OpenCV] 이미지에 원 그리기: cv2.circle() 사용 및 설명
[OpenCV] 이미지에 사각형 그리기: cv2.rectangle() 사용 및 설명
[OpenCV] 이미지에 선 그리기: cv2.line 사용법() 사용 및 설명
[OpenCV] 이미지에 텍스트 추가하기: cv2.putText() 사용 및 설명
[OpenCV] 이미지 창에 표시하기: cv2.imshow() 사용 및 설명
'함수 설명 > 컴퓨터 비전 (OpenCV, PIL)' 카테고리의 다른 글
[OpenCV] 이미지 좌우, 상하 반전하기: cv2.flip() 사용 및 설명 (1) | 2024.09.29 |
---|---|
[OpenCV] 이미지 회전: cv2.rotate() 사용 및 설명 (1) | 2024.09.28 |
[OpenCV] 이미지 팽창하기: cv2.dilate() 사용 및 설명 (0) | 2024.09.28 |
[OpenCV] 이미지 침식하기: cv2.erode() 사용 및 설명 (0) | 2024.09.28 |
[OpenCV] 이미지 블렌딩하기: cv2.addWeighted() 사용 및 설명 (0) | 2024.09.28 |