mat文件是一個156 * 192 * 25的3D矩陣。數據是mat文件中的一系列n = 25圖像。我怎麼能把這個3D矩陣轉換成25個二維矩陣並獨立顯示它們?感謝〜如何將3D矩陣轉換爲多個2D矩陣?
0
A
回答
5
我建議不要分裂您的圖片的堆棧,而不是簡單地使用I(:,:,3)
比如你需要第三圖像。
要顯示你可以使用圖片:
montage(permute(I,[1,2,4,3]))
要顯示所有圖像一起。因爲montage
預計156*192*1*25
用於堆積的灰度圖像,所以需要置換,第三個維度用於彩色通道。另外,以顯示單獨的圖像使用:
imshow(I(:,:,3));
每個圖像保存到一個單獨的文件墊使用:
for ix=1:size(I,3)
M=matfile(sprintf('image%03d',ix),'writable',true);
M.image=I(:,:,ix);
end
1
使用mat2cell
命令,可以將3D值矩陣轉換爲一個陣列25
單元,其中每個單元保持156x192
2D值矩陣:
M = rand(156,192,25); %// simulate your 3D data matrix
Mcell = mat2cell(M,156,192,ones(1,25));
或者,使用arrayfun
命令:
Mcell = arrayfun(@(x) M(:,:,x), 1:25, 'UniformOutput', false)
您現在可以訪問25
圖像逐一爲:
imageNum = 5; %// example: access image num. 5
image = Mcell{imageNum}; %// image: 156x192 value matrix
將圖像保存在單元陣列中的一個好處是,您可以輕鬆地應用同樣的過濾器將所有的圖像,利用該cellfun
命令,例如:
h = fspecial('motion', 50, 45);
McellFiltered = cellfun(@(x) imfilter(x, h), Mcell, ...
'UniformOutput', false);
相關問題
- 1. 將2D矩陣轉換爲3D矩陣?
- 2. 轉換3D矩陣級聯2D矩陣
- 3. 將3d矩陣重塑爲2d矩陣
- 4. 將3D矩陣轉換/重塑爲2D矩陣
- 5. Matlab的變換2D矩陣3D矩陣
- 6. 將多類型2D矩陣轉換爲浮點矩陣?
- 7. 如何將stl向量矩陣轉換爲2d陣列矩陣(或1d陣列)
- 8. 乘以3D矩陣和2D矩陣CUDA
- 9. 將包含矩陣的單元格轉換爲2d矩陣
- 10. 使用matlab將3d矩陣轉換爲4d矩陣
- 11. 將矩陣轉換爲對角矩陣
- 12. MATLAB將3D矩陣的高度向量評估爲2D矩陣
- 13. 如何將矩陣轉換爲具有更多列的矩陣
- 14. 將1個矩陣轉換爲多個矩陣
- 15. 響應矩陣3D轉換
- 16. 如何將3x3旋轉矩陣轉換爲4x4矩陣?
- 17. Matlab 3D矩陣變換第三維由2D矩陣矢量化
- 18. 使用張量流將3D矩陣轉換成二維矩陣
- 19. Matlab - 將矩陣乘以3D矩陣的每個矩陣
- 20. MATLAB:3D矩陣單元陣列轉換
- 21. 使用2D矩陣作爲numpy 3D矩陣的索引?
- 22. 如何將矩陣轉換爲包含單位矩陣的矩陣
- 23. MATLAB:乘法2D矩陣與3D矩陣單元陣列
- 24. 從當前3個2D矩陣創建新的3D矩陣
- 25. 如何將doc-term矩陣轉換爲term-term矩陣?
- 26. 如何將複共軛列矩陣轉換爲行矩陣?
- 27. 如何將3x2矩陣轉換爲4x4矩陣?
- 28. 如何將GPU(gpuR)矩陣轉換爲標準R矩陣?
- 29. 如何將共生矩陣轉換爲稀疏矩陣
- 30. 如何將列矩陣轉換爲行矩陣在MATLAB
你已經25點二維矩陣!你可以使用'varname(:,:,n)'來調用第n個元素......將其轉換爲單元陣列等是無用的! – bla
如果其中一個答案解決了您的問題,請點擊複選標記考慮[接受它](http://meta.stackexchange.com/q/5234/179419)。這表明你已經找到了解決方案,這不再是一個懸而未決的問題。如果您的問題沒有得到解答,請解釋缺少的內容。 – Daniel