问题介绍
我在 Visual Studios 2010 中运行一个 opencv 项目并实现了 cuda 支持(有关我的设置的准确信息,请参阅 my previous question)。据我所知,所有 cuda 功能都运行良好 - 并且确实提高了图像处理的速度。
但是,我现在也想尝试通过将当前的 cv::VideoWriter 替换为 gpu::VideoWriter_GPU 函数来加快该项目中的视频写入功能。这样做的原因是 cv::VideoWriter 似乎以某种方式导致在调用 VideoWriter 的范围之外运行的进程速度减慢,从而导致 DirectShow 驱动程序中可用的图像被删除VideoCapture 函数,因此搞乱了我已经实现的算法。
问题
为了尝试解决这个问题,我现在用 VideoWriter_GPU 功能(和相应的语法)替换了 VideoWriter 调用,但是当我运行我的项目(在 Debug模式下编译和运行)时,出现以下错误- 消息(直接源自 gpu::VideoWriter_GPU 的调用):
OpenCv Error: The function/feature is not implemented (The called functionality
is disabled for current build or platform) in unknown function, file
c:slave\builds\wininstallermegapack\opencv\modules\gpu\src\precomp.hpp, line 131.
然后程序以
结束 code -529697949 (0xe06d7363)
我目前故意不包括我的任何代码,因为错误消息非常明显地源自对 gpu::VideoWriter_GPU 的调用,这让我认为这不是编码或语法问题。 (如果您觉得我的代码对于回答这个问题是必要的,请发表评论。
到目前为止我的步骤
我怀念理解这条消息的确切含义或如何解释它的天赋。我的 opencv v2.4.4 是否根本不支持我想要的...?此功能是否在我的 Windows 7、64 位系统上根本不起作用...?
我已经检查了我能找到的尽可能多的可用 google-hits(与此错误消息和搜索词的组合有关,例如“opencv、gpu、VideoWriter_GPU,当前版本已禁用”),但不明白问题是什么或如何解决它。
相应的头文件和错误信息也可以找到here .
This post和 this post建议错误消息试图告诉我 opencv 根本不提供使用我打算使用的函数或功能的选项。或者甚至根本不支持 cuda。但这完全违背了我的经验,因为我尝试使用的每一个 opencv gpu 函数似乎都运行良好。
问题
有人可以向我解释为什么这对我不起作用,更重要的是与我分享我应该怎么做才能使 VideoWriter_GPU 正常工作?
非常感谢!
最佳答案
也许这个链接可以让您了解问题所在:VideoReader_GPU not available, but built with NVCUVID? . 看来问题出在 CUDA_DISABLER 变量上。
关于c++ - 使用 VideoWriter_GPU 时如何解决 OpenCV 错误“函数未实现(调用的功能对于当前构建或平台已禁用)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16516937/