logo

Concepte de convolució

La convolució s'utilitza per a moltes coses, com ara calcular derivades, detectar vores, aplicar desenfocaments, etc. i tot això es fa mitjançant un 'nucli de convolució'. Un nucli de convolució és una matriu molt petita i en aquesta matriu, cada cel·la té un nombre i també un punt d'ancoratge.

El punt d'ancoratge s'utilitza per conèixer la posició del nucli respecte a la imatge. Comença a la cantonada superior esquerra de la imatge i es mou en cada píxel seqüencialment. El nucli se solapa uns quants píxels a cada posició de la imatge. Cada píxel que es superposa es multiplica i després s'afegeix. I la suma s'estableix com el valor de la posició actual.

com convertir de cadena a int
Concepte de convolució

La convolució és el procés en què cada element de la imatge s'afegeix als seus veïns locals i després es pondera pel nucli. Està relacionat amb una forma de convolució matemàtica.

A la convolució, la matriu no realitza la multiplicació tradicional de matrius però es denota amb *.

Suposem que hi ha dues matrius de 3x3, una és el nucli i una altra és una peça d'imatge. En la convolució, les files i columnes del nucli s'inverteixen i després es multipliquen i després es fa la suma. Els elements que estan presents al centre de la matriu, és a dir, a [2,2] de la imatge, seran una combinació ponderada de la matriu d'imatge i els pesos seran donats pel nucli. De la mateixa manera, es ponderaran tots els altres elements de la matriu i després es calcularan els pesos.

El següent és un pseudocodi per descriure el procés de convolució:

classe abstracta
 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 

La convolució es pot calcular utilitzant múltiples bucles for. Però l'ús de bucles for provoca molts càlculs repetits i també augmenta la mida de la imatge i el nucli. Utilitzant la tècnica de la transformada de Fourier discreta, el càlcul de la convolució es pot fer ràpidament. En aquesta tècnica, tota l'operació de convolució es converteix en una multiplicació simple.

En la convolució, el problema es produeix quan el nucli està a prop de la vora o les cantonades perquè el nucli és bidimensional.

Per superar aquests problemes es poden fer les següents coses:

  1. Es poden ignorar
  2. Es poden crear píxels addicionals a prop de les vores.

Els píxels addicionals es poden crear de les maneres següents:

  1. Píxel de vora duplicat.
  2. Reflecteix les vores
  3. Els píxels es poden copiar des de l'altre extrem.