私は画像のコレクションを生成しました。背景が白であるため、一部は空白です。各画像の QImage オブジェクトにアクセスできます。空白の画像をチェックするQtの方法はありますか? そうでない場合、誰かが Python でそれを行うための最良の方法を推奨できますか?
1283 次
2 に答える
5
Qtについてはわかりませんが、PILでgetextremaメソッド を使用して簡単かつ効率的に行う方法があります。例:
im = Image.open('image.png')
bands = im.split()
isBlank = all(band.getextrema() == (255, 255) for band in bands)
ドキュメントから:
im.gettextrema() => 2タプル
画像の最小値と最大値を含む 2 タプルを返します。PIL の現在のバージョンでは、これはシングルバンド イメージにのみ適用されます。
于 2009-07-10T16:07:25.073 に答える
1
さて、私は画像の色を数えます。1 つしかない場合、画像は空白です。私はこのコードを書くのに十分な Python や qt を知りませんが、画像に含まれる色の数を教えてくれるライブラリがあると確信しています (これを投稿した直後に ImageMagick を使用することを検討します)。 .
更新:これは、 Image::Magickを使用してこれを行うための Perl コード (謝罪)です。Python bindingsを使用して 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__
于 2009-07-10T15:59:38.457 に答える