Python 如何在Qt或PyQt中检查空白图像?

Python 如何在Qt或PyQt中检查空白图像?,python,qt4,pyqt4,Python,Qt4,Pyqt4,我已经生成了一组图像。有些是空白的,因为背景是白色的。我可以访问每个图像的QImage对象。有没有办法检查空白图像?如果没有,有人能推荐用Python做这件事的最佳方法吗?好吧,我会计算图像中的颜色。如果只有一个,则图像为空白。我不知道有足够的Python或qt来为此编写代码,但我确信有一个库可以告诉您图像中有多少种颜色(我将在发布本文之后立即研究使用ImageMagick) 更新:下面是使用Perl代码(抱歉)来完成此操作。您应该能够使用将其转换为Python 显然,这只适用于基于调色板的图像

我已经生成了一组图像。有些是空白的,因为背景是白色的。我可以访问每个图像的QImage对象。有没有办法检查空白图像?如果没有,有人能推荐用Python做这件事的最佳方法吗?

好吧,我会计算图像中的颜色。如果只有一个,则图像为空白。我不知道有足够的Python或qt来为此编写代码,但我确信有一个库可以告诉您图像中有多少种颜色(我将在发布本文之后立即研究使用ImageMagick)

更新:下面是使用Perl代码(抱歉)来完成此操作。您应该能够使用将其转换为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__
#/usr/bin/perl
严格使用;
使用警告;
使用Image::Magick;
除非@ARGV==1,否则“使用图像文件名调用\n”;
我的($file)=@ARGV;
my$image=image::Magick->new;
我的$result=$image->Read($file);
如果为“$result”,则为“$result”;
我的$colors=$image->Get('colors');
我的%unique_颜色;
对于(我的$i=0;$i<$colors;++$i){
$unique_colors{$image->Get(“colormap[$i]”)}=undef;
}
如果键%unique\u colors==1,则打印“$file”为空\n;
__结束__

我不知道Qt,但有一种简单有效的方法可以在 使用该方法,例如:

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

im.getextrema()=>2元组

返回包含 最小值和最大值 形象。在当前版本的PIL中, 这仅适用于单波段 图像


您的代码中有一个输入错误,它实际上是getextrema而不是getexterma,它可以很好地检查空格。