Spreminjanje velikosti slike se nanaša na spreminjanje velikosti slik. Skaliranje je priročno v številnih aplikacijah za obdelavo slik in strojnega učenja. Pomaga zmanjšati število slikovnih pik na sliki in ima več prednosti, npr. Lahko skrajša čas usposabljanja nevronske mreže, saj več kot je število slikovnih pik na sliki, večje je število vhodnih vozlišč, kar posledično poveča kompleksnost modela.
Pomaga tudi pri povečavi slik. Velikokrat moramo spremeniti velikost slike, tj. skrčiti jo ali povečati, da ustreza zahtevam glede velikosti. OpenCV nam ponuja več metod interpolacije za spreminjanje velikosti slike.
Izbira metode interpolacije za spreminjanje velikosti:
- cv2.INTER_AREA: To se uporablja, ko moramo pomanjšati sliko.
- cv2.INTER_CUBIC: To je počasno, a bolj učinkovito.
- cv2.INTER_LINEAR: To se uporablja predvsem, ko je potrebna povečava. To je privzeta tehnika interpolacije v OpenCV.
Sintaksa: cv2.resize(source, dsize, dest, fx, fy, interpolation)
zamenjaj vso javo
Parametri:
- vir: polje vhodnih slik (enokanalno, 8-bitno ali s plavajočo vejico) dsize: velikost izhodnega polja dest: izhodno polje (podobno dimenzijam in vrsti polja vhodnih slik) [izbirno] fx: faktor lestvice vzdolž vodoravna os [neobvezno] fy: Faktor lestvice vzdolž navpične osi [neobvezno] interpolacija: ena od zgornjih metod interpolacije [neobvezno]
Spodaj je koda za spreminjanje velikosti:
Python3
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()> |
>
>
Izhod:

Opomba: Pri uporabi funkcije cv2.resize() morate upoštevati eno stvar, da torka, posredovana za določanje velikosti nove slike ((1050, 1610) v tem primeru) sledi vrstnemu redu (širina, višina) v nasprotju s pričakovanji ( višina širina).