logo

Zmiana rozmiaru obrazu przy użyciu OpenCV | Pyton

Zmiana rozmiaru obrazu odnosi się do skalowania obrazów. Skalowanie przydaje się w wielu zastosowaniach związanych z przetwarzaniem obrazu i uczeniem maszynowym. Pomaga w zmniejszeniu liczby pikseli obrazu, co ma kilka zalet, m.in. Może skrócić czas uczenia sieci neuronowej, ponieważ im większa liczba pikseli w obrazie, tym większa jest liczba węzłów wejściowych, co z kolei zwiększa złożoność modelu.
Pomaga także w powiększaniu zdjęć. Wiele razy musimy zmienić rozmiar obrazu, tj. Zmniejszyć go lub powiększyć, aby spełnić wymagania dotyczące rozmiaru. OpenCV zapewnia nam kilka metod interpolacji w celu zmiany rozmiaru obrazu.

Wybór metody interpolacji przy zmianie rozmiaru:



  • cv2.INTER_AREA: Używa się tego, gdy musimy zmniejszyć obraz.
  • cv2.INTER_CUBIC: Jest to powolne, ale bardziej wydajne.
  • cv2.INTER_LINEAR: Jest używany głównie, gdy wymagane jest powiększanie. Jest to domyślna technika interpolacji w OpenCV.

Składnia: cv2.resize(źródło, dsize, dest, fx, fy, interpolacja)

Parametry:

    source: tablica obrazu wejściowego (jednokanałowa, 8-bitowa lub zmiennoprzecinkowa) dsize: rozmiar tablicy wyjściowej dest: tablica wyjściowa (podobna do wymiarów i typu tablicy obrazu wejściowego) [opcjonalnie] fx: współczynnik skali wzdłuż oś pozioma [opcjonalnie] fy: Współczynnik skali wzdłuż osi pionowej [opcjonalnie] interpolacja: Jedna z powyższych metod interpolacji [opcjonalnie]

Poniżej znajduje się kod umożliwiający zmianę rozmiaru:



Python3

losowe, nie w Javie






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()>

>

sztuczna inteligencja i inteligentni agenci
>

Wyjście:

Notatka: Jedną rzeczą, o której należy pamiętać podczas korzystania z funkcji cv2.resize() jest to, że krotka przekazana do określenia rozmiaru nowego obrazu (w tym przypadku (1050, 1610)) jest zgodna z kolejnością (szerokość, wysokość) inną niż oczekiwano ( wysokość szerokość).