gpt4 book ai didi

c# - 快速亚像素激光点检测

转载 作者:可可西里 更新时间:2023-11-01 08:59:56 26 4
gpt4 key购买 nike

我正在使用 XNA 构建一个项目,在该项目中,我可以使用 LCD 投影仪和经过过滤后只能看到手持式激光点指示器的单色相机在我的墙上绘制“涂鸦”。我想使用任意数量的激光指示器——此时并不真正关心区分它们。

墙是 10' x 10',而相机只有 640x480,所以我尝试使用样条曲线进行亚像素测量,如下所示:tpub.com

相机以 120fps(8 位)的速度运行,所以我想问大家的问题是找到亚像素激光点中心的最快方法。目前我正在使用强力 2D 搜索在进行样条插值之前找到图像上最亮的像素 (0 - 254)。这种方法不是很快,而且每一帧到计算机的时间比它们进入计算机的时间要长。

编辑:澄清一下,最后我的相机数据由指示像素亮度的二维字节数组表示。

我想做的是使用 XNA 着色器为我处理图像。那实用吗?据我了解,确实没有办法在像素着色器中保留持久变量,例如运行总计、平均值等。

但是为了争论起见,假设我使用蛮力找到了最亮的像素,然后使用 texcoords 将样条曲线的它们及其相邻像素存储到 X 个顶点中。那么使用 HLSL 通过 texcoords 计算样条曲线是否可行?

我也乐于接受 XNA 盒子之外的建议,无论是 DX10/DX11,也许是某种 FPGA 等等。我只是对以这种方式处理数据的方式没有太多经验。我想他们是否可以使用 2 节 AA 电池在 Wii-Mote 上做这样的事情,而不是我可能以错误的方式去做。

有什么想法吗?

最佳答案

如果您所说的暴力破解是指独立查看每个像素,那么这基本上是唯一的方法。无论您想对图像做什么,都必须扫描所有图像像素。虽然您可能不需要找到最亮的像素,但您可以按颜色过滤图像(例如:如果您使用红色激光)。使用 HSV 颜色编码图像可以轻松完成此操作。如果您正在寻找一些更快的算法,请尝试 OpenCV。它针对图像处理进行了一次又一次的优化,您可以通过包装器在 C# 中使用它:

[ http://www.codeproject.com/KB/cs/Intel_OpenCV.aspx][1]

OpenCV 还可以帮助您轻松找到点中心并跟踪每个点。

您使用 120fps 相机有什么原因吗?你知道人眼只能看到大约 30fps 吗?我猜它会跟随非常快速的激光运动...您可能需要考虑降低它,因为很难实现 120fps 的实时处理。

关于c# - 快速亚像素激光点检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1153806/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com