Ich habe eine Sammlung von Bildern erstellt. Einige von ihnen sind leer, da in ihrem Hintergrund weiß ist. Ich habe Zugriff auf das QImage-Objekt von jedem der Bilder. Gibt es eine Möglichkeit, nach leeren Bildern zu suchen? Wenn nicht, kann jemand den besten Weg empfehlen, es in Python zu tun?Wie kann ich nach einem leeren Bild in Qt oder PyQt suchen?
Antwort
Ich weiß nicht, über Qt, aber es ist eine einfache und effiziente Art und Weise, es zu tun in PIL Mit dem getextrema Methode Beispiel:
im = Image.open('image.png')
bands = im.split()
isBlank = all(band.getextrema() == (255, 255) for band in bands)
Aus der Dokumentation:
im.getextrema() => 2-Tupel
Gibt ein 2-Tupel mit dem 01 zurückMinimal- und Maximalwerte des Bildes . In der aktuellen Version von PIL, gilt dies nur für einbandige Bilder.
Nun, ich würde die Farben im Bild zählen. Wenn es nur einen gibt, ist das Bild leer. Ich weiß nicht genug Python oder qt, um Code dafür zu schreiben, aber ich bin mir sicher, dass es eine Bibliothek gibt, die dir sagen kann, wie viele Farben es in einem Bild gibt (ich werde mich später mit ImageMagick beschäftigen, nachdem ich dies gepostet habe) .
Aktualisierung: Hier ist der Perl-Code (Entschuldigung), dies zu tun mit Image::Magick. Sie sollten es in Python konvertieren können, indem Sie Python bindings verwenden.
Dies funktioniert eindeutig nur für palettenbasierte Bilder.
#!/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. Wie kann ich nach einer leeren Zeichenfolge in MyBatis suchen?
- 2. Gesehen: nach leeren Listen suchen
- 3. Wie überprüfe ich nach einem leeren Array?
- 4. Wie kann ich nach einem Wert in einem Objekt suchen?
- 5. wie nach einem leeren Array zu suchen Java
- 6. Wie kann ich nach einem beschädigten PDF in iOS suchen?
- 7. Wie würde ich nach leeren Facetten in einem mehrwertigen Facettenfeld und gleichzeitig in Solr suchen?
- 8. Android: Nach leeren EditText Feldern suchen
- 9. Suche nach leeren Bereichen in Bild
- 10. Suchen nach PostMessage-Funktionalität in Qt
- 11. Wie kann ich nach HTML5-Videounterstützung suchen?
- 12. Wie kann ich nach verfügbarem Speicherplatz suchen?
- 13. Wie kann man das Ereignisverhalten in PyQt oder PySide minimieren?
- 14. Wie kann ich mit ack nach einem Dollarzeichen suchen (escape)?
- 15. Wie kann ich nach einem vorhandenen Web-Ordner suchen?
- 16. Wie kann ich nach bestimmten Daten suchen?
- 17. Wie kann ich nach einem laufenden Prozess pro Benutzersitzung suchen?
- 18. Wie kann ich mit regulären Ausdrücken nach einem Pluszeichen suchen?
- 19. Wie kann ich nach einem laufenden Prozess mit Ruby suchen?
- 20. Convert PyQt in PIL Bild
- 21. Python: Pickle und Qt (PyQT)
- 22. Wie kann ich den Eingabepuffer in einem Expect-Skript leeren?
- 23. Wie kann ich nach erkannten Zeichen in RavenDb suchen
- 24. Suchen nach einem Datenbankprogramm für alle kann
- 25. Suchen nach einem String in einem Array
- 26. Kann ich mit Google App Engine nach einem Muster suchen?
- 27. Wie kann man in einem UIWebView suchen
- 28. QT/PyQT Best Practice für die Verwendung von QT Designer
- 29. So suchen Sie nach # oder. in Elasticsearch
- 30. Wie kann ich in Wicket Textfield nach Nullwerten suchen?
Es gibt einen Tippfehler in Ihrem Code, es ist tatsächlich getextrema statt getexterma und es prüft auf Leerzeichen gut. –
@ Thierry, danke für das darauf hin. Fest –