在Python以陣列的方式讀取影像,並轉為Torch張量
圖片路徑:
img_path = ‘./datasets/proposal-flow-pascal/PF-dataset-PASCAL/JPEGImages/2009_003820.jpg’
讀取圖片的2種不同方法:
from PIL import Image
image_1 = Image.open(img_path)
from skimage import io
image_2 = io.imread(img_path)
這2種方法讀取的影像的shape是一樣的,都是numpy陣列型別:(228, 300, 3)
print(image_1.shape)
print(image_2.shape)
對(影像)陣列進行升維(通過numpy.升維)
source_image = np.expand_dims(source_image.transpose((2,0,1)),0)
source_image的shape為:(1, 3, 228, 300)
print(source_image.shape)
將numpy陣列轉為torch張量:
source_image = torch.Tensor(source_image)
source_image的shape為:torch.Size([1, 3, 228, 300])
上一句也可以替換為,將numpy陣列轉為torch張量(同時歸一化):
source_image = torch.Tensor(source_image.astype(np.float32)/255.0)
source_image的shape為:torch.Size([1, 3, 228, 300])
將torch張量轉為變數
image_var = Variable(source_image,requires_grad=False)
image_var的shape為:image_var_shape: torch.Size([1, 3, 228, 300])
對(影像)進行降維
image_var_1 = image_var_1[0] # 4維降3維
調整不同維度的順序(對於變數)
image_var_1 = image_var_1.permute(1, 2, 0)
調整不同維度的順序(對於陣列)
source_image = source_image.transpose(1, 2, 0)
轉為陣列
image_var_1 = image_var_1.numpy()
Python讀取影像時,讀取為numpy陣列,用plt顯示影像時,也必須是numpy陣列的格式才能顯示。
張量和變數必須先轉為陣列才能作為影像顯示。
相關文章
- PIL影像轉torch的tensor
- Python多個陣列合並(拼接)為一個陣列Python陣列
- python如何獲取陣列元素的下標並輸出Python陣列
- 將byte[]陣列轉換為影像輸出到頁面陣列
- PHP陣列轉換為js陣列PHP陣列JS
- 大神教你python 讀取檔案並把矩陣轉成numpy的兩種方法Python矩陣
- Java擷取指定區間內的陣列元素並存入新陣列Java陣列
- php的陣列轉為物件PHP陣列物件
- Python多個陣列合並Python陣列
- 多維陣列轉一維陣列(降維的多種方式)陣列
- python進行陣列合並的方法Python陣列
- 陣列呼叫c#讀取陣列中獲取最大最小值方法陣列C#
- js如何獲取指定陣列元素在陣列中的索引值JS陣列索引
- python使用cv2讀取影像Python
- 帶緩衝的寫並且讀取固定大小byte陣列的物件設計陣列物件
- Java陣列轉列表方式對比Java陣列
- jQuery將類陣列物件轉換為陣列jQuery陣列物件
- JavaScript獲取元素在陣列中的位置JavaScript陣列
- 將字串陣列轉換為浮點數陣列字串陣列
- js將偽陣列或者集合轉換為陣列JS陣列
- Java 陣列的不同定義方式和陣列長度為可變引數Java陣列
- JavaScript 字串轉換為陣列JavaScript字串陣列
- 如何讀取leetcode中的二維陣列LeetCode陣列
- 在COM中使用陣列引數-陣列指標 (轉)陣列指標
- python解壓並讀取檔案Python
- 【Python】讀取excel並輸出到txtPythonExcel
- Java 讀取.xls模板並另存為.xlsJava
- C++以多型方式處理陣列可能會遇到的問題C++多型陣列
- 陣列元素的數量陣列
- python以16進位制列印位元組陣列Python陣列
- 以並行思維方式思考並行
- js獲取數字陣列最大值的幾種方式JS陣列
- php陣列如何轉換為xml的形式?PHP陣列XML
- javascript將類陣列轉換為陣列程式碼例項JavaScript陣列
- java讀取excel為物件並進行讀寫操作JavaExcel物件
- json字串 轉換為陣列JSON字串陣列
- 將一個Collection轉為陣列陣列
- Java 中陣列轉換為 ListJava陣列