• Empleos
  • Sobre nosotros
  • Empleos
    • Inicio
    • Empleos
    • Cursos y retos
  • Empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

193
Vistas
Cómo encontrar la cantidad de píxeles vecinos en una matriz binaria

Estoy buscando una manera fácil de contar la cantidad de píxeles verdes en la imagen a continuación, donde la imagen original es la misma pero los píxeles verdes son negros.

Lo probé con numpy.diff() , pero luego estoy contando algunos píxeles dos veces. Pensé en numpy.gradient() , pero aquí no estoy seguro de si es la herramienta adecuada.

Sé que tiene que haber muchas soluciones a este problema, pero no sé cómo buscarlo en Google. Estoy buscando una solución en python.

Imagen con una T

Para que quede más claro, solo tengo una imagen (solo píxeles en blanco y negro). La imagen con el píxel verde es solo ilustrativa.

over 3 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Puede usar el kernel de detección de bordes para este problema.

 import numpy as np from scipy.ndimage import convolve a = np.array([[0, 0, 0, 0], [0, 1, 1, 1], [0, 1, 1, 1]]) kernel = np.array([[-1, -1, -1], [-1, 8, -1], [-1, -1, -1]])

Luego, convolucionaremos la matriz original con el kernel. Observe que los bordes son todos negativos.

 >>> convolve(a, kernel) [[-1 -2 -3 -3] [-2 5 3 3] [-3 3 0 0]]

Contaremos el número de valores negativos y obtendremos el resultado.

 >>> np.where(convolve(a, kernel) < 0, 1, 0) [[1 1 1 1] [1 0 0 0] [1 0 0 0]] >>> np.sum(np.where(convolve(a, kernel) < 0, 1, 0)) 6

Núcleo de solo bordes

Hay muchas cosas que puedes hacer con el kernel. Por ejemplo, puede modificar el kernel si no desea incluir vecinos diagonales.

 kernel = np.array([[ 0, -1, 0], [-1, 4, -1], [ 0, -1, 0]])

Esto da la siguiente salida.

 >>> np.where(convolve(a, kernel) < 0, 1, 0) [[0 1 1 1] [1 0 0 0] [1 0 0 0]] >>> np.sum(np.where(convolve(a, kernel) < 0, 1, 0)) 5
over 3 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda