Lahendatud: muutke pildi suurust ja sisestage see numpy massiivi opencv

Viimane uuendus: 09/11/2023

Kaasaegses maailmas on pildid kommunikatsiooni ja tehnoloogia oluline osa. Tehisintellekti, masinõppe ja arvutinägemise edusammudega on muutunud üha olulisemaks mõista, kuidas pilte tõhusalt töödelda ja manipuleerida. Selles artiklis käsitletakse levinud probleemi – piltide suuruse muutmist ja NumPy massiivi sobitamist populaarse avatud lähtekoodiga arvutinägemise teegi OpenCV abil. Läheme süvitsi, pakkudes süstemaatilist lähenemist, selgitades koodi samm-sammult, mainides samas kaasatud teeke ja funktsioone ning nende olulisust käesoleva probleemi jaoks.

Sissejuhatus

Pildid salvestatakse maatriksitena, mis sisaldavad pikslite intensiivsust. Pildiandmetega tõhusaks töötamiseks peavad arendajad sageli muutma pildi suurust, et see sobiks vastavalt nende vajadustele NumPy massiivi. Üks parimaid teeke selle saavutamiseks on OpenCV, mis rahuldab sujuvalt erinevaid pilditöötlusvajadusi. Selles artiklis näitame, kuidas Pythoni ja OpenCV abil pildi suurust muuta ja NumPy massiivi mahutada.

Nõutavate teekide importimine

Alustuseks peame importima vajalikud teegid oma Pythoni keskkonda.

import cv2
import numpy as np
  • cv2: Pilditöötlustoiminguteks kasutatav OpenCV teek.
  • tuimus: NumPy teek pakub tuge massiivide ja maatriksitega tõhusaks töötamiseks.

Pildi laadimine ja suuruse muutmine

Esiteks peame pildi laadima ja seejärel OpenCV funktsiooni abil selle suurust muutma cv2.resize():

# Load the image
image = cv2.imread('path/to/image.jpg')

# Define the new size (width, height)
new_size = (300, 300)

# Resize the image
resized_image = cv2.resize(image, new_size, interpolation=cv2.INTER_AREA)
  • cv2.imread(): See funktsioon loeb pildi määratud failiteelt.
  • new_size: Korpus, mis sisaldab muudetud suurusega pildi soovitud laiust ja kõrgust. Sel juhul tahame selle suurust muuta 300 × 300 pikslini.
  • cv2.resize(): See muudab pildi suurust määratud mõõtmeteni, kasutades määratud interpolatsioonimeetodit.

Muudetud suurusega pildi sobitamine NumPy massiivi

Kui pildi suurus on muudetud, peame selle mahutama NumPy massiivi:

# Create a NumPy array with the desired dimensions (width, height, channels)
array_shape = (300, 300, 3)

# Fit the resized image into the NumPy array
numpy_image = np.zeros(array_shape, dtype=np.uint8)
numpy_image[:resized_image.shape[0], :resized_image.shape[1]] = resized_image
  • array_shape: Korteež, mis sisaldab NumPy massiivi soovitud mõõtmeid. Sellel peab olema sama laius, kõrgus ja kanalite arv kui meie muudetud suurusega pildil.
  • np.zeros(): See funktsioon loob tühja NumPy massiivi määratud mõõtmete ja andmetüübiga.
  • dtype: See määrab NumPy massiivi andmetüübi. np.uint8 tähistab 8-bitist märgita täisarvu, mida tavaliselt kasutatakse pildiandmete jaoks.

Pärast nende toimingute sooritamist muudetakse pildi suurust ja see mahub NumPy massiivi, mis on valmis edasiseks töötlemiseks.

Täiendavad OpenCV funktsioonid ja tehnikad

Siin on mõned OpenCV lisafunktsioonid ja tehnikad, mis on seotud piltide suuruse muutmisega:

  • cv2.INTER_LINEAR: Kasutatakse vaikimisi interpoleerimiseks cv2.resize().
  • cv2.INTER_CUBIC: Pakub suurendamiseks parema kvaliteediga suuruse muutmist. See on teiste interpoleerimismeetoditega võrreldes aeglasem.
  • cv2.INTER_NEAREST: Kiireim meetod suuruse muutmiseks. Kvaliteet aga halveneb interpolatsiooni puudumise tõttu.
  • Kuvasuhte kaalutlused: Suuruse muutmisel on kuvasuhte säilitamine ülioluline, vastasel korral võib pilt moonduda.

Kokkuvõttes oleme näidanud, kuidas OpenCV abil pildi suurust muuta ja NumPy massiivi mahutada. Järgides kirjeldatud samme, saavad arendajad tõhusalt manipuleerida piltidega erinevate arvutinägemise, masinõppe ja muude rakenduste jaoks.

Seonduvad postitused:

Jäta kommentaar