目标:我想开发一个应用程序来识别图像使用全息镜头相机。
我问题的简单化方式是“我该如何做到这一点?”(“太宽了?”,请继续读下去。
到目前为止我做了什么(或者我已经做了什么),
1)我开发了一个Hololens应用程序,它可以根据命令拍摄照片(手势--但声音也可以做到),并用照片提高全息图。(因此,这个问题不是“我如何与Hololens照片捕捉一起工作”的重复问题)
2)我已经开发了几种处理形状和字母识别、神经网络、图像处理的工作算法。它们是在C#和C++中实现的(但我可以将它们转换为C#,因为这是全息透镜使用的语言)(所以这个问题不是“如何编程OCR”或“如何处理图像”的重复,也不是太宽泛,因为我没有具体说明我想要什么样的图像识别:我没有问这个问题)。
3)我读到,当使用PhotoCapture时,您可以将映像放入磁盘或内存中,但当使用VideoCapture时,它只工作于磁盘(而不是内存)。
4)我读过关于异步处理的文章,以理解与多线程的区别。
我想问的(更详细的)
因此,我认为,为了实现目标,我必须不断地拍照并处理它们。我的假设正确吗?或者还有别的办法吗?
如果是这样的话,我是否需要将图像处理实现为一个单独的线程?(我想是的,因为可能需要一些时间)--考虑到光捕获是异步的。
此外,与速度问题直接相关的是,我是否必须使用不安全编程重新实现我的算法,以直接处理指向图像的指针,以提高速度?
如果这个问题被贴上“一个问题太多”的标签,让我把这个问题改为“我正在考虑用照片捕捉来解决这个问题,把结果带到另一个线程,在那里所拍摄的图像将被不安全的指针处理,以提高速度--这是正确的还是其他的方法?”
任何建议,指针或有用的建议将是非常感谢的。
发布于 2017-09-15 06:42:25
我没有所有问题的答案,但我认为您不需要在另一个线程中处理图像,因为您没有在同一个线程中运行其他进程,我还建议您使用FIFO列表(在这里检查队列类,保存未处理的捕获图像,同时继续处理队列中的第一个未处理的图像)来完成整个过程。这样,您就可以处理每个图像实例的捕获任务和图像处理任务之间的速度差异,而不会浪费任何捕获的图像,并且在同一时间,将处理结果保持在相同的捕获照片顺序上。
https://stackoverflow.com/questions/46232780
复制相似问题