[Capítulo 2: Introducción básica y aplicación del algoritmo OpenCv]

1. Directorio

  El tema de este intercambio es: la introducción básica y la aplicación del algoritmo OpenCv. A continuación, nos centraremos en los siguientes cinco aspectos.

2. Proceso de procesamiento de imágenes

  En el proceso de procesamiento de imágenes, se puede resumir simplemente en preprocesamiento, segmentación, operaciones morfológicas y selección del cuadro objetivo.

1)Generalmente, debido a la influencia de las propiedades del material del sensor visual, el entorno de trabajo, los componentes electrónicos, etc., las imágenes suelen tener ruido e iluminación desigual, lo que altera la información observable de la imagen. Por lo tanto, nuestro primer paso es realizar operaciones de preprocesamiento como reducción de ruido, filtrado y mejora de la imagen para hacerla más adecuada para el procesamiento posterior.
2)El segundo paso de la segmentación de imágenes es también el paso más crítico en el proceso de procesamiento. El objetivo principal del procesamiento de imágenes es segmentar y seleccionar el área de interés objetivo. Eso es para separar el objetivo del fondo. Entre ellos, los métodos de segmentación tradicionales clásicos incluyen segmentación de umbral, segmentación de borde, etc., y el aprendizaje profundo incluye segmentación semántica y segmentación de instancias.
3)En el tercer paso, una vez completada la segmentación del objetivo y el fondo, a menudo es necesario realizar operaciones relacionadas con operaciones matemáticas entre imágenes, como la morfología, y realizar operaciones como eliminar puntos de ruido, rellenar agujeros y segmentar objetos adhesivos en el segmento segmentado. imágenes binarias.
4)Para facilitar la observación y visualización, el último paso es seleccionar el objetivo.

3. Preprocesamiento de imágenes

  El preprocesamiento de imágenes incluye principalmente mejora de imágenes y algunas operaciones de escala de grises, normalización, transformación de escala, recorte, traducción de imágenes, rotación y otras. El contenido principal compartido en este preprocesamiento es la parte de mejora de la imagen, cuyo propósito es optimizar la calidad de la imagen y facilitar el procesamiento posterior del algoritmo. A continuación se cubrirá la clasificación del ruido, cómo eliminar el ruido y afinar los bordes, y cómo ajustar cuando la iluminación de la imagen es desigual.

3.1 Clasificación del ruido

3.1.1 Ruido aleatorio

  Para el ruido, su clasificación está relacionada principalmente con las características y características de distribución del ruido. Aquí hay tres tipos comunes de ruido. El primero es el ruido aleatorio. La distribución del ruido no tiene características regulares. El efecto de cancelación es mejor con un filtrado medio.

3.1.2 Ruido de sal y pimienta

   El segundo tipo es el ruido de sal y pimienta, que presenta una especie de píxeles anormales con valores máximos y mínimos, es decir, negro 0 blanco 255 píxeles, el filtrado medio es mejor para eliminarlo.

3.1.3 Ruido gaussiano

  El tercer tipo es el ruido gaussiano, cuya distribución se ajusta a la distribución gaussiana. La distribución gaussiana es la distribución normal con la que estamos familiarizados y su efecto de eliminación es mejor con el filtrado gaussiano. Por supuesto, hay muchos otros factores implicados en el ruido, por lo que no los introduciré demasiado aquí.

3.2 Filtrado

3.2.1 Filtrado de medias

