Endre størrelse på bildet ved hjelp av OpenCV | Python

Endre størrelse på bildet ved hjelp av OpenCV | Python

Bildestørrelse refererer til skalering av bilder. Skalering kommer godt med i mange bildebehandlings- og maskinlæringsapplikasjoner. Det hjelper med å redusere antall piksler fra et bilde, og det har flere fordeler, f.eks. Det kan redusere tiden for trening av et nevralt nettverk ettersom jo flere piksler i et bilde, flere er antall inngangsnoder, som igjen øker kompleksiteten til modellen.
Det hjelper også med å zoome inn på bilder. Mange ganger må vi endre størrelsen på bildet, dvs. enten krympe det eller skalere det opp for å møte størrelseskravene. OpenCV gir oss flere interpoleringsmetoder for å endre størrelse på et bilde.

Valg av interpolasjonsmetode for å endre størrelse:

  • cv2.INTER_AREA: Dette brukes når vi trenger å krympe et bilde.
  • cv2.INTER_CUBIC: Dette er tregt, men mer effektivt.
  • cv2.INTER_LINEAR: Dette brukes først og fremst når zooming er nødvendig. Dette er standard interpolasjonsteknikk i OpenCV.

Syntaks: cv2.resize(kilde, dsize, dest, fx, fy, interpolasjon)

Parametere:

    kilde: Input Image array (Enkeltkanal, 8-bit eller flytende komma) dsize: Størrelse på output array dest: Output array (ligner på dimensjonene og typen av Input image array) [valgfritt] fx: Skaleringsfaktor langs horisontal akse [valgfritt] fy: Skaleringsfaktor langs den vertikale aksen [valgfritt] interpolering: En av interpolasjonsmetodene ovenfor [valgfritt]

Nedenfor er koden for å endre størrelse:

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

Produksjon:

Merk: En ting å huske på når du bruker funksjonen cv2.resize() er at tuppelen som ble godkjent for å bestemme størrelsen på det nye bildet ((1050, 1610) i dette tilfellet) følger rekkefølgen (bredde, høyde) i motsetning til som forventet ( høyde bredde).