導航:首頁 > 編程語言 > python解析mat

python解析mat

發布時間:2023-05-20 00:35:51

1. 如何在python中讀寫和存儲matlab的數據文件

matlab的數據文件, 也就是mat文件, 可以用scipy包讀寫

#coding=utf-8
importscipy.ioassio
importnumpyasnp

#將單個變數保存為mat文件,同目錄下就會有一個x.mat文件,可以在matlab中打開了
x=[[1,2,3,4],[5,6,7,8]]
sio.savemat('x.mat',{'x':x})

#將多個變數保存為mat文件
a,b,c,d=1,2,3,4
sio.savemat('abcd.mat',{'a':a,'b':b,'c':c,'d':d})

#讀取mat文件
abcd=sio.loadmat('abcd.mat')
print(abcd['a'])
print(abcd['b'])
print(abcd['c'])
print(abcd['d'])

2. 如何讀取mat文件 python

一、mat文件

mat數據格式是Matlab的數據存儲的標准格式。在Matlab中主要使用load()函數導入一個mat文件,使用save()函數保存一個mat文件。對於文件

二、python中讀取mat文件

在python中可以使用scipy.io中的函數loadmat()讀取mat文件,函數savemat保存文件。

1、讀取文件

如上例:

#coding:UTF-8


import scipy.io as scio

dataFile = 'E://data.mat'
data = scio.loadmat(dataFile)

注意,讀取出來的data是字典格式,可以通過函數type(data)查看。

print type(data)


結果顯示

<type 'dict'>


找到mat文件中的矩陣:

print data['A']

結果顯示

[[ 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0.
。。。。。。。。。。。
0. 0. 0. 0. 0. 0. 0.
0.36470588 0.90196078 0.99215686 0.99607843 0.99215686 0.99215686
0.78431373 0.0627451 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0.
。。。。。。。。。。。。
0.94117647 0.22745098 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0.30196078
。。。。。。。
0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. ]]


格式為:

<type 'numpy.ndarray'>


即為numpy中的矩陣格式。

2、保存文件

將這里的data['A']矩陣重新保存到一個新的文件dataNew.mat中:

dataNew = 'E://dataNew.mat'
scio.savemat(dataNew, {'A':data['A']})

3. 用python怎麼讀取mat文件的三維矩陣

4. python opencv 表示mat類型嗎

、Mat類型:矩陣類型Matrix
openCVMat維密集數據數組用處理向量矩陣、圖像、直圖等等見維數據
Mat3重要:
1、Mat mat = imread(const String* filename); 讀取圖像
2、imshow(const string frameName, InputArray mat); 顯示圖像
3、imwrite (const string& filename, InputArray img); 儲存圖像
Mat類型較CvMat與IplImage類型說更強矩陣運算能力支持見矩陣運算計算密集型應用CvMat與IplImage類型轉化Mat類型減少計算間花費
A.Mat -> IplImage
同創建圖像沒復制數據
例: // 假設Mat類型imgMat圖像數據存
IplImage pImg= IplImage(imgMat);
B.Mat -> CvMat
與IplImage轉換類似復制數據創建矩陣
例: // 假設Mat類型imgMat圖像數據存
CvMat cvMat = imgMat;

二、CvMat類型與IplImage類型:圖像類型
openCVMat類型與CvMatIplImage類型都代表顯示圖像Mat類型側重於計算數性較高openCVMat類型計算進行優化CvMatIplImage類型更側重於圖像openCV其圖像操作(縮放、單通道提取、圖像閾值操作等)進行優化
補充:IplImage由CvMat派CvMat由CvArr派即CvArr -> CvMat -> IplImage
CvArr用作函數參數論傳入CvMat或IplImage內部都按CvMat處理
1.CvMat
A.CvMat-> IplImage
IplImage* img = cvCreateImage(cvGetSize(mat),8,1);
cvGetImage(matI,img);
cvSaveImage("rice1.bmp",img);
B.CvMat->Mat
與IplImage轉換類似選擇否復制數據
Mat::Mat(const CvMat* m, bool Data=false);
openCV沒向量(vector)數據結構任何候我要表示向量用矩陣數據表示即
CvMat類型與我線性代數課程向量概念相比更抽象比CvMat元素數據類型並僅限於基礎數據類型比面創建二維數據矩陣:
CvMat* cvCreatMat(int rows ,int cols , int type);
type任意預定義數據類型比RGB或者別通道數據我便CvMat矩陣表示豐富彩圖像

