0
在IDL中,我有一個datacube,包含不同時間的(灰度)圖像:datacube [w,h,frames]。現在我想使用IDLFFVideoWrite將該數據立方體轉換爲動畫,但問題是,放置方法僅吃掉排序幀[3,w,h]的幀。IDL - 將2D陣列重塑爲3D陣列
如何將我的datacube的單幀轉換爲適合的框架,IDLffVideoWrite :: Put會吃掉?
在IDL中,我有一個datacube,包含不同時間的(灰度)圖像:datacube [w,h,frames]。現在我想使用IDLFFVideoWrite將該數據立方體轉換爲動畫,但問題是,放置方法僅吃掉排序幀[3,w,h]的幀。IDL - 將2D陣列重塑爲3D陣列
如何將我的datacube的單幀轉換爲適合的框架,IDLffVideoWrite :: Put會吃掉?
你有灰度圖像,所以我們需要使所有三個波段(R,G和B)都只是一個波段的副本。 REBIN
和REFORM
是「雜耍尺寸」這樣的工具:
frame = rebin(reform(datacube[*, *, i], 1, w, h), 3, w, h)
只要datacube
是字節數據的,frame
將適合IDLffVideoWrite::put
。
更新:編輯答案,因爲我在評論中的格式選項有限。
所以你確實有這種形式的再一個datacube
:
datacube[w, h, 3 * n_frames]
所以,你應該這樣做是爲了datacube
,使其更容易對付:
datacube = transpose(reform(datacube, w, h, 3, n_frames), [2, 0, 1, 3])
然後,拿到i
你可以這樣做:
frame = reform(datacube[*, *, *, i])
非常感謝!只是另一個小問題,我已經重新格式化了我的數據存儲區以播放我的數據,現在立方體包含RGB數據,但仍然是數據存儲區[w,h,幀]的形式,例如第0幀包含紅色,第1幀包含綠色,第2幀包含藍色,然後第3幀再次包含紅色等。 我如何在Put-Method的正確幀中有效地對其進行格式化? – user3199134 2015-04-08 15:07:51
再一次,非常感謝您的幫助,它完美的工作! – user3199134 2015-04-14 13:48:21