C· Byggaredatorseende· ca 30 min· grundläggande — ändras sällan· verifierad 2026-09-20
Bilder som matriser
Kunna manipulera en bild som en array av pixelvärden och kanaler.
Förkunskaper
Intuition
En färgbild är en matris av matriser: för varje pixel tre tal 0–255 (rött, grönt, blått).
I kod har bilden formen (höjd, bredd, kanaler). En bild på 32 × 32 pixlar i färg har formen (32, 32, 3) och innehåller 3 072 tal.
Att göra saker med bilden är att räkna på talen:
- Ljusare: lägg till 40 på alla värden (men klipp vid 255).
- Gråskala: slå ihop de tre kanalerna till ett värde.
- Beskära: ta ut ett rektangulärt utsnitt av matrisen.
- Spegelvända: läs kolumnerna baklänges.
Kod
import numpy as np
bild = np.zeros((4, 6, 3), dtype=np.uint8) # svart bild, 4 rader × 6 kolumner
bild[:, 3:, 0] = 255 # höger halva röd
print(bild.shape, bild.size) # (4, 6, 3) 72
gra = bild.mean(axis=2) # slå ihop kanalerna → (4, 6)
print(gra.shape, gra[0, 0], round(float(gra[0, 4]), 1)) # (4, 6) 0.0 85.0
ljusare = np.clip(bild.astype(int) + 40, 0, 255).astype(np.uint8)
utsnitt = bild[1:3, 2:5] # rader 1–2, kolumner 2–4
spegel = bild[:, ::-1] # vänd vänster/höger
print(utsnitt.shape, spegel.shape) # (2, 3, 3) (4, 6, 3)
Ett CNN gör i grunden samma sak: glider ett litet filter över matrisen och räknar. Skillnaden är att filtrets tal lärs in i stället för att du väljer dem.
Behärskning innebär
- Beskriver en bild som en array med höjd, bredd och kanaler
- Gör enkla operationer: gråskala, beskärning, ljusare
Logga in för att göra övningarna och bygga upp din behärskning.
Källor
- NumPy — dokumentation (BSD-3) — BSD-3-Clause
- CS231n — Image Classification — fri läsning