J'ai généré une collection d'images. Certains d'entre eux sont vides car dans leur fond est blanc. J'ai accès à l'objet QImage de chacune des images. Existe-t-il un moyen de vérifier les images vierges? Si non, quelqu'un peut-il recommander la meilleure façon de le faire en Python?Comment puis-je vérifier une image vide dans Qt ou PyQt?
Répondre
Je ne sais pas Qt, mais il est un moyen facile et efficace de le faire en PIL En utilisant la méthode getextrema, par exemple:
im = Image.open('image.png')
bands = im.split()
isBlank = all(band.getextrema() == (255, 255) for band in bands)
De la documentation:
im.getextrema() => 2-tuple
Retourne un 2-tuple contenant le valeurs minimales et maximales de l'image . Dans la version actuelle de PIL, , ceci s'applique uniquement aux images à bande unique .
Eh bien, je compterais les couleurs dans l'image. S'il n'y en a qu'un, l'image est vide. Je ne connais pas assez Python ou qt pour écrire du code pour cela mais je suis sûr qu'il y a une bibliothèque qui peut vous dire combien de couleurs il y a dans une image (je vais utiliser ImageMagick pour cela juste après avoir posté ceci) .
Mise à jour: Voici le code Perl (excuses) pour le faire en utilisant Image::Magick. Vous devriez être capable de le convertir en Python en utilisant le Python bindings. De toute évidence, cela ne fonctionne que pour les images à base de palette.
#!/usr/bin/perl
use strict;
use warnings;
use Image::Magick;
die "Call with image file name\n" unless @ARGV == 1;
my ($file) = @ARGV;
my $image = Image::Magick->new;
my $result = $image->Read($file);
die "$result" if "$result";
my $colors = $image->Get('colors');
my %unique_colors;
for (my $i = 0; $i < $colors; ++$i) {
$unique_colors{ $image->Get("colormap[$i]") } = undef;
}
print "'$file' is blank\n" if keys %unique_colors == 1;
__END__
- 1. Qt Image From Web
- 2. Comment vérifier si une chaîne est vide dans Emacs Lisp?
- 3. Pourquoi bitmapImageRepForCachingDisplayInRect: créer une image vide?
- 4. Comment construire un projet PyQT?
- 5. Python et Qt (PyQt) - méthode d'appel avant l'événement de redimensionnement
- 6. Comment faire pour vérifier un Gridview vide
- 7. Comment vérifier si la collection est vide dans NHibernate (HQL)?
- 8. Postgres - Comment vérifier un tableau vide
- 9. Comment vérifier si une chaîne de serveur Sql est nulle ou vide
- 10. Comment vérifier si WordprocessingDocument est vide?
- 11. desktopdock ou stardock dans Qt
- 12. Trouver une image dans une image C#
- 13. Comment imprimer une boîte de dialogue ou une fenêtre Qt?
- 14. Comment vérifier si l'entrée mysql est vide dans PhP?
- 15. Comment vérifier si une image distante répond à certaines spécifications
- 16. .Net: Existe-t-il un meilleur moyen de vérifier la propriété de l'objet pour une chaîne vide ou vide?
- 17. Spécification d'une fixation vide ou vide dans Rails
- 18. Widget personnalisé PyQt en C++
- 19. PyQt Répétition automatique des formulaires
- 20. Comment superposer ou filigraner une image dans Windows Media Player
- 21. PyQt et le menu contextuel
- 22. 7645 Prédicat plein texte vide ou vide
- 23. PyQt: Redéfinition QGraphicsView.drawItems
- 24. Contrainte - unique ou vide
- 25. AS3: Vérifier si un dictionnaire est vide
- 26. Actualiser QTextEdit dans PyQt
- 27. Comment vérifier un argument de date vide dans une fonction XQuery?
- 28. problème d'importation pyqt
- 29. Requête SQL pour vérifier la cellule vide dans Excel
- 30. Comment créer une icône de plateau avec une image personnalisée en utilisant QT?
Il y a une faute de frappe dans votre code, c'est en fait getextrema au lieu de getexterma et ça vérifie bien les blancs. –
@Thierry, merci d'avoir signalé cela. Fixé –