Después de presentar los tipos de ruido, veamos cómo filtrar imágenes según diferentes ruidos para obtener imágenes de mayor calidad.
1)El primero es el filtrado medio, cuyo principio es sustituir el valor de cada píxel por el valor medio de los píxeles del campo que lo contiene.
2)El núcleo del filtro que se muestra en la segunda imagen tiene un tamaño de 3X3 y el punto medio rojo se reemplaza por el valor promedio de los píxeles en el campo de 3x3 que lo contiene. Después de recorrer la imagen, puede obtener una imagen borrosa.
3)La tercera imagen muestra los efectos de filtrado de diferentes filtros sobre el ruido aleatorio, entre los cuales el filtro medio tiene un buen efecto. De hecho, también podemos ver que el efecto del filtrado mediano también es bueno. Por lo tanto, al eliminar ruido, no es necesario seleccionar solo el filtrado medio para el ruido aleatorio. El filtro seleccionado no es fijo y debe ajustarse de acuerdo con el efecto real.

3.2.2 Filtrado de mediana

  • 1) El segundo es el filtrado de mediana. Su principio es similar al filtrado de media. El anterior es el valor medio en lugar del valor central de la ventana de filtro. Aquí se utiliza el valor de mediana.

  • 2) Como se muestra en la primera imagen, ordene todos los píxeles en relación con la ventana del filtro para obtener el valor mediano y reemplace el valor del píxel en el punto central de la ventana deslizante. Aquí, 255 se convierte en 10 después del filtrado.

  • 3) En la segunda imagen, se utilizan el filtro medio, el filtro mediano y el filtro gaussiano para filtrar la imagen que contiene ruido de sal y pimienta, entre los cuales el filtro mediano tiene un mejor efecto.

3.2.3 Filtrado gaussiano

1)El tercer tipo es el filtrado gaussiano. El principio es que el peso de cada píxel se distribuye según gaussiano. Cuanto más cerca esté del punto central de la ventana, mayor será el tiempo completo y mayor será el impacto en el píxel central. .
2)Aquí generé sumas de filtros gaussianos de 3x3 y 15x15 y las visualicé. Cuanto más cerca del centro, mayor será el valor de píxel y mayor será el brillo. El principio de filtrado es similar a los dos anteriores, y los tres son diferentes en el núcleo del filtro.
3)Mediante el experimento de la Figura 3, el ruido gaussiano se filtra mediante filtrado medio, mediano y gaussiano, y el efecto del filtrado gaussiano es relativamente bueno.

3.2.4 Filtrado bilateral

1)Si bien eliminan el impacto del ruido en la imagen, los primeros tres filtros también debilitarán la información del borde. Por lo tanto, aquí se menciona brevemente el filtrado bilateral. El filtrado bilateral es un filtrado que preserva los bordes, lo que puede desenfocar la imagen y reducir el impacto del ruido mientras reteniendo también la información del borde. "
2)El principio es: basado en el filtrado gaussiano, un proceso de plegado que combina la proximidad espacial de la imagen y la similitud de los valores de los píxeles. En otras palabras, la proximidad espacial y la similitud de los valores de los píxeles son la distancia entre los píxeles y el valor del píxel. Cuando la distancia entre dos píxeles es muy cercana, y cuando el color es muy cercano, el impacto será mayor, por el contrario, aunque la distancia sea muy cercana, la diferencia de color es grande, es decir, el borde, luego el suavizado. El peso será muy pequeño. Esto garantiza que se mantengan los valores de píxeles cerca de los bordes y logra un efecto de preservación de los bordes.
3)Como se puede ver en las dos imágenes anteriores, simplemente aplicar el desenfoque gaussiano a la imagen difumina diversa información de los bordes, mientras que el filtrado bilateral retiene la información de los bordes basándose en el desenfoque.

3.2.4 Desenfoque de movimiento

1)El filtrado anterior es principalmente para reducir el impacto del ruido en la calidad de la imagen, se considera que se introduce el desenfoque del filtro, el desenfoque de movimiento introducido a continuación se debe a la velocidad de obturación lenta de la cámara o a la velocidad de movimiento rápido del objeto, así como como la vibración o el movimiento durante el proceso de disparo, lo que da como resultado que la imagen capturada se produzca un ligero desplazamiento, lo que hace que la imagen se vuelva borrosa en una dirección.
2)Las soluciones incluyen métodos físicos como aumentar la velocidad de obturación, aumentar la velocidad de fotogramas de la cámara, aumentar la amortiguación y la amortiguación de la vibración, y también existen métodos de software que utilizan redes de reparación de imágenes para eliminar las imágenes borrosas.

