我想對循環中的圖像做一些矩陣運算,我想單獨存儲每個合成圖像矩陣。但是我很困惑,如果它可能在Matlab中聲明和使用一個變量作爲像C(int array[r][c][n]
)這樣的矩陣數組。請指教。矩陣矩陣在Matlab中的數組?
回答
您可以使用3D矩陣來存儲多個灰度圖像或4D矩陣來存儲多個彩色圖像。這裏有幾個例子,假設你在for
循環中做了一些處理。
灰度圖像
首先聲明一個三維矩陣,其中前兩個維度是你正在處理的任何圖象的行和列。您需要確保所有的圖像共享相同的行和列,因爲MATLAB不支持不均勻的多維矩陣。因此,假設我們有N
圖像,並且我們有rows
和cols
作爲定義的單個圖像的行和列。我還會假設您的圖片以uint8
格式存儲,但它們也可以是double
。因此:
results = uint8(zeros(rows,cols,N)); %// To store the images
%// Or do results = zeros(rows,cols,N); if double type
for idx = 1 : N
%// Read in your image
%//....
%// Process the image
%//....
%// Store the image for further analysis
results(:,:,idx) = ...; %// Place instruction here
end
要訪問我個圖像,你會簡單地做:
im = results(:,:,i);
彩色圖像
這是相同的原則,但我們有一個4D矩陣代替。我假設你有一個3通道彩色圖像(即RGB)。你只需要將上面的代碼擴展到4維。因此:
results = uint8(zeros(rows,cols,3,N)); %// To store the images
%// Or do results = zeros(rows,cols,N); if double type
for idx = 1 : N
%// Read in your image
%//....
%// Process the image
%//....
%// Store the image for further analysis
results(:,:,:,idx) = ...; %// Place instruction here
end
要訪問我個圖像,你會簡單地做:
im = results(:,:,:,i);
大小不均?
如果您有一堆正在處理的圖像,並且它們的大小並不相同,則可以使用cell
數組作爲選項。你可以將它們看作是可以在每個元素中存儲任何你想要的數據類型的容器。因此,我們可以做這樣的事情,而不是:
results = cell(1,N); %// To store the images
for idx = 1 : N
%// Read in your image
%//....
%// Process the image
%//....
%// Store the image for further analysis
results{idx} = ...; %// Place instruction here
end
要訪問我個圖像,你會簡單地做:
im = results{i};
注意區別在訪問單元陣列相比,一個正常的矩陣。您改用大括號{}
。使用()
設計用於索引單元陣列並執行切片(即訪問一大堆單元並將它們複製到新單元陣列中)。如果您想要實際圖像本身,請使用{}
。
單元陣列是另一種選擇。 – 2014-08-31 04:36:02
@ ParagS.Chandakkar - 我添加了一些關於單元陣列的東西。謝謝 – rayryeng 2014-08-31 04:44:50
- 1. MATLAB - 矩陣組合
- 2. Matlab填充矩陣數組
- 3. 在MATLAB矩陣
- 4. 矩陣在Matlab中
- 5. Matlab - 矩陣陣列
- 6. 從3D矩陣和matlab索引數組中提取2D矩陣
- 7. matlab中的矩陣
- 8. Matlab的變換2D矩陣3D矩陣
- 9. 在matlab中計算涉及矩陣的函數的Hessian矩陣
- 10. matlab中的稀疏矩陣數組
- 11. Matlab - 將矩陣乘以3D矩陣的每個矩陣
- 12. MATLAB從矩陣
- 13. Matlab大矩陣
- 14. Zeropad在matlab中的矩陣
- 15. cellarray在矩陣matlab
- 16. 以矩陣(在Matlab)
- 17. MATLAB - 用子矩陣創建矩陣
- 18. Matlab:重塑矩陣來分隔矩陣
- 19. 矩陣在Matlab中的重組
- 20. 新矩陣中的矩陣與矩陣的所有行組合
- 21. 在Matlab中將雙矩陣轉換爲整數矩陣
- 22. Matlab的:從矩陣
- 23. 在matlab中重塑矩陣
- 24. 在matlab中拼貼矩陣
- 25. 在matlab中遞增矩陣
- 26. 在Matlab中繪製矩陣
- 27. 在matlab中更改矩陣
- 28. 在MATLAB中轉換矩陣
- 29. 在MATLAB中排序矩陣
- 30. 在Matlab中訪問矩陣
當然,這是..你有沒有考慮閱讀手冊,但(沒有進攻,真的)? - >搜索「多維數組」 – fuesika 2014-08-31 00:38:12