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