3.2.4 Filtro de afilado

1)El artículo anterior hablaba principalmente sobre el ruido y cómo eliminarlo y el desenfoque, el siguiente trata sobre la nitidez de la imagen, que es lo opuesto al desenfoque.
2)El principio es mejorar la información de alta frecuencia de la imagen para aclarar los detalles de la imagen. La llamada información de alta frecuencia se refiere a las partes de la imagen que cambian rápidamente, como los bordes, las esquinas, etc. A través del filtrado de nitidez, deslícese por la imagen y finalmente genere la imagen más nítida.
3)Para facilitar la observación, como se muestra en la Figura 1, ingrese una imagen y el valor de píxel del contorno 1 es de 1 a 10. Después del filtrado, la diferencia entre el valor de píxel del contorno 1 y el valor de píxel adyacente es mayor. el contraste es más fuerte y puede mostrar mejor los bordes del contorno de la imagen.
4)Entre ellas, la nitidez de la imagen se utiliza ampliamente en vigilancia y seguridad. Hay imágenes sin nitidez e imágenes dinámicas con nitidez añadida. En comparación con la imagen original, es más fácil ver claramente el objetivo en la imagen nítida. La suma de los valores del núcleo del filtro también afectará el brillo de la imagen. Si es mayor que 1, la imagen aumentará la variable. Aquí, si la suma se establece en 0, la imagen se volverá más oscura y se convertirá en borde. detección.

3.3 Mejora de la imagen

3.3.1 Ecualización del histograma

1)En el preprocesamiento de imágenes, además de eliminar el ruido del desenfoque y la nitidez de los bordes, debido a que las imágenes que obtenemos a veces resultan excesivas o demasiado oscuras debido a una iluminación desigual, a menudo necesitamos ecualizar la imagen y ajustar el brillo y el contraste general de la imagen. Aquí tomamos como ejemplo la ecualización del histograma.
2)Histograma de imagen, que cuenta el número de cada valor de píxel. Cuando la geometría del intervalo de píxeles está dentro de un cierto intervalo, demuestra que la imagen es demasiado brillante o demasiado oscura, por lo que se pueden utilizar algunas transformaciones lineales y no lineales para distribuir uniformemente los píxeles entre 0 y 255, logrando así el ajuste de brillo.
3)Además, hay muchas formas de ajustar el brillo de la imagen, como se muestra en la Figura 1, por lo que no entraré en detalles aquí.

经过图像预处理,下面我们将快速对图像分割板块进行介绍。图像分割图像处理中最关键的环节,下面将从阈值分割、边缘检测分割、粘连物体分割三个方面进行介绍。

4. Segmentación de imágenes

  • Los métodos de segmentación tradicionales incluyen principalmente segmentación de umbral, segmentación por detección de bordes y segmentación de objetos adhesivos.

4.1 Clasificación de tipos de segmentación

1)La segmentación de imágenes incluye la segmentación de algoritmos tradicionales y la segmentación de aprendizaje profundo. Aquí presentamos principalmente la segmentación de algoritmos tradicional. Personalmente, la segmentación cree que se puede dividir en dos categorías, una es la segmentación del objetivo y el fondo, y la otra es segmentar la imagen en función del primero y segmentar los objetos adheridos.
2)Para la segmentación de escenas delanteras y traseras, se divide en segmentación de umbral y segmentación de detección de bordes. La segmentación de umbral se puede subdividir en segmentación de umbral único y segmentación de umbral múltiple. La segmentación por detección de bordes filtra principalmente la imagen según operadores diferenciales, de gradiente y otros relacionados para obtener el contorno de la imagen.
3)Para la segmentación de objetos adherentes, existen tres métodos más comunes: segmentación morfológica, segmentación de cuencas hidrográficas y segmentación geométrica. A continuación también compartiré y presentaré algunos ejemplos que he hecho antes.

