logo

Redimensionarea imaginii folosind OpenCV | Piton

Redimensionarea imaginii se referă la scalarea imaginilor. Scalare este utilă în multe aplicații de procesare a imaginilor, precum și în aplicații de învățare automată. Ajută la reducerea numărului de pixeli dintr-o imagine și are mai multe avantaje, de ex. Poate reduce timpul de antrenament al unei rețele neuronale, cu cât numărul de pixeli dintr-o imagine este mai mare numărul de noduri de intrare, ceea ce la rândul său crește complexitatea modelului.
De asemenea, ajută la mărirea imaginilor. De multe ori trebuie să redimensionăm imaginea, adică fie să o micșorăm, fie să o mărim pentru a îndeplini cerințele de dimensiune. OpenCV ne oferă mai multe metode de interpolare pentru redimensionarea unei imagini.

Alegerea metodei de interpolare pentru redimensionare:



  • cv2.INTER_AREA: Acesta este folosit atunci când trebuie să micșorăm o imagine.
  • cv2.INTER_CUBIC: Acest lucru este lent, dar mai eficient.
  • cv2.INTER_LINEAR: Acesta este utilizat în principal atunci când este necesară mărirea. Aceasta este tehnica implicită de interpolare în OpenCV.

Sintaxă: cv2.resize(sursă, dsize, dest, fx, fy, interpolare)

Parametri:

    sursă: matrice imagine de intrare (un singur canal, 8 biți sau virgulă mobilă) dsize: dimensiunea matricei de ieșire dest: matrice de ieșire (similar cu dimensiunile și tipul matricei imaginii de intrare) [opțional] fx: factor de scară de-a lungul axa orizontală [opțional] fy: factor de scară de-a lungul axei verticale [opțional] interpolare: una dintre metodele de interpolare de mai sus [opțional]

Mai jos este codul pentru redimensionare:



generator de numere aleatoare java

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

>

butonul tkinter
>

Ieșire:

Notă: Un lucru de reținut atunci când utilizați funcția cv2.resize() este că tuplul transmis pentru determinarea dimensiunii noii imagini ((1050, 1610) în acest caz) urmează ordinea (lățime, înălțime) spre deosebire de cum era de așteptat ( Înălțime lățime).