martes, 3 de abril de 2012

Tratamiento de imágenes (Parte IV)

Tras haber aplicado un máscara en la imagen, vemos más ejemplos de diferentes máscaras. Sólo bastaría cambiar la máscara repujado por alguna de las siguientes. Se podría insertar todo en una sentencia Select Case, y dependiendo de qué máscara se seleccione, aplicar una u otra.

Select Case Tipo_mascara

             Case "SOBEL" 'Máscara Sobel
                mascara(0, 0) = 1 : mascara(0, 1) = 0 : mascara(0, 2) = -1
                mascara(1, 0) = 2 : mascara(1, 1) = 0 : mascara(1, 2) = -2
                mascara(2, 0) = 1 : mascara(2, 1) = 0 : mascara(2, 2) = -1

            Case "PUNTOS" 'Máscara detección de puntos
                mascara(0, 0) = -1 : mascara(0, 1) = -1 : mascara(0, 2) = -1
                mascara(1, 0) = -1 : mascara(1, 1) = 8 : mascara(1, 2) = -1
                mascara(2, 0) = -1 : mascara(2, 1) = -1 : mascara(2, 2) = -1

            Case "VERTICALES" 'Máscara detección líneas verticales
                mascara(0, 0) = -1 : mascara(0, 1) = -1 : mascara(0, 2) = -1
                mascara(1, 0) = 2 : mascara(1, 1) = 2 : mascara(1, 2) = 2
                mascara(2, 0) = -1 : mascara(2, 1) = -1 : mascara(2, 2) = -1

            Case "HORIZONTALES" 'Máscara detección líneas horizontales
                mascara(0, 0) = -1 : mascara(0, 1) = 2 : mascara(0, 2) = -1
                mascara(1, 0) = -1 : mascara(1, 1) = 2 : mascara(1, 2) = -1
                mascara(2, 0) = -1 : mascara(2, 1) = 2 : mascara(2, 2) = -1

            Case "MEDIA" 'Máscara de cálculo de media
                mascara(0, 0) = 1 : mascara(0, 1) = 1 : mascara(0, 2) = 1
                mascara(1, 0) = 1 : mascara(1, 1) = 1 : mascara(1, 2) = 1
                mascara(2, 0) = 1 : mascara(2, 1) = 1 : mascara(2, 2) = 1

            Case "BORDES" 'Máscara realzar bordes
                mascara(0, 0) = 0 : mascara(0, 1) = 0 : mascara(0, 2) = 0
                mascara(1, 0) = -1 : mascara(1, 1) = 1 : mascara(1, 2) = 0
                mascara(2, 0) = 0 : mascara(2, 1) = 0 : mascara(2, 2) = 0

            Case "DETECTAR" 'Máscara detección de bordes
                mascara(0, 0) = 0 : mascara(0, 1) = 1 : mascara(0, 2) = 0
                mascara(1, 0) = 1 : mascara(1, 1) = -4 : mascara(1, 2) = 1
                mascara(2, 0) = 0 : mascara(2, 1) = 1 : mascara(2, 2) = 0

end Select

Esto son varios ejemplos, pero hay muchos más, incluso se podría pedir al usuario que insertase los valores que él quisiese. 
Más info: http://ocw.usal.es/ensenanzas-tecnicas/herramientas-informaticas-para-el-geoprocesado

No hay comentarios:

Publicar un comentario