4.2 Segmentación de umbral único

  El primero es la segmentación de umbral único en la segmentación de umbral, que no solo es adecuada para la segmentación de imágenes en escala de grises, siempre que sea una imagen de un solo canal, se puede segmentar mediante este método. Para la segmentación de umbral único, generalmente puede usar un histograma en escala de grises para mostrar la distribución de píxeles de la imagen. Como se muestra en la Figura 2, el color de fondo es negro y el número es grande. Todos tienen un valor máximo cercano a 0. El primer plano es gris -Blanco y el número es pequeño.Establecido entre 130-230. Por lo tanto, solo necesitamos establecer un umbral entre los dos picos para segmentar los fondos delantero y trasero.

4.3 Separar varios canales de espacio de color

  Para un solo canal, aquí hay una breve inserción. Al realizar la segmentación de umbral, no puede simplemente limitarla al canal en escala de grises. A veces puede segmentar las imágenes en cada espacio de color y observar qué características del canal son más obvias y luego usar el correspondiente. Canal para realizar la segmentación. Además, la segmentación de colores también se realiza mediante la correlación de determinados canales.

4.4 Segmentación multiumbral

1)En comparación con la segmentación de umbral único y la segmentación de umbrales múltiples, es relativamente flexible: el objeto aplicable puede ser la segmentación de umbrales múltiples de un solo canal o la segmentación de umbrales múltiples de múltiples canales.
2)Para la segmentación de umbrales múltiples de un solo canal, aquí se presentan el algoritmo Otsu y el algoritmo de segmentación de umbral adaptativo. El algoritmo de Otsu también se denomina método de diferencia máxima entre clases. El principio es dividir el valor de gris en múltiples umbrales, combinar cada umbral y dividir la imagen en varias clases, según el número de píxeles y el valor de gris promedio de cada clase, encuentre Se obtiene la varianza entre clases por debajo de este umbral. Cuanto mayor sea la varianza entre clases, mejor será el efecto de segmentación.
3)Para la segmentación de umbral adaptativo, también conocida como umbral local, la imagen se divide primero en varias áreas. El umbral de cada píxel en el área está determinado por la distribución del valor de píxel de la parte. El umbral de píxel de la imagen en el área con mayor brillo es mayor y el umbral de la imagen con mayor brillo es mayor. Para áreas de imagen más bajas, el umbral se reducirá en consecuencia. Muy adecuado para segmentación de imágenes con iluminación desigual.
4)El contenido anterior trata principalmente sobre la segmentación de umbrales múltiples en un solo canal. El contenido que se comparte a continuación es una segmentación de múltiples umbrales en multicanal. La segmentación multicanal de múltiples umbrales en realidad puede entenderse como realizar una segmentación de un solo umbral en cada canal y, finalmente, calcular la unión de cada canal. Nuestra segmentación de color común es el espacio de color HSV. Este método se puede extender adecuadamente a la segmentación en otros espacios de color. Por cierto, el RGB se utiliza para convertir al espacio de color HSV, y luego los colores se segmentan, detectan y posicionan.

4.5 Detección de bordes

4.5.1 Caso de detección de bordes

1)Después de hablar sobre la segmentación de umbral, el siguiente contenido es la segmentación por detección de bordes, que también se usa ampliamente en la detección de imágenes.
2)A continuación se muestra un ejemplo de cómo segmentar información de texto y cambiar el fondo cuando la iluminación es ligeramente desigual. Si lo resuelve a partir de la segmentación de umbral, el efecto no es tan bueno, pero utilizando el algoritmo de detección de bordes de Canny, puede evitar el impacto de la iluminación desigual, detectar directamente el contorno, realizar operaciones morfológicas y rellenarlo, y luego realizar la operación de máscara. , puede lograr la función de cambio de fondo.
3)De hecho, la detección de bordes es similar a la operación de filtrado difuso anterior: realiza operaciones de convolución interactivas en la imagen a través de varias plantillas de operador, detectando así áreas en la imagen con cambios significativos en los valores de píxeles, es decir, bordes.

