trouver la valeur de min et max de pixels
J'ai calculé la plus petite et la plus grande des valeurs de pixel pour pixel dans une image en niveaux de gris comme suit:
smallest = numpy.amin(image)
biggest = numpy.amax(image)
mais cela fonctionne uniquement en niveaux de gris.
Comment puis-je faire la même chose pour une image couleur (RVB)?
Oui, il fonctionne, utiliser numpy.min et numpy.max
petit = numpy.min(img) plus = numpy.max(img) comme cela? comment puis-je l'utiliser sur une image en mode RVB?
En effet, qui renvoie une seule valeur, je suis à la recherche d'une solution
petit = numpy.min(img) plus = numpy.max(img) comme cela? comment puis-je l'utiliser sur une image en mode RVB?
En effet, qui renvoie une seule valeur, je suis à la recherche d'une solution
OriginalL'auteur Mumfordwiz | 2014-01-14
Vous devez vous connecter pour publier un commentaire.
Vous pouvez accéder à chaque canal avec les tranches comme suit:
Vous avez besoin de convertir tout ce que vous utilisez dans un tableau numpy. Apparemment, c'est un
JpegImageFile
(pas sûr de la bibliothèque, à partir de). Si leJpegImageFile
de la classe le permet, vous pouvez simplement être en mesure de fairedata = np.array(image)
.à droite, vous avez donc la lecture de l'image à l'aide de PIL / Oreiller. Comme Joe kingston portant dit que vous serez en mesure de convertir un tableau Numpy avec
np.array(image)
Joe kingston portant - cela semble fonctionner 🙂
Merci beaucoup!
OriginalL'auteur YXD
Vous pouvez le tester rapidement dans un script python.
Qu'entendez-vous par "obtenir la valeur de chaque"? Voulez-vous simplement
red, green, blue = result
? Aussi, l'axe d'utiliser (leaxis=0
argument) dépendra de la façon dont votre tableau est ordonné.Je vais essayer d'obtenir chaque couleur max et min de la valeur. et je n'arrive pas à obtenir comment utiliser ce
Le tableau retourné est le maximum de la valeur du rouge, le maximum de la valeur écologique, et le maximum de la valeur de bleu. (Bien que les bandes peuvent être dans un ordre différent en fonction de la bibliothèque que vous utilisez, etc.) Pour obtenir les valeurs minimales, il suffit d'utiliser
min(axis=0)
au lieu demax
.OriginalL'auteur double_g
En supposant que vous avez un BGR image (chargé à l'aide d'OpenCV), j'ai trouvé une façon simple de le faire:
OriginalL'auteur Ratnajit Mukherjee
Ajout d'une explication serait de rendre cette réponse plus utile.
C'est la partie de la réponse de la révision de stackoverflow. Ajouter quelques explications si le code est explicatif.
OriginalL'auteur Saad
Si vous souhaitez que les résultats sous forme de tableaux, c'est une solution simple:
Mais pour certaines raisons, ce sont plus rapide:
Si vous souhaitez que les résultats sous forme de listes, il suffit d'ajouter
.tolist()
à la fin de chaque ci-dessus.OriginalL'auteur Bill