我已經生成了圖像集合。其中一些是空白的,因爲它們的背景是白色的。我可以訪問每個圖像的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. 檢查圖像是否在C空白#
- 3. pyQt中的圖像上的按鈕,Qt
- 4. 如何檢查VB.net中的空圖像
- 5. 如何在Qt或PyQt中使用QDataWidgetMapper?
- 6. 查找圖像中的空白區域
- 7. 檢查圖像爲空或不
- 8. 如何在位圖圖像中查找空白區域
- 9. 檢測空白區域的圖像
- 10. PyQt/Qt:如何在Qlabel小部件中拉伸圖像?
- 11. 如何檢查大豆模板中的空白地圖?
- 12. ASP.NET MVC,如何檢查視圖中的ViewBag AsEnumerable空或空?
- 13. 檢查excel中的單元格是否爲空或空白
- 14. 檢查HttpResponse中是否有字符串或空值或圖像
- 15. 檢查前導空白/尾隨空白
- 16. 如何爲空或空白
- 17. 我如何檢查空白DataView.RowFilter
- 18. 如何檢查空白?在軌
- 19. 檢查圖像是純白色的嗎?
- 20. 檢查多個文本框,如果它們爲空或空白
- 21. 如何檢測黑白圖像中的白色斑點(矩形)?
- 22. C#圖像空白
- 23. 空白圖像50
- 24. 空白空白邊緣(不是圖像)
- 25. 如何更改qtabbar空白空間的背景顏色pyqt
- 26. Qt中的圖像轉換器,黑白色的圖像
- 27. 如何在創建文件或保存圖像時檢查android中的空間?
- 28. 如何從imageGetter獲得空白圖像
- 29. 如何刪除空白圖像容器?
- 30. Android在圖像視圖中的空白
您的代碼中存在拼寫錯誤,它實際上是getextrema而不是getexterma,它會很好地檢查空白。 – 2009-07-10 17:06:09