4.5.3 Varios operadores de detección de bordes

  • Aquí se muestran varias plantillas de operadores de detección de bordes, principios específicos y sus correspondientes ventajas y desventajas, no entraré en detalles aquí.

4.6 Otros algoritmos de segmentación: modelo de resta en segundo plano

  • Además de los métodos de segmentación clásicos anteriores, también existe un algoritmo de resta en segundo plano que es más eficaz para segmentar objetos en movimiento. La primera animación es la identificación de maracuyá en la máquina clasificadora de maracuyá, y la segunda animación es la aplicación de identificación y detección de vehículos enemigos en la estación de radar Mecha Master. Debido al tiempo limitado, aceleraré el intercambio de Jiangdu más adelante y los principios específicos se discutirán en privado más adelante.

Estación de radar maestro DJI Mecha Detección de vehículos locales

4.7 Algoritmo de segmentación de cuencas, algoritmo de segmentación geométrica, algoritmo de segmentación morfológica

1)Los métodos de segmentación de umbral, detección de bordes y segmentación de resta de fondo anteriores pertenecen a la segmentación de primer plano y de primer plano. A veces, los objetos segmentados son adherentes y, en este caso, se requiere una segmentación entre clases.
2)En la actualidad, las principales divisiones son segmentación de algoritmos de cuencas hidrográficas, segmentación geométrica y segmentación morfológica, que se mencionará en el próximo capítulo. La segmentación de cuencas hidrográficas tiene un efecto relativamente bueno en la segmentación de objetos circulares adheridos, pero si la adhesión es demasiado severa, es difícil segmentar.
3)Para la segmentación geométrica, creo que el efecto será mejor en la inspección industrial porque el tamaño de las piezas es fijo. Por ejemplo, cuando detecto monedas en el camino, calculo la distancia detectando el enfoque, filtrando los puntos de las esquinas y filtrando. los puntos de enfoque de las depresiones conectadas para obtener el análisis del ROI y, finalmente, la segmentación.
4)Para segmentar el cinturón de la máscara y la tela no tejida, se obtiene el rectángulo circunscrito mínimo de la tela no tejida, la ecuación de coordenadas se obtiene en base a las coordenadas del lado corto y se usa la línea recta para cortar.

图像预处理、并分割之后,往往需要对其二值化图像进行形态学操作。

5. Operaciones morfológicas

  • Las operaciones morfológicas incluyen principalmente operaciones como expansión, erosión, operaciones de apertura y cierre, tapas superiores e inferiores, gradientes morfológicos y relleno por inundación.

5.1 Principio

  • 1) Para facilitar que todos comprendan rápidamente el principio de las operaciones morfológicas, aquí se crea una animación. El principio es el mismo que la operación de filtrado anterior. Los elementos estructurales se deslizan y atraviesan en la imagen de entrada. Cuando el punto central de la El elemento estructural está en contacto con el punto de píxel blanco de la imagen de entrada. Al superponerse, los píxeles que se superponen con los píxeles blancos de los elementos estructurales se volverán blancos. Todos pueden ver la animación.

  • 2) La imagen es una verificación utilizando la API opencv.

  • 3) Aquí hay un pequeño truco, que consiste en definir los elementos estructurales. La forma se puede dibujar en forma de imagen. Por ejemplo, defino una imagen de fondo de una mancha solar de un solo canal y dibujo un círculo sobre ella. De hecho, el elemento estructural es un círculo. Se pueden definir otras formas directamente o combinarlas.

