Tengo una imagen
¿Hay alguna forma de eliminar las manchas blancas brillantes? Por favor ayuda gracias
Editar:
Después de operar con gaussiano y luego mostrar usando imagesc, obtenga el siguiente resultado que muestra claramente los puntos rojos brillantes ¿Cómo me deshago de ellos?
Canal rojo:
Canal verde:
Canal azul:
Edición 2:
Detección de defectos con filtro Gabor
Su histograma:
¿Cómo calcular su umbral apropiado de forma adaptativa?
image-processing
matlab
vini
fuente
fuente
Respuestas:
Supongamos que las porciones de deslumbramiento son las únicas áreas saturadas en la imagen. La detección se puede realizar al limitar la intensidad (código en Mathematica):
Entonces solo necesitamos reemplazar las partes de la imagen alrededor de la máscara de saturación (la función morfológica amplía la máscara
Dilation
). La incrustación usando síntesis de textura (usando la funciónInpaint
) parece funcionar bien en este ejemplo, aunque no puedo probarlo como entrada a su algoritmo de detección de defectos:fuente
Esta puede ser una respuesta un poco simplista, pero ¿podría simplemente umbral? p.ej:
resultados en:
Obviamente, sería mejor seleccionar el umbral de forma adaptativa. Por ejemplo, podría mirar el histograma de la imagen:
e intente seleccionar un umbral apropiado basado en eso.
fuente
Sin información de iluminación, es difícil. Sin embargo, si se conoce la forma del objeto en la imagen, puede configurar una plantilla de forma del resplandor blanco (gaussiano) y hacer una ventana deslizante para encontrar la posible detección del resplandor (seguido de una mezcla de colores del área adyacente). Perceptivamente, inferimos la forma 3D de las imágenes usando sombreado. Si la forma del sombreado puede dar gradiente a la superficie, podríamos hacer una ventana deslizante y verificar nuestra plantilla de deslumbramiento en cada ubicación.
Después de la detección de bordes astutos: -
Básicamente, la superposición (área de superposición máxima) entre la imagen n. ° 1 y n. ° 2 será el defecto.
fuente
Mi opinión es que este es un problema de visión artificial en el que debe controlar la iluminación y tener una buena idea del brillo máximo de un brillo de píxeles sin reflejos en la imagen. La detección de defectos es generalmente un problema de visión artificial en lugar de un problema de visión por computadora.
Lo que vemos como resultado de la iluminación es una adición de reflejos de luz especulares y difusos (más algo de emisión pero es insignificante aquí).
El componente especular es el resplandor, en una superficie brillante como esta manzana, es mucho más que el reflejo difuso (> 10x)
Esto significa que si configura su iluminación, ganancia y exposición antes de esto, en una superficie difusa, puede estar seguro de que nada estará ni siquiera cerca de saturado. Por lo tanto, el uso de un umbral fijo es en realidad la solución preferida aquí, siempre que haya probado con suficientes datos que "ningún píxel que no contenga deslumbramiento" estaría por encima del umbral. En esencia, está configurando las condiciones de iluminación y los parámetros de la cámara de modo que la clasificación de un píxel se vuelva trivial, en este caso realizada por un umbral simple, en lugar de una función de píxel más compleja que aprendió la máquina.
Me gusta el enfoque de "vini", no hay necesidad real de mostrar los planos RGB. Solo un simple umbral de escala de grises realmente funcionaría aquí.
1- diseñas las condiciones de iluminación, no la ambiente
2- hacer que el trabajo de clasificación sea extremadamente trivial (umbral)
3- mide la función
4- comparar con tolerancia
fuente
Convierta primero al espacio de color de laboratorio, mapminmax, luego use el primer canal de luminosidad. Eso reduce los problemas de color. Luego, use algunos umbrales en el 80% de los píxeles más brillantes. Verifique y pruebe si hay una inmersión en el histograma, el mejor umbral está cerca del fondo de la inmersión. Si no hay min local en esta región, su imagen probablemente tenga reflejos mínimos ...... Martin
fuente