Scipy bildeprosess

Scipy bildeprosess

Bildebehandling er en av de essensielle modulene som må være tilgjengelige på hvert programmeringsspråk, spesielt når det handler om maskinlæring eller dyp læring. Python -programmeringsspråket anbefales sterkt for all slags maskinlæring og dyp læring, og når det gjelder bildebehandling, gir Python Scipy Library. Scipy -biblioteket i Python har en underimage -undermodule spesielt dedikert til bildebehandling i Python -programmeringsspråket. I denne artikkelen vil vi forklare hva bildebehandling er og hvordan det kan gjøres ved hjelp av Ndimage -undermodulen til Scipy Library.

Hva er bildebehandling på Python -programmeringsspråket?

Ethvert arbeid utført med et bilde er kjent som bildebehandling, i.e., Lesing, skriving, modifisering, manipulering osv. gjort på bilder for å hente ut meningsfull informasjon fra dem. For å manipulere eller transformere bilder, brukes Python -programmeringsspråket oftest. De vanligste oppgavene som kan utføres for bildebehandling er å vise bilder, rotere, flip, avling, skjerp, denoise, etikett, funksjonsutvinning osv. Alle disse funksjonene kan enkelt utføres på bilder med Scipy -biblioteket og NDIMAGE -modulen.

Hva er scipy ndimage?

Ndimage står for N-dimensjonalt bilde og leveres som en modul av Scipy Library. Det er sammensatt av en rekke funksjoner FMOR -bildebehandling og analyse. Flere oppgaver relatert til bildebehandling, i.e., Funksjonsekstraksjon, inngang, utgang, flipping, rotasjon, klassifisering osv., kan utføres med Ndimage -modulen. Ndimage -pakken til Scipy Library er dedikert til å operere med matriser av N -dimensjoner. Det inkluderer funksjoner for objektmåling, binær morfologi, lineær filtrering, B-spline-interpolering og ikke-lineær filtrering. Vi vil forklare funksjonen til Ndimage -modulen med eksempler for å hjelpe deg med å forstå hvordan disse funksjonene fungerer.

Eksempel 1:

Her vil vi forklare den 'korrelate' metoden i NDIMAGE -modulen. Korrelatmetoden til NDImage -modulen fungerer som en flerdimensjonal korrelasjon. Den 'korrelate' metoden brukes til å korrelere bildet med den gitte kjernen. Den "korrelate" -metoden for bildebehandling brukes til å flytte kjernen over bildet og beregne produktets sum på hvert sted. Se prøvekoden gitt i utdraget nedenfor:

Importer numpy som NP
Fra scipy.Ndimage import korrelerer
trykk (korrelerer (NP.Arange (100), [2, 4.5]))

Her startet vi med å importere Numpy -biblioteket som NP i programmet, slik at vi kunne bruke det relevante funksjonene i programmet videre i programmet. Etter det importerte vi Scipy -biblioteket sammen med NDIMAGE -modulen og korrelasjonsmetoden. Husk at du må inkludere alle biblioteker og moduler i programmet for å bruke deres relevante metoder og funksjoner. Hvis du ikke inkluderer bibliotekene, vil du ende opp med å håndtere feil og feil. Funksjonene og metodene til Python -programmeringsspråket fungerer ikke uten å importere foreldrebibliotekene sine til programmet.

Alle de nødvendige bibliotekene importeres, og vi kan begynne å jobbe med hovedkoden. Merk at vi brukte ordningsfunksjonen med NP -variabelen, som representerer Numpy -biblioteket, for å lage en rekke 100 verdier. Vektene [2, 4.5] er tildelt matrisen, og både matrise og vekt sendes til korrelatefunksjonen. La oss nå se hvilken matrise som er produsert av NDIMAG.korrelere funksjon. Utgangen er gitt nedenfor:

Eksempel 2:

I forrige eksempel, må du ha lagt merke til at til tross for at du har gitt vekt på et flytende punktnummer, er matrisen som produseres i heltallstall. Det skyldes at korrelasjonsfunksjonen som standard produserer et heltallnummer; Derfor trenger du spesielt å nevne hvordan du vil få utdata -matrisen. La oss se hvordan du kan oppnå det ved å sjekke kodelinjene gitt i kodebiten nedenfor:

