1) Subrutina para aplicar una máscara de convolución discreta, de
preferencia centralizado al pixel en cuestión.
2) Con esa subrutina,
calcular por lo menos un gradiente horizontal y un gradiente vertical,
posiblemente más o también diagonales, con la posibilidad de combinarlos
al tiempo de calcularlos a uno solo o combinando entre múltiples
matrices de gradiente una vez terminada la aplicación de todas las
máscaras de gradiente:
3) Normalización de la matriz resultante de la
manera que perciben factible y útil a [0, 255]
4)Binarización que deje los bordes como zonas blancas y el resto negro.
La imagen que utilice para estas pruebas fue esta.
Para realizar esta primera tarea utilice dos máscaras.
Estas máscaras presentan una ventaja en cuanto a las demás como la de Robert, es que además de estimar el valor del módulo del gradiente, producen un
alisamiento en la imagen que resulta beneficioso.
1.- Mascara Sobel.- Que utiliza esta matriz para sus operaciones
2- Mascara Prewitt, Esta mascara utiliza esta matriz de 3 x 3 para sus operaciones.
Ya una vez sabiendo lo teórico, se procede a implementar la convolución. Aquí utilice la imagen en escala de grises y filtrada de la entrada de laboratorio.
Aquí se encuentra el código que hace esto.
Esta es la imagen resultante.
Ahora se procederá a implementar las mascaras , y con esto obtendremos los bordes de la imagen.
Como se mencionó existen distintos métodos yo utilice Prewitt y Sobel.
Aquí está el código , y se carga la matriz Sobel y Prewitt con sus valores respectivos.
msobelX = ([-1, 0, 1], [-2, 0, 2], [-1, 0, 1])
msobelY = ([1, 2, 1], [0, 0, 0], [-1, -2, -1])
prewittX=([-1, 0, 1], [-1, 0, 1], [-1, 0, 1])
prewittY=([1, 1, 1], [0, 0, 0], [-1,-1,-1])
Se pide que ingreses un "UNO" para trabajar con la matriz Sobel y un "DOS" para trabajar con la matriz prewitt.
Aquí están las distintas pruebas que realice.
4760862 Mascara sobel.
Imagen original Imagen con Mascara
Imagen Original Imagen con máscara
Mascara Prewitt
Imagen original Imagen con máscara
Y aquí todo el código
Aquí esta el link a el codigo.
https://gist.github.com/robertovalenzuela91/4760862
Cierta debilidad en los acentos y tampoco mediste los tiempos, pero va el mismo trato que con Osvaldo. 5 pts ahora, pero ya no aguanto mucho más la omisión aleatoria de acentos de palabras.
ResponderEliminar