在使用opencv中ClassifierCascade类时,无法加载级联分类器,相对路径和绝对路径都无法加载成功,why??

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在使用opencv中ClassifierCascade类时,无法加载级联分类器,相对路径和绝对路径都无法加载成功,why??相关的知识,希望对你有一定的参考价值。

这是定义语句:CascadeClassifier face_cascade;
String face_cascade_name = "G:\\opencv\\data\\haarcascades\\haarcascade_frontalface_alt.xml";
加载语句 if( !face_cascade.load( face_cascade_name ) ) printf("--(!)Error loading\n"); return -1; ;

是这样,我之前也遇到了这个问题,opencv3.0beta版本不太稳定,用它的话容易即使路径对了,也会报错。在opencv下路径的表示方式与windows不一样,斜杠与windos正好相反 参考技术A

用了opencv4.5.5也同样的问题,我是 win11+vs+opencv 组合

翻遍了论坛和搜索结果,最终在这里解决了,引用@y411328329的答案:

    目录需要用反斜杠,和windows不一样: D:/opencv/sources/data/haarcascades/haarcascade_frontalcatface.xml

    需要使用release编译,注意修改成release之后include和lib也需要重配

参考技术B 1. string应该是小写s。
2. 请手动把那个xml文件复制到其他更简单的路径下,起个更简单的名字,比如D:\data\hfa.xml,然后再在程序里用绝对路径调用之。

我是不是需要使用 Gstreamer 构建 OpenCV 才能在 OpenCV 中使用 Gstreamer

【中文标题】我是不是需要使用 Gstreamer 构建 OpenCV 才能在 OpenCV 中使用 Gstreamer【英文标题】:Do I need OpenCV build with Gstreamer to use Gstreamer in OpenCV我是否需要使用 Gstreamer 构建 OpenCV 才能在 OpenCV 中使用 Gstreamer 【发布时间】:2020-02-28 06:44:32 【问题描述】:

我正在尝试通过 RTSP 发送 cv::Mat 帧。 我使用此gst-rtsp-server 代码在 Visual Studio 中使用 GStreamer 创建了一个工作项目。我可以使用 VLC 接收 GStreamer 的测试视频。

现在我正在尝试通过 OpenCV 发送视频,方法是使用 cv::VideoCapture 逐帧读取视频

但是我的 OpenCV 是在没有 GStreamer 支持的情况下构建的?如何使用 GStreamer 库通过 RTSP 发送 Opencv 帧?

【问题讨论】:

【参考方案1】:

要使用带有 gstreamer 后端的 OpenCV 捕获帧,您需要使用 Gstreamer 构建 OpenCV。之后,您需要将您的 apiPreference cv2.CAP_GSTREAMER 作为第二个参数传递给 cv::VideoCapture()。例如:cv::VideoCapture(filename,cv::CAP_GSTREAMER)

【讨论】:

我正在使用 FFmpeg 捕获帧。我只想使用 GStreamer 发送它。我可以在不使用 GStreamer 构建 openCV 的情况下做到这一点吗? 不,我不这么认为。您需要使用 GStreamer 进行构建。 好的。是否有任何使用 gstreamer for Windows、Visual Studio 构建 opencv 的好教程?我试过这个,但它给了我错误。 medium.com/@galaktyk01/…

以上是关于在使用opencv中ClassifierCascade类时,无法加载级联分类器,相对路径和绝对路径都无法加载成功,why??的主要内容,如果未能解决你的问题,请参考以下文章

使用 opencv_contrib 在 Mac OS 终端中运行 OpenCV

如何在 Python 中使用 OpenCV?

在 pybind11 中使用 opencv 类型

在android中使用opencv捕获视频帧

如何在示例中使用opencv的calibration.cpp(ubuntu opencv 2.4.12)

使用 openCV 在 QT 中进行图像处理