matlab與python圖像之間的數據搬運問題

matlab與python圖像之間的數據搬運問題

我們用matlab作圖並保存圖像爲png,然後用python讀取出來,會發現數據的大小發生了改變

這時候
1.我們可以在matlab中把轉變爲圖像的矩陣保存爲.mat
2.用python讀取.mat文件(函數存在於scipy中)

這樣問們就獲得了與matlab一樣的矩陣,顯示的時候可以顯示出相同的圖片。最重要的是數據本身沒有改變。

代碼如下:

#image
import matplotlib.pyplot as plt
from PIL import Image
#math
import torch
import numpy as np
#load image
img = Image.open('Sinogram.png')         # PIL.Image.Image對象
img_num = np.array(img)           # (H x W x C), [0, 255], RGB
print(img_num.shape)
#以圖片的形式傳輸數據會導致數據的size的改變
plt.figure('png圖')
plt.imshow(img_num)
plt.axis("off")
plt.title("Sinogram")
plt.show()
#儘管圖片沒有變化
import scipy.io as sio
# python讀取.mat文件
load_fn = 'Sino.mat'
load_data = sio.loadmat(load_fn)
print(load_data['P'])
#轉換爲np
pic = np.array(load_data['P'])
print(pic.shape)
#顯示
plt.figure('mat圖')#plt顯示圖像,它默認使用三通道顯示圖像
plt.imshow(pic,cmap = "gray")
plt.axis("off")
plt.title("Sinogram")
plt.show()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章