Ako previesť obrázok na numpy pole pomocou Pillow?

Jan 08, 2026

Zanechajte správu

Ako dôveryhodný dodávateľ vankúšov sa nielen dobre vyznáme v poskytovaní špičkových vankúšov a obliečok na vankúše, napr.Vankúše z čistého husieho peria,Štandardné bavlnené obliečky na vankúše, aObliečky na vankúše. Dobre rozumieme aj súvisiacim technológiám, ako je napríklad prevod obrázkov na polia NumPy pomocou knižnice Pillow.

Úvod do Pillow a NumPy

Pillow je výkonná Python Imaging Library, ktorá ponúka širokú škálu možností spracovania obrázkov. Umožňuje používateľom otvárať, manipulovať a ukladať rôzne formáty obrázkových súborov. Na druhej strane je NumPy základnou knižnicou pre vedecké výpočty v Pythone. Poskytuje vysoko výkonný viacrozmerný objekt poľa a nástroje na prácu s týmito poľami. Konverzia obrázka na pole NumPy pomocou Pillow môže byť mimoriadne užitočná v rôznych oblastiach vrátane počítačového videnia, strojového učenia a analýzy údajov.

Predpoklady

Predtým, ako sa pustíme do procesu konverzie, musíte mať vo svojom systéme nainštalovaný Python. Python si môžete stiahnuť z oficiálnej webovej stránky Pythonu. Okrem toho budete musieť nainštalovať knižnice Pillow a NumPy. Môžete ich nainštalovať pomocoupip, inštalátor balíkov pre Python:

pip nainštalovať vankúš numpy

Sprievodca krok za krokom na prevod obrázka na pole NumPy

Import potrebných knižníc

Prvým krokom je importObrázoktriedy zPIL(Python Imaging Library, v našom prípade verzia Pillow) anumpyknižnica.

z PIL import Image import numpy as np

Otvorenie obrázku

Ak chcete začať s konverziou, musíte otvoriť súbor obrázka pomocouOTVORENÉmetódaObrázoktriedy v Vankúšiku. Predpokladajme, že máte súbor s obrázkom s názvompriklad.jpgvo vašom pracovnom adresári:

image = Image.open('example.jpg')

Konverzia obrázka na pole NumPy

Po otvorení obrázka ho môžete jednoducho previesť na pole NumPy odovzdaním objektu obrázka donp.array()funkciu.

image_array = np.array(image)

Thenp.array()funkcia prevezme údaje obrázka a vytvorí pole NumPy predstavujúce obrázok. Tvar tohto poľa bude závisieť od typu obrázka. Pre farebný obrázok (napr. vo formáte RGB) bude tvar(výška, šírka, 3), kde posledný rozmer predstavuje tri farebné kanály (červený, zelený a modrý). Pre obrázok v odtieňoch sivej bude tvar(výška, šírka).

Príklad kódu

Tu je úplný príklad kódu pre konverziu:

from PIL import Image import numpy as np # Open the image image = Image.open('example.jpg') # Previesť obrázok na pole NumPy image_array = np.array(image) # Vytlačiť nejaké informácie o poli print("Tvar poľa:", image_array.shape) print("Dátový typ poľa.:", imagetype.

V tomto kóde po konverzii obrázka do poľa NumPy vytlačíme tvar a typ údajov poľa. Typ údajov je zvyčajneuint8, čo znamená, že hodnoty pixelov sa pohybujú od 0 do 255.

Práca s rôznymi režimami obrazu

Vankúš podporuje rôzne obrazové režimy, ako je RGB, RGBA (RGB s alfa kanálom pre priehľadnosť) a L (odtiene šedej). Pri konverzii obrázkov rôznych režimov na polia NumPy sa zodpovedajúcim spôsobom zmenia výsledný tvar poľa a vlastnosti.

Obrázky RGB

