logo

Pojam konvolucije

Konvolucija se koristi za mnoge stvari poput izračuna derivacija, otkrivanja rubova, primjene zamućenja itd., a sve se to radi pomoću 'konvolucijske jezgre'. Konvolucijska jezgra je vrlo mala matrica iu ovoj matrici svaka ćelija ima broj i također točku sidrišta.

Točka sidrenja koristi se za poznavanje položaja jezgre u odnosu na sliku. Počinje u gornjem lijevom kutu slike i pomiče se na svaki piksel redom. Kernel se preklapa nekoliko piksela na svakoj poziciji na slici. Svaki piksel koji se preklapa množi se i zatim dodaje. A zbroj je postavljen kao vrijednost trenutne pozicije.

do i while petlja u Javi
Pojam konvolucije

Konvolucija je proces u kojem se svaki element slike dodaje svojim lokalnim susjedima, a zatim ga ponderira kernel. Povezan je s oblikom matematičke konvolucije.

U Convolution, matrica ne izvodi tradicionalno množenje matrice, ali je označena sa *.

Pretpostavimo da postoje dvije 3x3 matrice, jedna je jezgra, a druga je dio slike. U konvoluciji, redovi i stupci kernela se okreću, zatim se množe i zatim se izvodi zbrajanje. Elementi koji su prisutni u središtu matrice, tj. u [2,2] slike, bit će ponderirana kombinacija matrice slike, a težine će dati jezgra. Slično, svi ostali elementi matrice bit će ponderirani, a zatim će se izračunati ponderi.

Slijedi pseudo kod za opis procesa konvolucije:

standardna devijacija pandi
 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 

Konvolucija se može izračunati pomoću više for petlji. Ali korištenje for petlji uzrokuje puno ponovljenih izračuna, a također se povećava veličina slike i kernela. Upotrebom tehnike diskretne Fourierove transformacije izračun konvolucije može se izvršiti brzo. U ovoj se tehnici cijela operacija konvolucije pretvara u jednostavno množenje.

Kod konvolucije, problem se javlja kada je jezgra blizu ruba ili uglova jer je jezgra dvodimenzionalna.

Za prevladavanje ovih problema mogu se učiniti sljedeće stvari:

  1. One se mogu zanemariti
  2. Dodatni pikseli mogu se stvoriti u blizini rubova.

Dodatni pikseli mogu se stvoriti na sljedeće načine:

  1. Duplicirani rubni piksel.
  2. Reflektirajte rubove
  3. Pikseli se mogu kopirati s drugog kraja.