Konvoluutiota käytetään moniin asioihin, kuten johdannaisten laskemiseen, reunojen havaitsemiseen, sumennuksen lisäämiseen jne. ja kaikki tämä tehdään 'konvoluutioytimellä'. Konvoluutioydin on hyvin pieni matriisi ja tässä matriisissa jokaisella solulla on numero ja myös ankkuripiste.
Kiinnityspisteen avulla tiedetään ytimen sijainti suhteessa kuvaan. Se alkaa kuvan vasemmasta yläkulmasta ja liikkuu jokaisella pikselillä peräkkäin. Ydin peittää muutaman pikselin jokaisessa kuvan kohdassa. Jokainen päällekkäinen pikseli kerrotaan ja lisätään sitten. Ja summa asetetaan nykyisen sijainnin arvoksi.
ankita dave
Konvoluutio on prosessi, jossa kuvan jokainen elementti lisätään paikallisiin naapureihinsa, ja sitten ydin painottaa sitä. Se liittyy eräänlaisen matemaattisen konvoluution muotoon.
Convolutionissa matriisi ei suorita perinteistä matriisikertoa, mutta se on merkitty *:llä.
Oletetaan, että on kaksi 3x3 matriisia, joista toinen on ydin ja toinen kuvakappale. Konvoluutiossa ytimen rivit ja sarakkeet käännetään ja sitten ne kerrotaan ja sitten suoritetaan summaus. Elementit, jotka ovat matriisin keskellä eli kuvan kohdassa [2,2], ovat kuvamatriisin painotettu yhdistelmä ja painot antaa ydin. Samalla tavalla kaikki muut matriisin elementit painotetaan ja sitten painot lasketaan.
Seuraava on pseudokoodi kuvaamaan konvoluutioprosessia:
relaatioalgebra rdbms:ssä
For each image row in input image: For each pixel in image row: Set accumulator to zero For each kernel row in kernel: For each element in kernel row: If element position corresponding* to pixel position then Multiply element value corresponding*to pixelvalue Add result to accumulator Endif Set output image pixel to accumulator
Konvoluutio voidaan laskea käyttämällä useita silmukoita. Mutta silmukoiden käyttö aiheuttaa paljon toistuvia laskelmia ja myös kuvan ja ytimen koko kasvaa. Discrete Fourier Transform -tekniikalla konvoluutio voidaan laskea nopeasti. Tässä tekniikassa koko konvoluutiotoiminto muunnetaan yksinkertaiseksi kertolaskuksi.
Konvoluutioprosessissa ongelma ilmenee, kun ydin on lähellä reunaa tai kulmia, koska ydin on kaksiulotteinen.
Voit ratkaista nämä ongelmat seuraavasti:
- Ne voidaan jättää huomiotta
- Ylimääräisiä pikseleitä voidaan luoda lähelle reunoja.
Ylimääräisiä pikseleitä voidaan luoda seuraavilla tavoilla:
- Kopioi reunapikseli.
- Heijastavat reunat
- Pikselit voidaan kopioida toisesta päästä.