簡體   English   中英

python matplotlib.pyplot imread

[英]python matplotlib.pyplot imread

我正在使用plt.imread讀取大 .tiff 圖像。 由於尺寸較大,我只想選擇要加載的圖像的一部分。 我想做類似的事情:

plt.imread(filename, [s1:s2, r1:r2])

為兩個維度選擇初始和最終像素。

有沒有辦法做到這一點?

非常感謝

我認為您必須閱讀整個圖像,然后您可以在對其進行任何處理之前對其進行切片:

import matplotlib.pyplot as plt
my_img = plt.imread('my_img.tiff')
my_clipped_img = my_img[s1:s2,r1:r2]

或者,在一行中:

import matplotlib.pyplot as plt
my_img = plt.imread('my_img.tiff')[s1:s2,r1:r2]

后者的好處是不創建完整大小的數組,而只是創建您想要的大小。

請記住,這里的 s1:s2 應該是垂直方向的極限,而 r1:r2 應該是水平方向的極限。

可以只讀取文件一部分的唯一方法是,如果它采用列格式在磁盤上水平(行)和垂直(列)分區。 HiveHadoop提供了這樣的機制( Spark支持它們)。 但這些是針對更多數據存儲的,而不是針對單個(圖像)文件的。

所以tmdavison的答案是正確的——也許這讓我們更好地了解為什么會這樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM