Attēla izmēru maiņa attiecas uz attēlu mērogošanu. Mērogošana noder daudzās attēlu apstrādes, kā arī mašīnmācīšanās lietojumprogrammās. Tas palīdz samazināt attēla pikseļu skaitu, un tam ir vairākas priekšrocības, piemēram, Tas var samazināt neironu tīkla apmācības laiku, jo jo lielāks ir pikseļu skaits attēlā, ir ievades mezglu skaits, kas savukārt palielina modeļa sarežģītību.
Tas arī palīdz tuvināt attēlus. Daudzas reizes mums ir jāmaina attēla izmērs, t.i., tas jāsamazina vai jāpalielina, lai tas atbilstu izmēra prasībām. OpenCV piedāvā vairākas interpolācijas metodes attēla izmēra maiņai.
Interpolācijas metodes izvēle izmēra maiņai:
- cv2.INTER_AREA: to izmanto, ja mums ir jāsamazina attēls.
- cv2.INTER_CUBIC: tas ir lēns, bet efektīvāks.
- cv2.INTER_LINEAR: to galvenokārt izmanto, ja ir nepieciešama tālummaiņa. Šī ir noklusējuma interpolācijas metode programmā OpenCV.
Sintakse: cv2.resize(avots, dsize, dest, fx, fy, interpolācija)
Parametri:
- avots: ievades attēla masīvs (vienkanāls, 8 bitu vai peldošā komata) dsize: izvades masīva lielums galamērķis: izvades masīvs (līdzīgs ievades attēlu masīva izmēriem un veidam) [pēc izvēles] fx: mēroga koeficients gar horizontālā ass [neobligāti] fy: mēroga koeficients gar vertikālo asi [neobligāti] interpolācija: viena no iepriekš minētajām interpolācijas metodēm [neobligāti]
Tālāk ir norādīts lieluma maiņas kods:
Python3
koku un grafu teorija
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()> |
>
>
Izvade:

Piezīme: Viena lieta, kas jāpatur prātā, izmantojot funkciju cv2.resize(), ir tāda, ka kortežs, kas nodots jaunā attēla izmēra noteikšanai (šajā gadījumā (1050, 1610)) atbilst secībai (platums, augstums) atšķirībā no gaidītā ( augstums Platums).