我们正在尝试将OpenCV C ++ Windows运行时组件与C#Windows应用商店应用集成。我们目前正在使用Windows 8(x64)平台,并使用Visual Studio 2012和OpenCV 2.4.5。实际目的是检测在x64平台上运行的C#Windows应用商店应用中的面部。我们使用Visual Studio 2012(x64平台)成功设置了OpenCV 2.4.5,并将所有openCV的dll复制到“system32”文件夹,以便我们能够在上述平台上构建和运行openCV项目。
以下是我们面临的问题:
我们只能使用上面的代码在Win32控制台应用程序中检测面部。但是无法完成这项任务。
我正在提供我们正在处理的项目的链接。 “https://www.dropbox.com/l/OkEZNMrazzFmV6UOj59KMb”
关于项目: 1.“FaceDetectWinRT”是C ++ Windows运行时组件项目,其中包含“Class1.cpp”和“Class1.h”,其中包含面部检测的代码。 2.“FaceDetectStoreApp”是C#Windows应用商店应用项目,它引用了上述项目并被声明为“启动”项目。 3.“MainPage.xaml.cs”类下的“FaceDetectStoreApp”中有一个按钮,单击该按钮会调用“FaceDetectWinRT”项目的“face”函数,该函数在工作时应返回检测到的面部坐标。
答案 0 :(得分:1)
我做了同样的事情,结果非常相似。在ARM设备上部署WinRT应用程序时,我获得了成功。你需要:
我还没有成功在x86设备上运行应用程序(即Surface Pro)。我认为问题在于objdetect dll取决于highgui dll。 highgui dll的ARM构建仅依赖于一些标准库。 x86版本依赖于几个不可用于WinRT的其他库。我想你可以通过在没有highgui的情况下为x86构建OpenCV来实现它。您可以通过将BUILD_opencv_highgui CMake变量设置为OFF来执行此操作。