logo

OpenCV를 사용하여 이미지 크기 조정 | 파이썬

이미지 크기 조정은 이미지 크기 조정을 의미합니다. 스케일링은 많은 이미지 처리 및 기계 학습 애플리케이션에서 유용합니다. 이는 이미지의 픽셀 수를 줄이는 데 도움이 되며 다음과 같은 몇 가지 장점이 있습니다. 이미지의 픽셀 수가 많을수록 입력 노드 수가 늘어나 모델의 복잡성이 증가하므로 신경망 훈련 시간을 줄일 수 있습니다.
이미지 확대에도 도움이 됩니다. 이미지의 크기를 조정해야 하는 경우가 많습니다. 즉, 크기 요구 사항에 맞게 이미지를 축소하거나 확대해야 합니다. OpenCV는 이미지 크기를 조정하기 위한 여러 가지 보간 방법을 제공합니다.

크기 조정을 위한 보간 방법 선택:



  • cv2.INTER_AREA: 이미지를 축소해야 할 때 사용됩니다.
  • cv2.INTER_CUBIC: 느리지만 더 효율적입니다.
  • cv2.INTER_LINEAR: 확대/축소가 필요할 때 주로 사용됩니다. 이는 OpenCV의 기본 보간 기술입니다.

통사론: cv2.resize(소스, dsize, dest, fx, fy, 보간)

매개변수:

    source: 입력 이미지 배열(단일 채널, 8비트 또는 부동 소수점) dsize: 출력 배열의 크기 dest: 출력 배열(입력 이미지 배열의 크기 및 유형과 유사) [선택] fx: 크기에 따른 배율 인수 가로축 [선택] fy: 세로축의 배율 [선택] interpolation: 위의 보간 방법 중 하나 [선택]

다음은 크기 조정 코드입니다.



파이썬3






import> cv2> import> numpy as np> import> matplotlib.pyplot as plt> image>=> cv2.imread(r>'D:simsebsim21EB-ML-06-10-2022-Test-Output-15PERFORATIONOverkillFailBlister 1 2022-03-12 12-59-43.859 T0 M0 G0 3 PERFORATION Mono.bmp'>,>1>)> # Loading the image> half>=> cv2.resize(image, (>0>,>0>), fx>=> 0.1>, fy>=> 0.1>)> bigger>=> cv2.resize(image, (>1050>,>1610>))> stretch_near>=> cv2.resize(image, (>780>,>540>),> >interpolation>=> cv2.INTER_LINEAR)> Titles>=>[>'Original'>,>'Half'>,>'Bigger'>,>'Interpolation Nearest'>]> images>=>[image, half, bigger, stretch_near]> count>=> 4> for> i>in> range>(count):> >plt.subplot(>2>,>2>, i>+> 1>)> >plt.title(Titles[i])> >plt.imshow(images[i])> plt.show()>

>

>

산출:

메모: cv2.resize() 함수를 사용할 때 명심해야 할 한 가지는 새 이미지의 크기(이 경우 (1050, 1610))를 결정하기 위해 전달된 튜플이 예상과 달리 순서(너비, 높이)를 따른다는 것입니다( 높이 너비).