我正在尝试运行以下代码:
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;
}
...
}
现在,我知道每当argv [1]提到的资源不存在时,我都会收到类似
的警告warning: Error opening file (../../modules/highgui/src/cap_ffmpeg_impl.hpp:545)
我想要的是从控制台输出中抑制此错误和任何其他警告或错误,因为我想自己提供一个简单,更易于理解的错误。据我所知,调用cv :: redirectError应该有效。我还尝试制作一个虚拟错误处理函数,并使用指向该函数的指针调用cv :: redirectError,但我仍然得到相同的警告。
查看警告指向的文件的源代码,我看到它是替换的CV_WARN宏,从同一个源文件看,它是对fprintf的调用,或者什么也没有。
感谢任何帮助。