Codebox: Képszűrők létrehozása mátrix szorzással - 💡 Fix My Ideas

Codebox: Képszűrők létrehozása mátrix szorzással

Codebox: Képszűrők létrehozása mátrix szorzással


Szerző: Ethan Holmes, 2019

A színszűrők lehetővé teszik, hogy a képeket… jól… megváltoztassa a színek kiszűrésével. Míg a Feldolgozás néhány beépített szűrőt tartalmaz, gyakran hasznos, hogy saját egyéni szűrőket hozzon létre. Például az Anaglyph módszerek összehasonlítása számos olyan különböző szűrőt ismertet, amelyek hasznosak a 3D képek létrehozásában.

Amint azt a webhelyről látni fogja, a szűrők alapvetően matematikai átalakítások, amelyeket a kép piros pixeleinek piros, zöld és kék összetevőire alkalmaz. Ahhoz, hogy olyan szűrőt hozzon létre, mint amilyen a sztereó anaglyph oldalon, meg kell húznunk az egyes képpontokat az eredeti képben, mátrix műveletet kell alkalmazni a színkomponenseire, majd ezt az új értéket az új kép megfelelő pixelében használni. Ez a Codebox megmutatja, hogyan hozhat létre saját szűrőket.

Először is, egy kis áttekintés a (potenciálisan) szőrös megjelenésű matematika számára. A mátrix egy elnevezésű kétdimenziós számrendszer. A mátrixokat számos különböző alkalmazásban használják, amelyek egyenletek, 3D objektumok átalakításait és színszűrőket képviselnek (mint a példában).

A mátrixot általában a mérete jellemzi: a sorokban lévő elemek számát (az áthaladó számokat) és az oszlopokat (a felfelé és lefelé irányuló számokat). Megegyezés szerint a sorok száma mindig először jelenik meg. Az alábbi ábra két mátrixot mutat. A bal oldalon egy 2 soros 3 mátrix van, amelyet általában csak 2 × 3 mátrixnak nevezünk. A jobb oldalon egy 3 soros 2 oszlop mátrix, amelyet 3 × 2 mátrixnak is neveznek:

A két mátrix együttes szaporításához (hívjuk őket A-mátrixnak és B-mátrixnak) az A-mátrixban lévő oszlopok számának meg kell egyeznie a B. mátrix sorainak számával. Ez kritikus - ha ez nem igaz, akkor a szorzás nincs meghatározva . (Ez olyan, mintha nullával osztanánk - ez egyszerűen lehetetlen.)

Feltételezve, hogy a kritériumok teljesülnek, a két mátrix terméke (amely C-mátrixnak nevezi) ugyanolyan sorszámú lesz, mint az A mátrix és ugyanaz az oszlopok száma, mint a B mátrix. a B oszlopban lévő megfelelő oszlopelemek termékei. Ez egy kicsit trükkös, de a következő ábra (remélhetőleg!) egy kicsit tisztább lesz:

A következő vázlat, matrix_mult.pde, bemutatja, hogyan kell végrehajtani a műveletet a Feldolgozásban:

A vázlat futtatásakor az alábbi kimenetet kell látnia:

[0][0] = 2.0 [0][1] = 0.0 [1][0] = 5.5 [1][1] = 2.0

Tehát, ha az alapvető matematika ki van zárva, készen állunk a szűrő kód írására. A fennmaradó ráncok az, hogy a Feldolgozás képeit egy dimenziós tömbökben tartják, nem pedig a (x, y) koordináták 2 dimenziós tömbjeit, ahogyan ezt a nagyszerű képeket és pixeleket ismerteti Daniel Shiffman. A bemutatóban egy szép képletet ad, amellyel egy (x, y) koordinátát a kép tömb pozíciójára térképezhet:

pozíció tömbben = x + IMAGE_WIDTH * y

A következő ábra segíti a munka fogalmának nagy részét itt bemutatni:

További részletek nélkül itt van egy filter.pde nevű vázlat, amely a szűrőt a mátrix-szorzás segítségével valósítja meg:

További: Itt tekintheti meg az összes Codebox oszlopot

A Maker Shedben:


Első lépések a feldolgozással Ismerje meg a számítógépes programozást a feldolgozással egyszerű módon, amely lehetővé teszi a kódok használatát rajzok, animációk és interaktív grafikák létrehozásához. A programozási kurzusok általában az elméletből indulnak ki, de ez a könyv lehetővé teszi, hogy közvetlenül a kreatív és szórakoztató projektekre ugorjon. Ideális azok számára, akik alapvető programozást akarnak tanulni, és egyszerű bemutatkozásként szolgálnak a programozáshoz szükséges grafikák számára.



Lehet, Hogy Érdekli

Szerszám áttekintés: DT-2234C + digitális lézeres fordulatszámmérő

Szerszám áttekintés: DT-2234C + digitális lézeres fordulatszámmérő


HASZNÁLJA Kínában: Hogyan készítsünk egy jó gyárat

HASZNÁLJA Kínában: Hogyan készítsünk egy jó gyárat


Az Ön megjegyzései

Az Ön megjegyzései


5, 4, 3, 2, 1 dolog Ian Langohrról

5, 4, 3, 2, 1 dolog Ian Langohrról