Video: Livesänt webbinarium om GDPR den 25 april 2024
Ostrukturerade datafiler består av en serie bitar. Filen skiljer inte bitarna från varandra på något sätt. Du kan inte bara titta på filen och se någon struktur eftersom det inte finns någon att se. Ostrukturerade filformat är beroende av filanvändaren för att kunna tolka data.
Till exempel kan varje pixel i en bildfil bestå av tre 32-bitars fält. Att veta att varje fält är 32 bitar är upp till dig. En rubrik i början av filen kan ge ledtrådar om att tolka filen, men det är ändå upp till dig att veta hur man ska interagera med filen.
Detta exempel visar hur man arbetar med en bild som en ostrukturerad fil. Exempelbilden är ett offentligt domänbjudande från commons. wikimedia. org. För att arbeta med bilder måste du komma åt scikitbildsbiblioteket, vilket är en kostnadsfri samling av algoritmer som används för bildbehandling. Här är en handledning för det här biblioteket.
Den första uppgiften är att kunna visa bilden på skärmen med hjälp av följande kod. (Denna kod kan kräva lite tid att köra. Bilden är klar när upptagetindikatorn försvinner från fliken IPython Notebook.)
från skimage. Jag importerar imderat
från skimage. omvandla import storlek
från matplotlib importpiplot som plt
import matplotlib. cm som cm
example_file = (" // ladda upp.wikimedia. org /" +
"wikipedia / commons / 7 / 7d / Dog_face. png")
image = imread (example_file, as_grey = sant)
plt. imshow (bild, cmap = cm. grå)
plt. visa ()
Koden börjar genom att importera ett antal bibliotek. Den skapar sedan en sträng som pekar på exempelfilen online och placerar den i
example_file
. Denna sträng är en del av metoden
imread ()
, tillsammans med
as_grey
, som är satt till
True
. Argumentet
as_grey
berättar för Python att vända färgbilder till gråskala. Alla bilder som redan finns i gråskala kvarstår så.
Nu när du har en bild laddad är det dags att göra det (gör det klart att visa på skärmen. Funktionen
imshow ()
utför utförandet och använder en gråskala färgkarta. > show ()
funktionen visar faktiskt
bild
för dig.
Bilden visas på skärmen när du har gjort och visar den.
I [*]:
posten berättar att koden fortfarande körs och du kan inte gå vidare till nästa steg.) Åtgärden att stänga bilden slutar kodesegmentet. Nu har du en bild i minnet, och du kanske vill veta mer om det.När du kör följande kod upptäcker du bildtyp och storlek:
print ("datatyp:% s, form:% s"%
(typ (bild), bildform))
Utgången från det här samtalet berättar att bildtypen är
numpy. ndarray
och att bildstorleken är 90 pixlar med 90 pixlar. Bilden är faktiskt en uppsättning pixlar som du kan manipulera på olika sätt. Om du till exempel vill beskära bilden kan du använda följande kod för att manipulera bildmatrisen:
image2 = image [5: 70, 0: 70]
plt. imshow (bild2, cmap = cm. grå)
plt. visa ()
Den
numpy. ndarray
i
image2
är mindre än den i
bild
, så utmatningen är också mindre. Typiska resultat visas nedan. Syftet med att beskära bilden är att göra den till en viss storlek. Båda bilderna måste vara lika stora för att du ska kunna analysera dem. Beskärning är ett sätt att se till att bilderna är rätt storlek för analys.
Beskärningen av bilden gör den mindre.
image3 = resize (image2, (30, 30), mode = "närmaste")
plt. imshow (image3, cmap = cm. grå)
print ("datatyp:% s, form:% s"%
(typ3), bild3.form))
print ()
-funktionen berättar att bilden nu är 30 pixlar med 30 pixlar i storlek. Du kan jämföra det med en bild med samma dimensioner.
När du har alla bilder i rätt storlek måste du platta dem. En datasekvensrad är alltid en enda dimension, inte två dimensioner. Bilden är för närvarande en uppsättning med 30 pixlar med 30 pixlar, så du kan inte göra den till en dataset. Följande kod plattar
image3
så att den blir en uppsättning med 900 element som lagras i
image_row
:
image_row = image3. flatten ()
print ("datatyp:% s, form:% s"%
(typ (image_row), image_row. form))
Observera att typen fortfarande är
numpy. ndarray
. Du kan lägga till denna array i en dataset och använd sedan datasatsen för analysändamål. Storleken är 900 element, som förväntat.