logo

Kuvan koon muuttaminen OpenCV:llä | Python

Kuvan koon muuttaminen tarkoittaa kuvien skaalausta. Skaalaus on kätevä monissa kuvankäsittely- ja koneoppimissovelluksissa. Se auttaa vähentämään kuvan pikselien määrää ja sillä on useita etuja, mm. Se voi lyhentää hermoverkon harjoitteluaikaa, koska mitä enemmän kuvassa on pikselien lukumäärää, sitä enemmän on tulosolmuja, mikä puolestaan ​​​​lisää mallin monimutkaisuutta.
Se auttaa myös kuvien lähentämisessä. Usein meidän täytyy muuttaa kuvan kokoa eli joko pienentää sitä tai skaalata sitä kokovaatimusten mukaisesti. OpenCV tarjoaa meille useita interpolointimenetelmiä kuvan koon muuttamiseen.

Interpolointimenetelmän valinta koon muuttamiseen:



  • cv2.INTER_AREA: Tätä käytetään, kun meidän on pienennettävä kuvaa.
  • cv2.INTER_CUBIC: Tämä on hidasta mutta tehokkaampaa.
  • cv2.INTER_LINEAR: Tätä käytetään ensisijaisesti, kun zoomaus vaaditaan. Tämä on oletusinterpolointitekniikka OpenCV:ssä.

Syntaksi: cv2.resize(lähde, dsize, kohde, fx, fy, interpolointi)

Parametrit:

    lähde: Input Image array (yksikanavainen, 8-bittinen tai liukuluku) dsize: Lähtötaulukon koko kohde: Lähtötaulukko (samanlainen kuin tulokuvataulukon mitat ja tyyppi) [valinnainen] fx: Skaalauskerroin vaaka-akseli [valinnainen] fy: Skaalauskerroin pystyakselia pitkin [valinnainen] interpolointi: Yksi yllä olevista interpolointimenetelmistä [valinnainen]

Alla on koodi koon muuttamiseen:



Python 3






kuva taustana css:ssä
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()>

>

>

Lähtö:

Huomautus: Yksi asia, joka tulee muistaa käytettäessä cv2.resize()-funktiota, on, että uuden kuvan koon määrittämiseen välitetty monikko ((tässä tapauksessa 1050, 1610)) noudattaa järjestystä (leveys, korkeus) toisin kuin odotettiin ( korkeus leveys).