Filtro de imagen que utiliza la mayor ocurrencia de valores de píxeles

Quiero usar un filtro de imagen, que debería reemplazar el píxel con el que se trata con la mayor ocurrencia de los vecinos. Por ejemplo, si el píxel tiene el valor 10 y los 8 vecinos tienen 9, 9, 9, 27, 27, 200, 200, 210, entonces debería elegir 9, porque 9 tiene la mayor ocurrencia en el vecindario. También debe considerar el píxel en sí mismo. Entonces, por ejemplo, si el píxel tiene el valor 27 y los 8 vecinos tienen 27, 27, 30, 30, 34, 70, 120, 120, entonces debería elegir 27, porque 27 está allí 3 veces, incluido el píxel mismo. También debería tener la opción de elegir el tamaño del núcleo. No encontré un filtro así. ¿Hay uno? ¿O tengo que crearlo por mi cuenta? Yo uso opencv con python.

Información de fondo: no puedo usar el filtro Mediana porque mis imágenes son diferentes. Tengo imágenes grises con 3 a 6 valores grises diferentes. Por lo tanto, no puedo usar algunas transformaciones morfológicas. No obtengo el resultado que quiero. El filtro de mediana elegiría el valor de la mediana, porque la idea es que los valores representan la imagen de la manera correcta. Pero mis imágenes son el resultado de kmeans y los 3-6 valores grises diferentes no tienen una conexión lógica.

Respuestas a la pregunta(1)

Su respuesta a la pregunta