日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

兼容超大图片的处理_计算机读取超大图像的一些问题简述

發布時間:2025/1/21 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 兼容超大图片的处理_计算机读取超大图像的一些问题简述 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

近期在處理遙感數據的時候,發現了一些問題跟大家分享一下解決方案。

有一張不知道從哪里搞來的中國的夜間燈光數據,分辨率為28800*18000,在Python語言下,Opencv讀取和PIL讀取都會出現問題。

Opencv直接就是變量為Nonetype,連錯都沒報!

PIL是像素個數超過了限定值,報了錯,PIL拒絕加載。

So,我找到了一些解決方案:

1、編寫matlab程序,調用blockproc函數,進行切割,該方法適用于超大影像,如幾個G,甚至幾十GB的。

2、對于PIL、Opencv警告的處理也要具體問題具體分析:解壓后的數據小于當前物理內存的圖片,可以通過設置Image.MAX_IMAGE_PIXELS來適當提高觸發警告的閾值,繼而強制加載。解壓后的數據大小可以用圖片尺寸與色彩位深來估計。

如PIL:

>>> from PIL import Image >>> Image.MAX_IMAGE_PIXELS = 1000000000 #Or None >>> im = Image.open(r'some.tif')

但是,對于解壓后的數據顯然大于當前物理內存的圖片,應當靈活應用圖片壓縮方法具備的特性,例如JPEG的遞進性(即Progressive)、JPEG 2000的區域解碼(即Random Access)等等。然而這些特性,PIL幾乎不能使用,因此應當考慮其他專業軟件或者根據需求自行實現。

3、更換其他語言進行嘗試,如C++,匯編語言。

4、萬事都不如增加配置來的方便,燒錢吧!如果是20gb以上的圖片,最好有128gb以上的內存,和480gb以上固態硬盤,主要是讀寫速度不夠,所以硬盤一定要好。

也許對于具有極大物理內存的用戶來說,通過調整閾值,圖像尺寸似乎就沒有了上限。但事實上考慮到Python令人遺憾的多核性能(至少對于cPython),以及一個平凡的觀察——你通常需要處理很多小圖片,或者些許大圖片——加載一個特別大的圖片將不會在合理的時間內完成,即使通過并行處理也節約不了太多時間(并沒有那么多圖片需要處理)。

參考文獻:

Matlab切割超大影像?blog.csdn.netPython圖形庫處理大型圖片的有關問題 - 胡先生與他愉快的朋友們?huzheyang.cn

總結

以上是生活随笔為你收集整理的兼容超大图片的处理_计算机读取超大图像的一些问题简述的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。