2.IplImage
類型關系我說IplImage類型繼承自CvMat類型包括其變數解析圖像數據
IplImage類型較CvMat參數比depthnChannels普通矩陣類型通深度通道數同表示用32位表示RGB+Alpha.圖像處理我往往深度與通道數處理做OpenCV圖像表示種優化案
IplImage圖像另種優化變數origin----原點計算機視覺處理重要便原點定義清楚圖像源編碼格式甚至操作系統都原選取產影響彌補點openCV允許用戶定義自原點設置取值0表示原點位於圖片左角1表示左角
dataOrder參數定義數據格式IPL_DATA_ORDER_PIXELIPL_DATA_ORDER_PLANE兩種取值前者便於像素同通道數據交叉排列者表示所通道按順序平行排列
IplImage類型所額外變數都圖像表示與計算能力優化
A.IplImage -> Mat
IplImage* pImg = cvLoadImage("lena.jpg");
Mat img(pImg,0); // 0復制影像pImg與imgdata共用同記憶體位置header各自
B.IplImage -> CvMat
1:CvMat mathdr, *mat = cvGetMat( img, &mathdr );
2:CvMat *mat = cvCreateMat( img->height, img->width, CV_64FC3 );
cvConvert( img, mat );
C.IplImage*-> BYTE*
BYTE* data= img->imageData;

CvMatIplImage創建區別:
1、建立矩陣第參數行數第二參數列數
CvMat* cvCreateMat( int rows, int cols, int type );
2、建立圖像CvSize第參數寬度即列數;第二參數高度即行數 CvMat矩陣相反
IplImage* cvCreateImage(CvSize size, int depth, int channels );
CvSize cvSize( int width, int height );

IplImage內部buffer每行按4位元組齊CvMat沒限制

補充:
A.BYTE*-> IplImage*
img= cvCreateImageHeader(cvSize(width,height),depth,channels);
cvSetData(img,data,step);
//首先由cvCreateImageHeader()創建IplImage圖像制定圖像尺寸深度通道數;
//由cvSetData()根據BYTE*圖像數據指針設置IplImage圖像數據數據
//其step指定該IplImage圖像每行佔位元組數於1通道IPL_DEPTH_8U圖像step等於width

5. Python列表推導式

b=[]
a=[[0,1],[2,3],[4,5],[6,7],[8,9]]
foriinrange(2):
forrowina:
b.append(row[i])

閱讀全文

與python解析mat相關的資料

熱點內容
博科清空命令 瀏覽:384
簡愛英文pdf 瀏覽:376
cnc編程有前途嗎 瀏覽:586
聯想app怎麼聯網 瀏覽:722
linuxftp命令登錄 瀏覽:1000
android獲取圖片縮略圖 瀏覽:646
神戶制鋼螺桿壓縮機 瀏覽:29
差分演化演算法 瀏覽:567
中山市加密軟體 瀏覽:446
mc反編譯源碼 瀏覽:139
企業商城網站源碼 瀏覽:411
shell腳本編程是什麼 瀏覽:762
單片機led閃爍匯編 瀏覽:203
點淘app怎麼沒金蛋了 瀏覽:878
app拉新哪裡找推廣碼 瀏覽:935
哪個app生活服務好 瀏覽:108
mht安卓用什麼軟體打開 瀏覽:320
html5即時通訊源碼 瀏覽:144
python編程基礎豆瓣 瀏覽:710
程序員亂碼是什麼意思 瀏覽:373