[英]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 應該是水平方向的極限。
可以只讀取文件一部分的唯一方法是,如果它采用列格式並在磁盤上水平(行)和垂直(列)分區。 Hive和Hadoop提供了這樣的機制( Spark支持它們)。 但這些是針對更多數據存儲的,而不是針對單個(圖像)文件的。
所以tmdavison
的答案是正確的——也許這讓我們更好地了解為什么會這樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.