[200 rutinas OpenCV de youcans] 140. Transformación de sombrero inferior en escala de grises para corregir la iluminación

Bienvenido a la serie de "rutinas OpenCV 200 de youcans" , continúe actualizándose
bienvenido a prestar atención a la serie "curso de aprendizaje de OpenCV de youcans" , que se actualiza continuamente


[200 rutinas OpenCV de youcans] 140. Transformación de sombrero inferior en escala de grises para corregir la iluminación


La morfología en escala de grises amplía las operaciones morfológicas de imágenes binarias a imágenes en escala de grises. El procesamiento morfológico gris también tiene operaciones como erosión, expansión, operación de apertura, operación de cierre, operación de sombrero de copa y operación de sombrero bajo, que pueden realizar funciones de suavizado de imágenes, mejora de imágenes y segmentación de imágenes.

El valor de gris del píxel de la imagen se considera como la altura, y los diferentes niveles de gris representan diferentes alturas.La imagen completa es como un mapa topográfico ondulado. Un área brillante (valor de gris grande) es equivalente a una montaña, un área oscura (valor de gris pequeño) es equivalente a un valle profundo y el área del borde, es decir, la unión de la luz y la oscuridad, es equivalente a un acantilado.


5.3 Transformación top hat en escala de grises y operación bottom hat en escala de grises

La sustracción de imágenes se combina con operaciones de apertura y cierre para obtener la transformación de sombrero de copa y la transformación de sombrero de fondo.

La transformación de sombrero bajo de una imagen en escala de grises f se define como el resultado de la operación de cierre de la imagen menos la imagen original:

segundo sombrero ( f ) = f ∙ segundo − f = ( f ⊕ segundo ) ⊖ segundo − f B_{sombrero}(f) = f \bullet b - f = (f \oplus b) \ominus b - fBsombrero _ _( F )=FBF=( fsegundo )BF

La operación de cierre puede eliminar el área oscura debajo del fondo brillante, y la transformación del sombrero de fondo puede obtener el área oscura en la imagen original, por lo que también se denomina transformación del sombrero de fondo negro.

La función cv.morphologyEx en OpenCV puede realizar la operación de sombrero de copa y la operación de sombrero de fondo de la imagen, y el parámetro op debe establecerse en MORPH_TOPHAT y MORPH_BLACKHAT respectivamente.


Rutina 10.31: Iluminación de corrección de transformación de sombrero inferior en escala de grises

La iluminación uniforme es importante para extraer objetos del fondo. De manera similar, un uso importante de la transformación del sombrero de fondo es corregir los efectos de la iluminación desigual, que se puede usar para eliminar áreas oscuras contra un fondo brillante, lo que da como resultado áreas oscuras en la imagen original.

    # 10.31: 灰度底帽变换
    imgGray = cv2.imread("../images/imgHat01.png", flags=0)  # flags=0 灰度图像

    # 直接用 Otsu 最优阈值处理方法进行二值化处理
    ret, imgBin = cv2.threshold(imgGray, 127, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)  # 二值化处理,白色背景

    # 底帽变换后再用 Otsu 最优阈值处理方法进行二值化处理
    element = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (55, 55))  # 圆形结构元
    imgBhat = cv2.morphologyEx(imgGray, cv2.MORPH_BLACKHAT, element)  # 底帽运算
    ret, imgBhatBin = cv2.threshold(imgBhat, 50, 255, cv2.THRESH_BINARY |cv2.THRESH_OTSU)  # 二值化处理,白色背景
    # 圆环表面有很多黑色噪点,通过闭操作去除
    element = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5, 5))  # 圆形结构元
    imgSegment = cv2.morphologyEx(imgBhatBin, cv2.MORPH_CLOSE, element)  # 闭运算

    plt.figure(figsize=(9, 6))
    plt.subplot(221), plt.title("Origin"), plt.axis('off')
    plt.imshow(imgGray, cmap='gray', vmin=0, vmax=255)
    plt.subplot(222), plt.title("Otsu segment"), plt.axis('off')
    plt.imshow(imgBin, cmap='gray', vmin=0, vmax=255)
    plt.subplot(223), plt.title("BlackHat image"), plt.axis('off')
    plt.imshow(imgBhat, cmap='gray', vmin=0, vmax=255)
    plt.subplot(224), plt.title("Tophat segment"), plt.axis('off')
    plt.imshow(imgSegment, cmap='gray', vmin=0, vmax=255)
    plt.tight_layout()
    plt.show()

inserte la descripción de la imagen aquí


(Fin de esta sección)


Aviso de copyright:

Trabajos originales de Youcans@xupt, las reimpresiones deben estar marcadas con el enlace original: (https://blog.csdn.net/youcans/article/details/123565844)

Copyright 2022 youcans, XUPT
Creado:2022-3-24


Bienvenido a la serie de "rutinas OpenCV 200 de youcans" , continúe actualizándose
bienvenido a prestar atención a la serie "curso de aprendizaje de OpenCV de youcans" , que se actualiza continuamente

[Rutinas OpenCV de youcans 200] 01. Lectura de imágenes (cv2.imread)
[rutinas OpenCV de youcans 200] 02. Guardado de imágenes (cv2.imwrite)
[rutinas OpenCV de youcans 200] 03. Visualización de imágenes (cv2.imshow)
[rutinas OpenCV de youcans 200] 04. Mostrar imágenes con matplotlib (plt.imshow)
[rutinas OpenCV de youcans 200] 05. Atributos de imagen (np.shape)
[rutinas OpenCV de youcans 200] 06. Edición de píxeles (img.itemset)
[rutinas OpenCV de youcans 200] 07. Creación de imágenes (np.zeros)
[rutinas OpenCV 200 de youcans] 08. Duplicación de imágenes ( np.copy)
[rutinas OpenCV 200 de Youcans] 09. Recorte de imágenes (cv2.selectROI)
[rutinas OpenCV 200 de youcans] 10. Unión de imágenes ( np.hstack)
[rutinas OpenCV de youcans 200 ] 11. División de canales de imagen (cv2.split)
[200 rutinas OpenCV de youcans] 12. Fusión de canales de imagen (cv2.merge)
[200 rutinas OpenCV de youcans] 13. Adición de imágenes (cv2 .add )
[200 rutinas OpenCV de youcans] 14. Adición de imágenes y escalares (cv2.add)
[200 rutinas OpenCV de youcans] 15. Adición ponderada de imágenes (cv2.addWeight)
[200 rutinas OpenCV de youcans] 16. Adición de imágenes de diferentes tamaños
[200 rutinas OpenCV de youcans] 17. Cambio de gradiente de dos imágenes
[rutinas OpenCV de youcans 200 ] 18. Adición de máscara de imagen
[rutinas OpenCV 200 de youcans] 19. Máscara circular de imagen
[rutinas OpenCV 200 de youcans] 20. Operación de bit de presión de imagen
[rutinas OpenCV 200 de youcans] 21. Superposición de imagen
[rutinas OpenCV 200 de youcans] 22. Adición de imágenes no -Texto en chino [rutinas OpenCV 200 de youcans
] 23. Adición de texto en chino
[rutinas OpenCV 200 de youcans] 24. Transformación afín de imágenes
[rutinas OpenCV 200 de youcans] 25. Traducción de imágenes [rutinas OpenCV 200
de youcans] 26. Rotación de imágenes (centrado en el origen)
[200 rutinas OpenCV de youcans] 27. Rotación de imagen (centrada en cualquier punto)
[rutinas OpenCV 200 de youcans] 28. Rotación de imagen (rotación en ángulo recto)
[rutinas OpenCV 200 de youcans] 29. Inversión de imagen (cv2.flip)
[200 rutinas OpenCV de youcans] 30. Escalado de imágenes (cv2.resize)
[Rutinas OpenCV de youcans 200] 31. Pirámide de imagen (cv2.pyrDown)
[rutinas OpenCV de youcans 200] 32. Distorsión de imagen (miscut)
[rutinas OpenCV de youcans 200] 33. Transformación de imagen compuesta
[rutinas OpenCV de youcans 200] 34. Transformación de proyección de imagen
[rutinas OpenCV de youcans 200] 35. Transformación de proyección de imagen (relleno de límites)
[rutinas OpenCV de youcans 200] 36. Coordenadas cartesianas y conversión de coordenadas polares
[rutinas OpenCV de youcans 200] 37. Procesamiento y binarización de imágenes en escala de grises
[rutinas OpenCV de youcans 200] 38. Transformación inversa de color (inversión de imagen)
[rutinas OpenCV de youcans 200 artículos] 39. Transformación lineal de imagen en escala de grises
[rutinas OpenCV de youcans 200 artículos] 40. Transformación lineal en escala de grises por partes de imagen
[rutinas OpenCV de youcans 200 artículos] 41. Transformación de escala de grises de imagen Capas de nivel de grado)
[rutinas OpenCV de youcans 200] 42. Transformación de escala de grises de imagen (capas de plano de bits)
[rutinas OpenCV de youcans 200] 43. Transformación de escala de grises de imagen (transformación logarítmica)
[artículos de rutinas OpenCV de youcans 200] 44. Transformación de imágenes en escala de grises ( transformación gamma)
[200 artículos de rutinas OpenCV de youcans] 45. Histograma de imágenes en escala de grises
[200 artículos de rutinas OpenCV de youcans] 46. Cambio de ecualización de histograma
[Rutinas OpenCV de youcans 200 artículos] 47. Mejora de imagen - coincidencia de histograma
[rutinas OpenCV de youcans 200 artículos] 48. Mejora de imagen - coincidencia de histograma de color
[rutinas OpenCV de youcans 200 artículos] 49. Mejora de imagen - procesamiento de histograma local
[rutinas OpenCV de youcans 200 artículos ] 50. Mejora de imagen: mejora de imagen de estadísticas de histograma
[200 artículos de rutinas OpenCV de youcans] 51. Mejora de imagen: seguimiento inverso de histograma
[200 artículos de rutinas OpenCV de youcans] ] 52. Operaciones de convolución y correlación de imágenes
[200 artículos de rutinas OpenCV de youcans] 53. Implementos Scipy convolución de imagen bidimensional
[rutinas OpenCV 200 de youcans] 54. OpenCV implementa convolución de imagen bidimensional
[rutinas OpenCV 200 de youcans] 55. Núcleo de convolución separable
[rutinas OpenCV 200 de youcans] 56. Filtro de caja de paso bajo
[rutinas OpenCV 200 de youcans] 57. Filtro gaussiano de paso bajo
[ejemplo OpenCV de youcans] Cheng 200 artículos] 58. Filtrado no lineal: filtrado mediano
[rutinas OpenCV de youcans 200 artículos] 59. Filtrado no lineal: filtrado bilateral
[rutinas OpenCV de youcans 200 artículos] 60. Filtrado no lineal - filtrado bilateral conjunto
[youcans 200 artículos de rutinas OpenCV] 61. Filtro guiado
[200 artículos de rutinas OpenCV de youcans] 62. Nitidez de imagen - enmascaramiento de pasivación
[Rutinas OpenCV de youcans 200] 63. Nitidez de imagen: operador laplaciano
[rutinas OpenCV de youcans 200] 64. Nitidez de imagen: operador Sobel
[rutinas OpenCV de youcans 200] 65. Nitidez de imagen: operador
Scharr [rutinas OpenCV de youcans 200] 66. Filtrado de imágenes bajo -pass/high-pass/band-stop/band-pass
[rutinas OpenCV de youcans 200] 67. Aplicación integral de mejora de imagen de dominio espacial
[rutinas OpenCV de youcans 200 artículos] 68. Aplicación integral de mejora de imagen de dominio espacial
[rutinas OpenCV de youcans 200 artículos] 69. Coeficientes de Fourier de señales continuas no periódicas
[rutinas OpenCV de youcans 200 artículos] 70. Función continua unidimensional Transformada de Fourier de
[rutinas OpenCV de youcans 200] 71. Muestreo de funciones continuas
[rutinas OpenCV de youcans 200] 72. Uno transformada de Fourier discreta
bidimensional [rutinas OpenCV de youcans 200] 73. Transformada de Fourier continua
bidimensional [rutinas OpenCV de youcans 200] 74.
Suavizado de imagen [rutinas OpenCV de youcans 200] 75. Numpy implementa la transformada de Fourier de imagen
[rutinas OpenCV de youcans 200] 76 OpenCV implementa la transformada de Fourier de imagen
[las rutinas OpenCV de youcans 200] 77. OpenCV implementa la transformada rápida de Fourier
[Rutinas OpenCV de youcans 200] 78. Conceptos básicos del filtrado de imágenes en el dominio de la frecuencia
[rutinas OpenCV de youcans 200] 79. Pasos básicos del filtrado de imágenes en el dominio de la frecuencia
[rutinas OpenCV de youcans 200] 80. Filtrado de imágenes en el dominio de la frecuencia en detalle Pasos
[rutinas OpenCV de youcans 200] 81. Filtro de paso bajo gaussiano en el dominio de la frecuencia
[rutinas OpenCV de youcans 200] 82. Filtro de paso bajo Butterworth en el dominio de la frecuencia
[rutinas OpenCV de youcans 200] 83. Filtrado de paso bajo en el dominio de la frecuencia: reparación de caracteres de texto impresos
[rutinas OpenCV de youcans 200] 84 Obtención de filtros de paso alto a partir de filtros de paso bajo
[rutinas OpenCV de youcans 200] 85. Aplicación de filtros de paso alto en el dominio de la frecuencia
[200 artículos de rutinas OpenCV de youcans] 86. Aplicación del filtrado en el dominio de la frecuencia: procesamiento de imágenes de huellas dactilares
[200 artículos de rutinas OpenCV de youcans] 87. Enmascaramiento de pasivación del dominio de frecuencia
[200 artículos de rutinas OpenCV de youcans] 88. Laplaciano de dominio de frecuencia Filtrado de paso alto
[rutinas OpenCV de youcans 200] 89. Función de transferencia de filtro de parada de banda
[de youcans Rutinas de OpenCV 200] 90. Filtro de muesca en el dominio de la frecuencia
[rutinas de OpenCV de youcans 200] 91. Ruido gaussiano, ruido de Rayleigh, ruido irlandés
[rutinas de OpenCV de youcans 200] 92. Ruido exponencial, ruido uniforme, ruido de sal y pimienta
[rutinas de OpenCV de youcans 200] 93. Histograma del modelo de ruido
[Rutinas OpenCV de youcans 200] 94. Filtro de media aritmética
[rutinas OpenCV de youcans 200] 95. Filtro de media geométrica
[rutinas OpenCV de youcans 200] 96. Filtro de promedio armónico
[rutinas OpenCV 200 de youcans] 97. Filtro de promedio armónico inverso
[rutinas OpenCV de youcans 200 ] ] 98. Filtro de clasificación estadística
[rutinas OpenCV de youcans 200] 99. Filtro medio alfa corregido
[rutinas OpenCV de youcans] 200 artículos] 100. Filtro de reducción de ruido local adaptativo
[rutinas OpenCV de youcans 200 artículos] 101. Filtro mediano adaptativo
[rutinas OpenCV de youcans 200 artículos] 102. La función de transferencia del filtro de supresión de banda de muesca
[rutinas OpenCV de Youcans 200] 103. Filtro de supresión de banda de muesca para eliminar la interferencia de ruido periódico
[rutinas OpenCV de youcans 200] 104. Modelo de degradación del desenfoque de movimiento
[rutinas OpenCV de youcans 200] 105. Modelo de degradación de desenfoque de turbulencia
[rutinas OpenCV 200 de Youcans] 106. Filtrado inverso de imágenes degradadas
[rutinas OpenCV 200 de youcans] 107. Filtrado Wiener de imágenes degradadas
[rutinas OpenCV 200 de youcans] 108. Filtrado por mínimos cuadrados
restringidos [rutinas OpenCV 200 de youcans] ] 109. Filtrado de medias geométricas
[Rutinas OpenCV de youcans 200 artículos] 110. Proyección y transformada de Raiden
[rutinas OpenCV de youcans 200 artículos] 111. Imágenes reconstruidas de retroproyección transformadas de Raiden
[rutinas OpenCV de youcans 200 artículos] 112. Imágenes reconstruidas de retroproyección filtradas
[200 rutinas OpenCV de youcans ] 113. Corrosión de operaciones morfológicas
[200 rutinas OpenCV de youcans] 114.
Dilatación de operaciones morfológicas [200 rutinas OpenCV de youcans] 115. Operación abierta de operaciones morfológicas
[ Rutinas OpenCV de Youcans 200 artículos] 116. La operación cerrada de operaciones morfológicas
[ rutinas OpenCV de youcans 200 artículos] 117. La operación del sombrero de copa de las operaciones morfológicas
[rutinas OpenCV de youcans 200 artículos] 118. La parte inferior de las operaciones morfológicas Operación del sombrero
[rutinas OpenCV de youcans 200 artículos] 119. Gradientes morfológicos de imágenes
[rutinas OpenCV de youcans 200 artículos ] 120. transformación hit-hit-miss
[rutinas OpenCV de youcans 200 artículos] 121. hit-Missed para reconocimiento de características
[rutinas OpenCV de youcans 200] 122. Extracción de límites de algoritmos morfológicos
[rutinas OpenCV de youcans 200] 123. Relleno de huecos de algoritmos
[200 rutinas OpenCV de youcans] 124. Algoritmo de inundación para relleno de huecos
[200 rutinas OpenCV de youcans] 125. Extracción de componentes conectados por algoritmo morfológico
[Rutinas OpenCV de Youcans 200] 126. Casco convexo de algoritmos morfológicos
[Rutinas OpenCV de Youcans 200] 127. Refinamiento de algoritmos morfológicos
[Rutinas OpenCV de Youcans 200] 128. El esqueleto del algoritmo morfológico (skimage)
[Rutinas OpenCV de Youcans 200] 129. El esqueleto del algoritmo morfológico (operación de reconstrucción)
[rutinas OpenCV de youcans 200] 130. Extracción morfológica de líneas horizontales y verticales
[rutinas OpenCV de youcans 200] 131. Reconstrucción morfológica de extracción de caracteres de líneas verticales
[rutinas OpenCV de youcans 200] 132. Reconstrucción morfológica del algoritmo de llenado de huecos
[rutinas OpenCV de youcans 200] 133. Reconstrucción morfológica del despeje de límites
[rutinas OpenCV de youcans 200 ] Artículos] 134. Recuento celular de la reconstrucción morfológica
[200 Rutinas OpenCV de Youcans] 135. Determinación de la granularidad de la reconstrucción morfológica
[200 OpenCV Routines of Youcans] 136. Grayscale Erosion and Grayscale
Dilation [OpenCV Example of Youcans] Programa 200 artículos] 137. Principios de operación abierta en escala de grises y operación cerrada en escala de grises
[rutinas OpenCV de youcans 200 artículos] 138. Operación abierta en escala de grises y operación cerrada en escala de grises
[ rutinas OpenCV de youcans 200 artículos] 139. Transformación de sombrero de copa en escala de grises para corregir sombras
[rutinas de OpenCV de youcans 200 artículos] 140. Transformación de sombrero de copa en escala de grises para corregir iluminación

Supongo que te gusta

Origin blog.csdn.net/youcans/article/details/123565844
Recomendado
Clasificación