Pre obrázky RGB, ako už bolo spomenuté, pole NumPy bude mať tri kanály. Každý pixel je reprezentovaný trojicou hodnôt zodpovedajúcich intenzite červenej, zelenej a modrej. K jednotlivým kanálom môžete pristupovať takto:

red_channel = image_array[:, :, 0] green_channel = image_array[:, :, 1] blue_channel = image_array[:, :, 2]

Obrázky RGBA

Obrázky RGBA majú dodatočný alfa kanál pre priehľadnosť. Tvar výsledného poľa NumPy bude(výška, šírka, 4). K alfa kanálu sa dostanete takto:

Pillow Cases For Throw Pillows manufacturersPillow Cases For Throw Pillows factory

alfa_kanál = image_array[:, :, 3]

Obrázky v odtieňoch šedej

Obrázky v odtieňoch sivej majú iba jeden kanál. Tvar poľa NumPy bude 2D pole(výška, šírka). Každý prvok v poli predstavuje intenzitu v odtieňoch šedej pixelu.

Manipulácia s poľom NumPy

Keď máte obrázok ako pole NumPy, môžete s ním vykonávať rôzne operácie. Môžete napríklad zmeniť farbu konkrétnej oblasti na obrázku.

# Zmeňte farbu obdĺžnikovej oblasti na obrázku image_array[100:200, 100:200, :] = [255, 0, 0] # Nastavte oblasť na červenú # Preveďte upravené pole späť na obrázokmodified_image = Image.fromarray(image_array) # Uložte upravený obrázokmodified_image.save'jpg()

V tomto príklade zmeníme farbu obdĺžnikovej oblasti na obrázku na červenú. Potom skonvertujeme upravené pole NumPy späť na obrázok pomocouImage.fromarray()metódu a uložte ju do súboru.

Aplikácie prevodu obrázkov na polia NumPy

Počítačové videnie

V úlohách počítačového videnia, ako je detekcia objektov, segmentácia obrazu a rozpoznávanie tváre, je potrebné obrázky spracovať v číselnom formáte. Konverzia obrázkov na polia NumPy umožňuje algoritmom vykonávať matematické operácie s obrazovými údajmi, ako je filtrovanie, detekcia hrán a extrakcia prvkov.

Strojové učenie

Mnohé modely strojového učenia, najmä modely hlbokého učenia na klasifikáciu obrázkov, detekciu objektov atď., vyžadujú vstupné údaje vo forme numerických polí. Konverzia obrázkov na polia NumPy je kľúčovým krokom pri príprave údajov na trénovanie a testovanie týchto modelov.

Analýza dát

Pri analýze údajov súvisiacich s obrázkom umožňuje konvertovanie obrázkov do polí NumPy štatistickú analýzu hodnôt pixelov. Môžete napríklad vypočítať priemer, medián a štandardnú odchýlku intenzity pixelov v obrázku.

Záver

Konverzia obrázka na pole NumPy pomocou Pillow je jednoduchý proces, ktorý otvára svet možností v oblasti spracovania obrazu, počítačového videnia a strojového učenia. Ako dodávateľ vankúšov chápeme dôležitosť inovácií a integrácie technológií v rôznych oblastiach. Či už potrebujete kvalitné vankúše ako naprVankúše z čistého husieho peria,Štandardné bavlnené obliečky na vankúše, aleboObliečky na vankúše, alebo máte otázky týkajúce sa technických aspektov, o ktorých sme diskutovali, sme tu, aby sme vám pomohli.

Ak máte záujem preskúmať náš sortiment alebo máte nejaké špecifické požiadavky na nákupy vo veľkom meradle, odporúčame vám, aby ste nás kontaktovali pre komplexnú diskusiu o obstarávaní. Tešíme sa na príležitosť obslúžiť vás.

Referencie

  • Oficiálna dokumentácia vankúša
  • Oficiálna dokumentácia NumPy
  • Oficiálna dokumentácia Pythonu

Zaslať požiadavku