كيف يمكنني التحقق من وجود صورة فارغة في كيو تي أو pyqt؟

StackOverflow https://stackoverflow.com/questions/1110403

  •  12-09-2019
  •  | 
  •  

سؤال

لقد ولدت مجموعة من الصور. بعضهم فارغة كما في خلفيتهم بيضاء. لدي حق الوصول إلى كائن Qimage من كل صور. هل هناك طريقة QT للتحقق من الصور الفارغة؟ إذا لم يكن كذلك، هل يمكن لشخص أن يوصي بأفضل طريقة للقيام بذلك في ثعبان؟

هل كانت مفيدة؟

المحلول

أنا لا أعرف عن كيو تي، ولكن هناك طريقة سهلة وفعالة للقيام بذلك بيلباستخدام getextrema. الطريقة، مثال:

im = Image.open('image.png')
bands = im.split()
isBlank = all(band.getextrema() == (255, 255) for band in bands)

من الوثائق:

im.getextrema () => 2 tuple

إرجاع 2-tuple يحتوي على الحد الأدنى والقيم القصوى للصورة. في الإصدار الحالي من PIL، لا ينطبق هذا فقط على صور الفرقة الفردية.

نصائح أخرى

حسنا، أود حساب الألوان في الصورة. إذا كان هناك واحد فقط، فإن الصورة فارغة. أنا لا أعرف ما يكفي من بيثون أو كيو تي لكتابة رمز لهذا ولكن أنا متأكد من أن هناك مكتبة يمكن أن تخبرك عن عدد الألوان الموجودة في صورة (سأبحث في استخدام ImageMagick لهذا مباشرة بعد نشر هذا) وبعد

تحديث: هنا هو رمز بيرل (الاعتذار) للقيام بذلك باستخدام صورة :: Magick.. وبعد يجب أن تكون قادرا على تحويله إلى Python باستخدام ارتبطات بيثون.

من الواضح أن هذا يعمل فقط للصور القائمة على لوحة.

#!/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__
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top