我可以就我遇到的问题使用一些建议或帮助,但无法找到合适的算法或解决方案。
这是状态:
我有一个2D的短裤阵列:short[][] signal
一个维度是所谓的渠道。所以根据问题我可能有1到128.我的测试用例有60个通道。另一个维度表示“时间” - 每秒2048个样本,样本约 30秒。
所以围绕这个:short[60][61440]
数组是我的来源。
我的目的是将此数据放入byte array
,代表图像数据。我正在使用16bpp,因此将完成直接转换为字节。这仍然不是问题的部分。
问题是我希望克服的是我希望提供这样的数据:60个通道被转换为12x5矩阵,256个样本(1/8秒)将彼此相邻显示。然后是那些和下一个的下一个“行”...... Lemme提出了一个草图:
因此,如果我有一个正好30秒的样本,我会得到尺寸为3072 x 1200像素的图像。 (因此,宽度为每12像素256个样本,高度为每5像素240个样本(30x8))
有人能提供一些如何解决这个问题的线索吗? 我一直在考虑几个版本,但没有一个真正有效。
我希望能够理解我的问题。
好的,所以添加信息:
bitmap = new Bitmap(60, length, PixelFormat.Format16bppRgb565);
BitmapData bmpdata = bitmap.LockBits(new Rectangle(0, 0, 60, length), ImageLockMode.ReadWrite, PixelFormat.Format16bppRgb565);
for (int i = 0; i < length; i++)
{
for (int j = 0; j < channel_number; j++)
{
bufferList.AddRange(BitConverter.GetBytes(signalArray[j][i]));
}
}
其中bufferList定义为List<byte> bufferList = new List<byte>();
这是我制作图像的示例60 x 61440 px(通道x时间)
我将用这张图片做什么不是主要观点。关键是我希望准备数据以获得所描述的所需图像......