gpt4 book ai didi

dll - OpenCV版本的有意混合

转载 作者:行者123 更新时间:2023-12-02 16:43:29 25 4
gpt4 key购买 nike

我有一个用于使用OpenCV1.1的项目,现在已移至使用OpenCV2.2。这个项目使用opencv的人脸检测功能,而2.2版的速度恰好是1.1版的两倍。这种减速影响了该项目的实时性能。

我想知道我是否可以在1.1中使用人脸检测器,而在项目中其他对时间要求不高的部分中使用2.2。所以我尝试了几件事,但收效甚微。
首先,我尝试在同一项目中使用两个版本,但遇到了一些无法解决的固有问题。
然后,我尝试使用1.1中的面部检测器制作一个dll,并在使用2.2的项目中使用此dll。这可以工作,但是奇怪的是,尽管我可以测量面部检测的速度增加(DLL中封装了opencv1.1),但是项目中的其余部分似乎已经变慢了。我不知道发生了什么,也许是opencv版本之间的一些内部冲突,死锁或类似的事情。

有人尝试过吗?
任何帮助,将不胜感激

马丁

最佳答案

它可以工作。不要将您的项目链接到v1.1 DLL。最好将OpenCV 1.1 DLL重命名为其他名称,并避免使用v2.2 DLL在系统上发生可能的冲突。

诀窍在于loading DLLs dinamically。使用 LoadLibrary() 将v1.1 DLL加载到您的应用程序中,并使用 GetProcAddress() 检索函数的地址(以便稍后在代码中调用它们)。

注意:您需要为代码中使用的OpenCV v1.1的每个功能调用一次GetProcAddress()

关于dll - OpenCV版本的有意混合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6914123/

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