我正在与Kinect合作,并试图深入研究数据并对其进行处理。翻转存储在F#中的一维数组中的二维“图像”
本质上,当我处理来自Kinect的深度框架时,我想保存2个球员和背部的前部深度数据。然后我需要翻转后面的数据,以便它可以用来建立玩家的3D模型。
我遇到的问题是将这些数据反转回来。
我有一个长度为1D的数组(长度为320 * 240 = 76800)的深度数据,我打算翻转每行(320个阵列中的位置)来翻转图像。
let mutable flipped = Array.create (320*240) 0
for y=0 to 239 do
for x=0 to 319 do
let n = ((y)* 320 + x)
flipped.[n] <- depths.[(320*(y+1))-(n+1)]
System.Diagnostics.Debug.WriteLine("DepthsMax:" + Array.max(depths).ToString())
System.Diagnostics.Debug.WriteLine("FlippedMax:" + Array.max(flipped).ToString())
深度数组包含我试图翻转的数据,但是,此代码使翻转的数组完全由0组成。
任何人都可以发现我做错了什么吗?
感谢
对于数组,'mutable'使基准可变的。元素是_always_ mutable。所以在这种情况下没有必要 – Daniel
您可以用'Array.zeroCreate _'替换'Array.create _ 0'。 – Daniel
啊感谢提示家伙,仍然试图抓住f#!非常有用谢谢 –