如何抑制 OpenCV 警告

rah*_*210 5 c++ opencv

我正在尝试运行以下代码:

int main(int argc, char** argv )
{
    cv::redirectError(cvNulDevReport);
    std::string address(argv[1]);
    cv::VideoCapture cap(address); // open the camera
    if(!cap.isOpened())  // check if we succeeded
    {
        std::cerr<<"Error: Could not connect to camera.";
        return 0;
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

现在,我知道每当 argv[1] 引用的资源不存在时,我都会收到类似警告

warning: Error opening file (../../modules/highgui/src/cap_ffmpeg_impl.hpp:545)
Run Code Online (Sandbox Code Playgroud)

我想要的是从控制台输出中抑制这个和任何其他警告或错误,因为我想自己提供一个简单、更容易理解的错误。据我了解,对 cv::redirectError 的调用应该有效。我还尝试创建一个虚拟错误处理函数并使用指向该函数的指针调用 cv::redirectError ,但我仍然收到相同的警告。

查看警告指向的文件的源代码,我看到它是 CV_WARN 宏被替换,从同一个源文件来看,它要么是对 fprintf 的调用,要么什么也没有。

任何帮助表示赞赏。