我使用XNA构建了一个项目,在该项目中,我可以使用LCD投影仪和单色相机在墙上绘制“涂鸦”,该相机仅过滤手持激光点指针。我想使用任何数量的激光指示器 - 在这一点上并不真正在意区分它们。快速亚像素激光点检测
壁为10' ×10' ,并且摄像头只有640×480,所以我尝试所概述此处使用样条曲线以使用子像素测量:tpub.com
相机以120fps的运行(8所以我的问题都是找到亚像素激光点中心的最快方法。目前,我正在使用蛮力二维搜索在样条插值之前在图像上找到最亮的像素(0 - 254)。这种方法不是非常快,每个帧花费的时间比计算机长得多。
编辑:为了说明问题,最后我的相机数据由表示像素亮度的二维数组表示。
我想要做的是使用XNA着色器来为我压缩图像。这是实际的吗?据我所知,实际上没有办法在Pixel Shader中保留持久变量,例如运行总计,平均值等。
但是出于参数的原因,我们假设我使用蛮力发现了最亮的像素,然后使用texcoords将它们及其相邻像素的样条曲线存储到X个顶点中。那么使用HLSL来计算使用texcoords的样条曲线是否可行?
我也对我的XNA盒以外的建议持开放态度,不管是DX10/DX11,也可能是某种FPGA,等等。我只是没有太多关于如何以这种方式处理数据的经验。我想,如果他们可以在使用2节AA电池的Wii-Mote上做这样的事情,那么我可能会以错误的方式进行这样的尝试。
任何想法?
什么是慢,做扫描或做样条插值之后? – Nosredna 2009-07-20 14:24:11
样条插值到目前为止是它的最慢分量,取决于我用什么样的delta来评估样条。在这种情况下,我想要0.1px的精度。 – bufferz 2009-07-20 14:46:45
我应该补充说,如果我有20个激光器,那么样条计算会变得非常非常昂贵。 – bufferz 2009-07-20 14:48:23