我已经生成了图像集合。其中一些是空白的,因为它们的背景是白色的。我可以访问每个图像的QImage对象。有没有Qt的方式来检查空白图像?如果没有,有人可以推荐在Python中使用它的最佳方法吗?如何检查Qt或PyQt中的空白图像?
4
A
回答
5
我不知道关于Qt,但有一个简单而有效的方式做到这一点在PIL 使用getextrema方法,例如:
im = Image.open('image.png')
bands = im.split()
isBlank = all(band.getextrema() == (255, 255) for band in bands)
从文档:
im.getextrema()=> 2元组
返回包含01的2元组 图片的最小值和最大值。在当前版本的PIL中, 这仅适用于单波段 图像。
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__
相关问题
- 1. 扩大的PyQt或QT的图像查看器示例
- 2. 如何检查VB.net中的空图像
- 3. 查找图像中的空白区域
- 4. 检查图像为空或不
- 5. 如何在位图图像中查找空白区域
- 6. 如何检查大豆模板中的空白地图?
- 7. ASP.NET MVC,如何检查视图中的ViewBag AsEnumerable空或空?
- 8. 如何为空或空白
- 9. 我如何检查空白DataView.RowFilter
- 10. 检查图像是纯白色的吗?
- 11. 检查多个文本框,如果它们为空或空白
- 12. 空白图像50
- 13. C#图像空白
- 14. Android在图像视图中的空白
- 15. 如何在创建文件或保存图像时检查android中的空间?
- 16. 检查Qt Dock中的可用空间
- 17. 的JavaScript检查是否为空或白色具有空间
- 18. 图像周围的空白?
- 19. image.save上的空白图像
- 20. 图像周围的空白
- 21. 如何检查Android中的位图(或画布)是否为空
- 22. 在pyqt或qt中制作油漆
- 23. vim语法检查空白
- 24. 检查大量空白列
- 25. 检查是否?空白?
- 26. 如何在PyQT GUI中显示图像?
- 27. 如何创建空白/空白UIImage或CGImage并操作其上的像素(Xcode)?
- 28. 由于类或图像尺寸,图像/容器下的空白空间?
- 29. Qt/PyQt(/其他?):如何更改像素图中的特定颜色?
- 30. 删除图像中的空白
您的代码中存在拼写错误,它实际上是getextrema而不是getexterma,它会很好地检查空白。 – 2009-07-10 17:06:09