5.2 Expansión, corrosión, operación de apertura, operación de cierre

  • Las diversas operaciones de la morfología se presentarán rápidamente a continuación.
    1)La expansión y la corrosión son relativamente intuitivas, es decir, el área blanca se vuelve más gruesa y delgada.
    2)La operación abierta consiste en corroer primero y luego expandirse, lo que puede eliminar eficazmente algo de ruido blanco. La operación de cierre es la contraria: primero se expande y luego se corroe, lo que puede llenar el vacío de manera efectiva.

  • Para el sombrero de copa y el sombrero de copa, en realidad es una operación de resta entre imágenes binarias. El sombrero de copa es la imagen original menos la operación de apertura, que puede encontrar el ruido o las áreas más brillantes de la imagen. El sombrero inferior resta la operación cerrada de la imagen en color original para encontrar los agujeros y separar las áreas más oscuras de la imagen.

5.3 Sombrero superior (de ceremonia), sombrero inferior (negro)

5.4 gradiente morfológico,

  El gradiente morfológico es expansión menos erosión, que puede ser similar a un círculo grande menos un círculo pequeño para obtener un círculo concéntrico. También hay un relleno de inundación, que genera aleatoriamente un píxel semilla para generar líneas horizontales y verticales y rellena el contorno. De hecho, esta operación también puede lograr el mismo efecto mediante el uso de contornos.

通过图像预处理、图像分割、形态学等相关操作,最后就是为了对我们的一个目标进行框选显示保存。

6. Selección del marco objetivo

  • En la visualización de selección del marco de destino, puede usar puntos para mostrar el centroide del contorno, o puede detectarlo a través de contornos, o líneas rectas de Hough, círculos de Hough y también mostrar rectángulos conectados por la derecha, rectángulos circunscritos mínimos y polígonos en forma de cruz. .

7. Resumen

  • Lo anterior es el contenido general que compartí hoy, compartiré más contenido esta noche, porque de hecho, cada algoritmo por sí solo es suficiente para hablar durante mucho tiempo, por lo que solo menciono brevemente sus ideas básicas. Espero que mi resumen de mi estudio anterior de opencv pueda ser útil para todos. Al mismo tiempo, puede haber algunas deficiencias debido a mi capacidad limitada y algunos errores de expresión. Por favor corríjanme y discutan juntos. Gracias a todos por escuchar.

8. Observaciones

Algunos materiales gráficos provienen de Internet y solo se utilizan para compartir académicamente. Si hay alguna infracción, comuníquese con el backend para eliminarlos.


1.理论系列:

Capítulo 1: Resumen de pycharm, anaconda, opencv, pytorch, tensorflow, paddlex y otras configuraciones del entorno [versión py de procesamiento de imágenes] ==> Capítulo 2: Introducción

básica y aplicación del algoritmo OpenCv Capítulo 3: Lectura y escritura de imágenes y videos de OpenCv y aplicación básica Capítulo 4: Resumen de la segmentación/binarización del umbral OpenCv (imágenes de un solo canal y multicanal)




2.项目系列:

Proyecto 1: Sistema de reescritura de grados 4 y 6
Proyecto 2: Combate práctico: Segmentación de objetos adhesivos - Detección de segmentación de tapas de botellas mediante segmentación geométrica
Proyecto 3: Combate práctico: Segmentación de objetos adhesivos - Detección de segmentación de monedas mediante segmentación geométrica
Proyecto 4: Combate práctico Capítulo: Segmentación de objetos adhesivos: uso de la segmentación geométrica para realizar la segmentación y detección de células
Proyecto cinco: Capítulo práctico: Segmentación de objetos adhesivos: uso del algoritmo de cuenca hidrográfica para realizar la segmentación y detección de granos de azúcar

Supongo que te gusta

Origin blog.csdn.net/DGWY161744/article/details/129645502
Recomendado
Clasificación