El canvi de mida de la imatge es refereix a l'escala de les imatges. L'escalat és útil en moltes aplicacions de processament d'imatges i d'aprenentatge automàtic. Ajuda a reduir el nombre de píxels d'una imatge i això té diversos avantatges, per exemple. Pot reduir el temps d'entrenament d'una xarxa neuronal ja que com més píxels en una imatge més és el nombre de nodes d'entrada que al seu torn augmenta la complexitat del model.
També ajuda a ampliar les imatges. Moltes vegades hem de canviar la mida de la imatge, és a dir, reduir-la o augmentar-la per complir els requisits de mida. OpenCV ens proporciona diversos mètodes d'interpolació per canviar la mida d'una imatge.
Elecció del mètode d'interpolació per canviar la mida:
- cv2.INTER_AREA: S'utilitza quan necessitem reduir una imatge.
- cv2.INTER_CUBIC: Això és lent però més eficient.
- cv2.INTER_LINEAR: s'utilitza principalment quan cal fer zoom. Aquesta és la tècnica d'interpolació predeterminada a OpenCV.
Sintaxi: cv2.resize (font, dsize, dest, fx, fy, interpolació)
Paràmetres:
- font: matriu d'imatge d'entrada (un sol canal, 8 bits o coma flotant) dsize: mida de la matriu de sortida dest: matriu de sortida (semblant a les dimensions i tipus de matriu d'imatge d'entrada) [opcional] fx: factor d'escala al llarg de la eix horitzontal [opcional] fy: factor d'escala al llarg de l'eix vertical [opcional] interpolació: un dels mètodes d'interpolació anteriors [opcional]
A continuació es mostra el codi per canviar la mida:
Python 3
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()> |
què és el mòdul en c++
>
>
Sortida:

Nota: Una cosa a tenir en compte quan s'utilitza la funció cv2.resize() és que la tupla passada per determinar la mida de la nova imatge ((1050, 1610) en aquest cas) segueix l'ordre (amplada, alçada) a diferència del que s'esperava ( alçada amplada).