Importer numpy som NP
Fra scipy.Ndimage import korrelerer
trykk (korrelerer (NP.Arange (100), [2, 4.5], output = np.float64))

Igjen importeres de nødvendige bibliotekene og modulene til programmet, og deretter NDIMAGE.Korrelatefunksjon kalles. Som du kan se, leveres datatypen til utgangsarrayen som 'FLAOT64', noe som betyr at den resulterende matrisen vil ha flytende punkttall. Se den resulterende utgangsarrayen gitt på skjermdumpen nedenfor:

Eksempel 3:

Som vi vet, er bilder representert med flerdimensjonale matriser siden hvert nummer i matrisen representerer en piksel av bildet. Så her bruker vi korrelasjonsfunksjonen for 1D -matrisen. For å jobbe med 1D -kjernen og skifte filteret på bildet, har vi Correlate1D -funksjonen. Se prøvekoden gitt i kodebiten nedenfor:

Importer numpy som NP
Fra scipy.Ndimage Import Correlate1d
arr = [1, 2, 2, 1, 1, 2]
Print (Correlate1d (arr, [1, 2, 1]))

Her vil vi forklare hvordan du kan håndtere kjernenes opprinnelse med Correlate1D -funksjonen. Normalt er kjerneopprinnelsen i sentrum, som beregnes ved å dele kjerneformens dimensjoner med 2. I kodebiten gitt ovenfor kan du se at de nødvendige bibliotekene først importeres til programmet, og deretter blir en matrise som heter ARR erklært som inneholder seks verdier. Maten med tilsvarende vekter er blitt gitt til Correlate1D -funksjonen. La oss nå se hvordan Correlate1D -funksjonen finner opprinnelsen til kjernen til den gitte matrisen. Resultatet er nedenfor:

Eksempel 4:

Først lærte vi hvordan Correlate1D -funksjonen finner kjernenes opprinnelse; La oss nå lære hvordan vi kan endre opprinnelsen til kjernen eksplisitt. Noen ganger kreves det å velge en annen kjerneopprinnelse enn sentrum, så for det har vi "opprinnelses" -parameteren. Opprinnelsesparameteren som er gitt til Correlate1D -funksjonen, lar deg enkelt velge et annet opprinnelse til kjernen.

Importer numpy som NP
Fra scipy.Ndimage Import Correlate1d
arr = [1, 2, 2, 1, 1, 2]
Print (Correlate1d (arr, [1, 2, 1], Origin = -1)))

Resultatet av å velge en annen kjerne for filteret er gitt i utgangen nedenfor:

Eksempel 5:

La oss lære å omforme matrisen etter behov. Bilder kan omformes, modifiseres, roteres, beskjæres osv. med bildebehandlingsfunksjonene. Her vil vi veilede deg om hvordan du skal omforme matrisen med Correlate1D -funksjonen. Omformet -funksjonen er levert av Numpy Library, så den brukes med NP -variabelen. Se prøvekoden gitt i kodebiten nedenfor:

Importer numpy som NP
Fra scipy.Ndimage Import Correlate1d
arr = np.Arange (100).omforme (20, 5)
Print (Correlate1d (arr, [1, 2, 1]))

Maten som produseres vil inneholde 100 elementer i 20 rader og 5 kolonner. Se den resulterende matrisen gitt nedenfor:

Konklusjon

I denne artikkelen lærte vi om bildebehandling på Python -programmeringsspråket. Bildebehandling er et veldig viktig trekk ved ethvert programmeringsspråk siden det å jobbe med bilder har blitt mer utbredt enn å jobbe med rå data. Derfor gir Python funksjoner for å jobbe med bilder i forskjellige biblioteker som Numpy, Scipy, etc. Her brukte vi Ndimage -modulen med korrelate og korrelate1d -funksjoner for å fungere for bildebehandling med flerdimensjonale matriser.