En el algoritmo de tamizado de MATLAB, cómo utilizar una plantilla para hacer coincidir varias imágenes
(1) Descripción general de la transformación de características invariantes de escala (algoritmo SIFT)
Es un algoritmo de visión por computadora que se utiliza para detectar y describir características locales en imágenes. Encuentra puntos extremos en la escala espacial. y extraer sus invariantes de posición, escala y rotación.
Este algoritmo fue publicado por David Lowe en 1999 y resumido en 2004. Su ámbito de aplicación incluye reconocimiento de objetos, percepción y navegación de mapas de robots, unión de imágenes, creación de modelos 3D, reconocimiento de gestos, seguimiento de imágenes y comparación de acciones. Este algoritmo está patentado y el propietario de la patente es la Universidad de Columbia Británica.
La descripción y detección de características de imágenes locales pueden ayudar a identificar objetos. Las características SIFT se basan en algunos puntos de interés de apariencia local en el objeto y son independientes del tamaño y la rotación de la imagen. La tolerancia a la luz, el ruido y los ligeros cambios en el ángulo de visión también es bastante alta. Según estas características, son muy destacados y relativamente fáciles de recuperar. En una base de datos de características grande, los objetos se identifican fácilmente y la identificación errónea es rara. La tasa de detección de oclusión parcial de objetos utilizando la descripción de características SIFT también es bastante alta, e incluso más de tres características de objetos SIFT son suficientes para calcular la posición y orientación. En las condiciones actuales de velocidad del hardware informático y base de datos de funciones pequeñas, la velocidad de reconocimiento puede acercarse a la operación en tiempo real. Las funciones SIFT tienen una gran cantidad de información y son adecuadas para realizar coincidencias rápidas y precisas en bases de datos masivas.
(2) Las funciones principales del código Matlab son las siguientes: match.m: programa de prueba
Función: Esta función lee dos imágenes (en escala de grises) y encuentra su respectivo SIFT. Características y muestra dos líneas rectas que conectan los puntos clave coincidentes (los puntos clave coincidentes) en las dos imágenes (que conectan los puntos característicos correspondientes. El criterio para juzgar la coincidencia es que la distancia coincidente es menor que distRatio multiplicada por la siguiente coincidencia más cercana. Una coincidencia es). se acepta solo si su distancia es menor que distRatio multiplicada por la distancia hasta la segunda coincidencia más cercana. Devuelve el número de coincidencias mostradas. Ejemplo de llamada: match('desk .jpg','book.jpg');
(Si desea probar la función de coincidencia entre una imagen de un escritorio que contiene un libro y una imagen de un libro) Método de llamada y descripción del parámetro: omitido Nota: (1) La imagen es una imagen en escala de grises. una imagen en color, debe convertirse a una imagen en escala de grises usando rgb2gray antes de llamar.
(2) El parámetro distRatio es el coeficiente que controla el número de puntos coincidentes, aquí tome 0,6. número de puntos coincidentes Ajuste este parámetro en el archivo Match.m para obtener el número más apropiado de puntos coincidentes.
sift.m: el programa de algoritmo central de transformación de características invariantes de escala (algoritmo SIFT)
Función: esta función lee la imagen en escala de grises y devuelve puntos clave SIFT. Método de llamada y descripción de parámetros:
Método de llamada: [image, descriptores, locs] = sift(imageFile) ? Parámetros de entrada:
imageFile: nombre del archivo de imagen.
Parámetros de salida o retorno (devueltos):
imagen: es una matriz de imagen con formato doble
descriptores: una matriz x de K por 128, donde cada fila es para el descriptor invariante de los K puntos clave encontrados. El descriptor es un vector de 128 valores normalizado a un vector de longitud unitaria.
locs: es una matriz de K por 4, cada fila de la cual tiene cuatro valores, que representan información de ubicación de puntos clave (coordenadas de fila, coordenadas de columna). (fila, columna) en la imagen, tenga en cuenta que la esquina superior izquierda de la imagen general es el origen de las coordenadas), escala, un parámetro del espacio de escala gaussiano, que también determina el tamaño del disco de la imagen determinado por el marco ( estructura), y el último parámetro es la orientación de la dirección). El rango del parámetro de dirección es [-PI, PI] y la unidad es radianes.
appendimages.m: esta función crea una nueva imagen que contiene dos imágenes coincidentes y la línea recta que conecta los pares coincidentes entre ellas
(3) ?Resultados reales de la ejecución del caso:
El código del programa utiliza una programación híbrida de matlab y c. Utilice matlab para abrir el archivo sift_match.m en el archivo y ejecutarlo. Como se muestra en la siguiente imagen:
Como se puede ver en la imagen de arriba, *** tiene 17 puntos coincidentes.