我必须为windows开发一个应用程序,可以通过识别手势通过网络摄像头控制鼠标。我将使用vc++ 2008进行开发。但是我很困惑是使用.NET框架还是核心win32 API。性能对我的应用程序非常重要。根据Ivor Horton的“开始Visual C++ 2008”一书,在使用.NET框架时有一个小的性能损失。我想知道惩罚依赖于什么因素,以及在我的应用程序中使用.NET框架是否可行。
发布于 2010-09-06 23:08:36
如果您熟悉Win32接口,请转到Win32接口。它在你的情况下是自然而然的选择,因为你的大部分源代码将是视频捕获,图像处理,算法,以及Windows中的鼠标接口。当您对性能感兴趣时,请靠近硬件,避免使用像.NET这样的厚层。
我相信.NET是用于复杂的业务应用程序,而不是用于实时应用程序或设备驱动程序。
发布于 2010-09-07 05:36:14
除非你是一名非常有经验的C++程序员,否则C#是一种更高效的语言(作为一个有15年以上C++经验和2年C#经验的人来说)。
.Net库提供了比标准C++库更易于使用的大量高质量功能。
因此,我倾向于使用.Net。
如果必须集成复杂的本地库,我还建议使用C++/CLI直接调用它们,而不是使用P/Invoke。这对奇怪的调用很好,但不能让您轻松地访问数据结构或混合本机代码和托管代码。
发布于 2010-09-07 00:42:14
.NET非常适合GUI和非性能密集型领域的常规编程。如果您需要做的不仅仅是简单的图形用户界面,我建议您至少用.NET语言编写这一部分。
在你所描述的程序中,识别手势将是唯一计算密集的部分。控制鼠标的实际过程很简单。因此,只要手势识别部分的性能足以满足您的需求,那么程序的其余部分用什么编写就不再重要了。
第一步,你应该研究一下有哪些库可以进行手势识别或类似的图像处理。(我希望您无论如何都不打算从头开始编写这一部分。)如果您发现任何基于.NET的库声称其性能足以满足您的需求,那么您可以试一试。否则,您最终可能会得到一个基于C或C++或类似的库。无论哪种方式,都可以将这样的东西与基于.NET的程序集成在一起。
https://stackoverflow.com/questions/3652327
复制相似问题