728x90
반응형
보통 딥러닝을 할 때 input 이미지 크기를 작게 만들어서 학습한다. 아무래도 이미지가 크면 연산량도 많아지고, 모델도 커질 수 밖에 없기 때문이다.
import cv2
# 이미지 읽기
image = cv2.imread('/my_dir/my_image.png')
# resize 하기
# cv2.resize(src, dsize, dst=None, fx=None, fy=None, interpolation=None)
resized = cv2.resize(image, dsize=(224,224))
cv2.resize를 할때 보간법(interpolation)을 옵션으로 사용할 수 있는데,
- cv2.INTER_NEAREST: 가장 가까운 픽셀 값을 사용하여 빠르게 처리하지만, 이미지 확대 시 계단 현상이 발생할 수 있다.
- cv2.INTER_LINEAR: 2x2 픽셀을 사용하여 선형 보간을 수행. 일반적인 확대 및 축소 작업에 적합하며 속도와 품질의 균형이 좋다.
- cv2.INTER_CUBIC: 4x4 픽셀을 사용하여 3차 보간을 수행. 이미지 확대 시 더 부드러운 결과를 제공하지만, 처리 속도는 느리다.
- cv2.INTER_LANCZOS4: 8x8 픽셀을 사용하는 Lanczos 보간법. 고해상도 확대에 최적이며 품질이 매우 높지만, 가장 느리다.
- cv2.INTER_AREA: 이미지 축소에 적합. 픽셀의 영역을 평균화하여 품질을 유지하면서 축소한다.
학습시 inter_linear를 주로 사용한다. interpolation 적용은 아래와 같이 하면 된다.
# interpolation 적용하기
resized = cv2.resize(image, dsize=(224,224),interpolation=cv2.INTER_LINEAR)
728x90
반응형
'OpenCV' 카테고리의 다른 글
[OpenCV] 이미지 처리 (합성2) (0) | 2024.08.17 |
---|---|
[OpenCV] 이미지 처리 (합성1) (0) | 2024.08.17 |
[OpenCV] 이미지 처리 (crop) (0) | 2024.08.17 |
[OpenCV] 이미지 처리 (밝기 조절) (0) | 2024.08.17 |
[OpenCV] 이미지 처리 (flip, rotation) (0) | 2024.08.17 |