Calcular el número de píxeles "negros" en una imagen (blanco y negro)
Resuelto
neji55
Mensajes publicados
3
Estado
Membre
-
nath84150 -
nath84150 -
Hola,
he hecho un programa en python que cuenta los píxeles "negros" de una imagen (blanco y negro), pero desafortunadamente el contador ("print i") no muestra el resultado (número de píxeles negros), aquí está mi programa, ¿cuál es el problema?
gracias por tu ayuda ^^
he hecho un programa en python que cuenta los píxeles "negros" de una imagen (blanco y negro), pero desafortunadamente el contador ("print i") no muestra el resultado (número de píxeles negros), aquí está mi programa, ¿cuál es el problema?
gracias por tu ayuda ^^
1 réponse
## De hecho habías inicializado tu i=0 en tus bucles for...
## así que para cada píxel vuelves a poner i en cero cada vez...
## hay que ponerlo en cero una vez antes de los bucles for y luego
## se incrementa cuando es necesario.
## además tu while es innecesario y completamente incorrecto para
## lo que quieres hacer aquí...
## De lo contrario, tu imagen está en blanco y negro, así que cárgala en escala de grises
## prueba mejor esto entonces:
import cv2
import numpy as np
image = cv2.imread('test.jpg',0)
#--> con el cero, obtienes una imagen en escala de grises, es decir, un solo canal de color... #así que si tu imagen contenía solo negro y blanco no cambiará
somme_px_noir = np.sum(image == 0)
# aquí en cálculo matricial es ultra más rápido que los bucles for...
print somme_px_noir
# para mostrarte que el resultado es el mismo aquí está con los bucles for...
s=0
for i in range(208):
____for j in range(304):
________if image[i,j] == 0:
____________s = s +1
print s
# reemplaza los _ por el mismo número de espacios
# Cordialmente.
## Si tienes preguntas no dudes en preguntar...
## así que para cada píxel vuelves a poner i en cero cada vez...
## hay que ponerlo en cero una vez antes de los bucles for y luego
## se incrementa cuando es necesario.
## además tu while es innecesario y completamente incorrecto para
## lo que quieres hacer aquí...
## De lo contrario, tu imagen está en blanco y negro, así que cárgala en escala de grises
## prueba mejor esto entonces:
import cv2
import numpy as np
image = cv2.imread('test.jpg',0)
#--> con el cero, obtienes una imagen en escala de grises, es decir, un solo canal de color... #así que si tu imagen contenía solo negro y blanco no cambiará
somme_px_noir = np.sum(image == 0)
# aquí en cálculo matricial es ultra más rápido que los bucles for...
print somme_px_noir
# para mostrarte que el resultado es el mismo aquí está con los bucles for...
s=0
for i in range(208):
____for j in range(304):
________if image[i,j] == 0:
____________s = s +1
print s
# reemplaza los _ por el mismo número de espacios
# Cordialmente.
## Si tienes preguntas no dudes en preguntar...
neji55
Mensajes publicados
3
Estado
Membre
merci bien @Timmydu26 pour ton aide, le problème est résolu ^^
nath84150
¡gracias!