我需要从计算机麦克风中捕获音频数据,对其进行处理,然后实时绘制。处理每个帧将产生一个1-D数组,我想在图像中显示数组中的每个值都映射到一个颜色。下一个音频帧被类似地处理,然后显示在图像的下一行,依此类推。在matlab中,可以使用imagesc函数实现这一点。我还希望用户能够向上和向下滚动以查看当前或以前的数据。 我相信我需要在文件或数据库中缓冲已处理的数据,然后如上所述异步更新绘图。 我正在尝试使用C#实现上述所有目标。
我的问题是:生成图像/情节的最佳方法是什么?我已经做了很多研究(微软图表,VTK,几个代码项目文章..)但是找不到我想要的东西。
此外,在这种情况下使用的最佳数据库是什么?
答案 0 :(得分:0)
我认为没有一个组件完全符合您所描述的内容。在大多数框架/包中,所有图像都通过本机系统调用(最终)可视化,这些调用接受步幅,缓冲等等,由HANDLE驱动所有图像。因此,要么您下次使用新行生成新图像,要么只需将prev image叠加到新图像上即可自行绘制。
滚动(AKA窗口)并不是一件容易的事情,但可以再次使用已经预先创建的图像在内存中修复。但请注意,基于GDI +的图像(.NET Bitmap)的大小限制超过9000像素。请考虑使用像IPP,AForge图像这样的替代方案。
我建议您自己绘制行,因为在您的任务中重新调整大小会因为行模糊而成为一个问题。 总而言之,您可能需要自己动手。