Resumen de la aplicación de la tabla de código de cadena y la tabla de segmentos de línea en la detección de la posición del agujero de pcb: este artículo estudia el posicionamiento del agujero de la placa de circuito impreso en la industria, logrando el propósito de la máquina de punzonado de la placa de circuito impreso estándar. Preprocesar eficazmente las imágenes recogidas por el CLD y utilizar la combinación de la tabla de código de cadena y la tabla de segmentos de línea para determinar con precisión y rapidez la posición del Centro de masa del agujero de pcb. El método de este artículo puede detectar con precisión el Centro de masa hasta el nivel de 0001 píxeles. Descubra el área, la circunferencia, la forma y el Centro de la masa del agujero. Este método se ejecuta con éxito en la plataforma VC + 6.0, con una velocidad de programación rápida, que puede realizar pruebas en tiempo real, precisas, inteligentes y por lotes, lo que mejora en gran medida la calidad y la velocidad de las pruebas de placas de pcb.
Introducción
La detección óptica automática (aoi, inspección óptica automática) es un método de detección visual que ha aparecido en los últimos años. Obtiene imágenes a través de la transferencia y juzga defectos y fallas a través del procesamiento y análisis informático. La aplicación de Aoi en la línea de producción de PCB tiene las ventajas de detección rápida, corto tiempo de programación y control inteligente de detección de grandes lotes de imágenes. Con el desarrollo de la tecnología industrial, los requisitos para el tamaño del agujero de la placa de PCB son cada vez más altos, y los requisitos para la producción en masa de máquinas también son cada vez más altos. Este artículo proviene de un proyecto de una empresa que produce contadores de agujeros. El requisito técnico es que el radio mínimo de la ubicación del agujero de PCB sea de 0,2 mm, con hasta 2.000 agujeros redondos en cada pcb. El tiempo total de procesamiento no supera los 10 S. Resultados obtenidos después del tratamiento. El Centro del círculo es preciso a nivel de 0,01 píxeles, y la desviación de cada centro del círculo del Centro de la plantilla no debe exceder de 25 um. Si el 80% de la desviación central supera este indicador, se considera que no está calificado y es necesario ajustar la referencia del equipo.
El "borde" se refiere a la colección de píxeles en la imagen donde el nivel de grises de los píxeles cambia escalonadamente o en forma de techo. Existe entre objetivos y antecedentes, objetivos y objetivos, regiones y regiones, primitivos y primitivos. Es muy útil para el reconocimiento y análisis de imágenes. Los bordes pueden delinear el contorno del objeto objetivo, hacer que el observador sea claro de un vistazo y contener información rica [1]. Por lo tanto, para obtener la información de ubicación del agujero, primero se debe realizar la detección de borde y el seguimiento del contorno. Utilice el Código de cadena Freeman para rastrear los contornos de los bordes y utilice la tabla de código de cadena y la tabla de segmentos para almacenar y procesar datos.
1 Adquisición y preprocesamiento de imágenes
(1) este artículo utiliza cámaras de retroiluminación y alta resolución para obtener imágenes de alto contraste y alta calidad. La resolución de la imagen es de 409 * 096. La calidad de la fuente de la imagen es muy importante y afectará directamente el procesamiento posterior de la imagen.
(2) suavizar la imagen utilizando un filtro mediano, con el objetivo de minimizar o eliminar el impacto del ruido y mejorar la calidad de la imagen. El filtro mediano puede superar el modelo de detalle de la imagen causado por filtros lineales como el filtro de mínimos cuadrados y el filtro promedio bajo ciertas condiciones, y es más eficaz para filtrar la interferencia de pulso y el ruido de escaneo de la imagen. Para las imágenes involucradas en este artículo, los detalles del agujero de la placa de PCB son defectuosos, por lo que el filtro mediano es más adecuado. Su ventaja es que puede eliminar el ruido sin destruir el borde de la imagen.
(3) división del umbral con ostu (método de variación máxima entre clases). Este método es simple, estable y eficaz. Es un método de binarización que selecciona automáticamente el umbral sobre la base de juzgar el principio de la función mínima y el método. La idea es dividir la imagen. el histograma se divide en dos grupos según un cierto nivel de escala de grises. Cuando la variación de los dos grupos divididos es máxima, el nivel de escala de grises se establece en el umbral óptimo [2].
2 utilice la tabla de código de cadena y la tabla de segmentos de línea [3] para describir los resultados de los datos de la imagen.
(1) el uso del contorno del Código de cadena Freeman para rastrear el Código de cadena Freeman [4] se divide en ocho códigos de cadena conectados y cuatro códigos de cadena conectados. El Código de cadena de ocho conexiones se define por la dirección del píxel central hacia sus ocho vecinos, y la cadena de cuatro conexiones utiliza el píxel central. En dirección a sus cuatro vecinos, el valor es de 0 ï3. Este artículo utiliza un código de cadena de ocho enlaces, como se muestra en la figura 2 a continuación, el Código de cadena de ocho enlaces gira en el sentido de las agujas del reloj, y cuando gira 45 grados en el sentido de las agujas del reloj, el valor del Código de cadena se reduce en 1; Si el valor del Código de cadena aumenta en 4, la dirección se invierte y se agrega 8. Luego vuelve a la dirección original. Cuando el valor del Código de cadena es superior a 8 o inferior a 0, se utiliza la operación Módulo 8 para eliminar o agregar 8.
(2) aplicación de la tabla de código de cadena
Para el seguimiento de un solo agujero en la placa de pcb, este artículo utiliza el método de código de cadena Freeman para obtener el Código de cadena límite del objeto objetivo. Cuando se busca el nivel de escala de grises del cuerpo objetivo en un punto, este punto es el punto límite del cuerpo objetivo. Si el punto aún no está codificado, el punto es el punto de partida de la posición de un agujero. A partir de este punto, el seguimiento del contorno a través del Código de cadena Freeman permite rastrear los valores del Código de cadena de cada punto en el límite y los valores de desviación de coordenadas de los puntos centrales y adyacentes se muestran en la tabla 1. Las coordenadas de cada punto fronterizo se pueden obtener de las coordenadas del punto de partida, que se pueden expresar como una matriz bidimensional Inc [8] [2].
El proceso de codificación específico es: establecer la escala de grises del objeto objetivo en G1 y la escala de grises de fondo en g2. Busca imágenes de todo el tablero de pcb. Cuando un punto a cumple con el nivel de escala de grises de g1, se considera un punto límite. A partir de a, se busca el límite de la posición del agujero en el sentido de las agujas del reloj, y el valor inicial se define como un valor de código de cadena igual a 4. se busca el siguiente punto en la Dirección. Si el valor de escala de grises del siguiente punto es igual a g1, es el siguiente punto límite. De lo contrario, la dirección de búsqueda girará 45 grados en el sentido de las agujas del reloj, con un valor de código de cadena de 3 para continuar la búsqueda del punto, de modo que siempre se encuentre el primer punto a, punto b, que cumpla un valor de escala de grises igual a g1. Luego se establece B como un nuevo punto límite y se establece la bandera de fin de seguimiento en 0. Si no se encuentra un punto límite en un punto adyacente, establezca la bandera de fin de seguimiento en 1 para indicar que es un punto aislado.
Tome el punto B como un nuevo punto fronterizo. Tome su valor de código de cadena como la dirección del Código de cadena inicial. Repita el rastreo anterior en el sentido de las agujas del reloj hasta que el último punto límite sea el punto A. rastree el mapa de bits de un solo agujero y llene el área con colores, lo que significa que ha sido buscado y que los valores de código de cadena rastreados se almacenan en la tabla de código de cadena. Este artículo almacena la tabla de código de cadena en el Código de matriz entera unidimensional [1], el contenido almacenado con subíndices 0 y 1 son las coordenadas X e y del punto límite inicial, respectivamente, y el número total de código de cadena se almacena en la unidad con subíndices 2. el número n comienza en la unidad con subíndices 3 y almacena El valor del Código de cadena del primer punto límite. El valor del Código de cadena del segundo punto límite... Hasta el valor del Código de cadena del último punto límite N.
Tabla de segmentos de 3 líneas
(1) definición de la tabla de segmentos
Debido a que la tabla de código de cadena solo puede representar el límite del cuerpo objetivo, no el interior y el exterior del límite, la tabla de código de cadena no puede representar los píxeles dentro del cuerpo objetivo, pero en realidad, además de obtener el punto límite y la circunferencia de la imagen, también obtiene otros parámetros, como los datos del Centro del agujero y el área obtenidos en este artículo. Para lograr el procesamiento y cálculo de píxeles internos, se necesita otra estructura: la tabla de segmentos.
Esta zona también puede considerarse compuesta por segmentos horizontales. Cada segmento puede ser representado por sus dos puntos finales. La tabla de puntos finales de todos los segmentos horizontales en el área de disposición suave de escaneo se llama tabla de segmentos. Cada punto de la tabla de segmentos consta de dos partes. Los puntos pares representan las coordenadas del punto final izquierdo y los puntos impares representan las coordenadas del punto final derecho. Si se define un Dot estructural para representar la tabla de segmentos, se utiliza una matriz unidimensional dot[] para que i represente los segmentos. el extremo izquierdo de este segmento se puede representar como Dot [2 * i] y el extremo derecho como Dot [2 * I + 1].
(2) aplicación de la tabla de segmentos
La tabla de segmentos obtiene los valores finales de cada segmento y segmento, por lo que puede obtener fácilmente los píxeles internos del área a través del cálculo, y también puede obtener otros parámetros importantes de la imagen, como los necesarios en este artículo: calcular el área del área, el Centro de gravedad del área; Rellenar rápidamente un área (evitar búsquedas repetidas y mejorar la eficiencia); Parámetros de forma del área, la fórmula se expresa como: f = l * L / 4ßs
El objetivo del proyecto es detectar el centro del agujero redondo, por lo que la detección de la forma de la región es particularmente importante. En la fórmula anterior, l es el perímetro y S es el área. El parámetro de forma F obtenido a través de esta relación es el parámetro de forma del círculo. 1. cuanto mayor sea la diferencia con 1, mayor será la diferencia con la forma del círculo. Para calcular el número de agujeros en el agujero de PCB y el centro del círculo, se puede usar este parámetro de forma para juzgar. Si se acerca a 1, se puede procesar aproximadamente el agujero redondo, de lo contrario se rellena directamente la marca de color del agujero no redondo y no se registrará en el resultado.
(3) conversión de la tabla de código de cadena a la tabla de segmentos [5]
El uso de la tabla de segmentos representa otros parámetros importantes para los que se puede obtener la imagen, y la conversión de la tabla de código de cadena a la tabla de segmentos se puede hacer de acuerdo con la tabla 2.
Los pasos específicos son los siguientes:
Después de la conversión de la tabla, el Código de cadena obtiene tres tipos [6]: punto medio, número de tipo 0; Punto final izquierdo, número de tipo 1; Punto final derecho, número de tipo 2; Punto singular, número de tipo 3. De acuerdo con los datos de la tabla de código de cadena, se puede conocer el valor del Código de cadena entrante y el valor del Código de cadena saliente, y se puede determinar el tipo de dirección de estos dos puntos. En la programación, se puede juzgar el tipo de punto en función de la tabla 3. Si se trata de un punto final izquierdo y un punto final derecho, las coordenadas se almacenan en una matriz temporal. Un punto singular puede considerarse como una coincidencia de los mismos puntos izquierdo y derecho, es decir, debe almacenarse dos veces, sin almacenar puntos en el medio. Los puntos finales de la tabla de segmentos se ordenan por el tamaño de la coordenada y, mientras que los puntos finales de la misma línea se ordenan por el tamaño de la coordenada X.
4 resultados experimentales
Este experimento toma una captura de pantalla de la imagen de PCB de este proyecto, y procesa, captura de pantalla y procesamiento de la imagen rellena.
Utilizando los algoritmos y programas de este artículo para procesar capturas de pantalla y utilizando tablas de código de cadena y tablas de segmentos para almacenar datos, puede obtener alguna información de parámetros sobre la ubicación del agujero de pcb.
5 Conclusiones
En este trabajo, se utiliza una fuente de luz trasera para obtener imágenes de PCB de alta calidad, se utiliza el método de segmentación umbral ostu para obtener imágenes binarias de la imagen de origen de manera estable y simple, se escanea y rastrea el contorno, y se utiliza el principio de rastrear el siguiente punto a la derecha. Está más preparado y ahorra más tiempo. La tabla de código de cadena y la tabla de segmentos almacenan datos y procesamiento de datos, lo que facilita la adquisición precisa de la circunferencia, el área y el Centro de masa del agujero de la placa de pcb, y resuelve con éxito el problema de posicionamiento de la placa de PCB al perforar el agujero. El experimento se ha ejecutado y verificado en la Plataforma de software Visual C +. Puede detectar y procesar 216 agujeros redondos dentro de 31 US y obtener la velocidad y precisión necesarias para el proyecto. Los resultados han demostrado que el método es factible.