在 OpenCV 中使用 Qt 控制面板功能报错 NULL 指针

Posted

技术标签:

【中文标题】在 OpenCV 中使用 Qt 控制面板功能报错 NULL 指针【英文标题】:Using Qt control panel function in OpenCV error NULL pointer 【发布时间】:2013-10-18 05:52:40 【问题描述】:

我尝试在几个网站上搜索我的问题,但仍然没有答案。 我的问题是这样的http://opencv-users.1802565.n2.nabble.com/Runtime-error-for-createTrackbar-in-control-panel-td7550203.html

我尝试使用 Qt 集成在 OpenCV 窗口中创建控制面板,如 OpenCV 文档示例所示:http://docs.opencv.org/modules/highgui/doc/qt_new_functions.html

通过这个函数,它应该在图像窗口(带有'imshow()')和控制面板(在其他窗口中,称为控制面板)之间分开。

但是,运行到代码'createTrackbar(num1, NULL, &val1, 255, NULL);'时它不起作用显示错误消息“空指针”。但是,如果我将参数更改为窗口名称,它就可以工作!。

我的代码是这样的:

#include <...opencv.hpp>
#include <...highgui.hpp>

char* num1 = "testTrack";
int val1 = 100;
const string mainwin = "show";

int main() 
  
        while (true)
        
            frame = capture();
            createTrackbar(num1, NULL, &val1 , 255, NULL);
            process_frame = image_processing(frame);
            imshow(mainwin, process_frame);

        // [Exit the system]
        if (condition) 
        break;
    

你有什么想法吗?

【问题讨论】:

createTrackbar 需要在其上创建一个窗口,您应该为其指定窗口名称.. 嗨@guneykayim,但在文档中,似乎我们可以声明为指向窗口的NULL指针?当我们希望“Trackbar”出现在“控制面板”而不是窗口时。这里有一些关于此的内容,docs.opencv.org/modules/highgui/doc/qt_new_functions.html 【参考方案1】:

我不知道这个答案是否有用,但是您需要使用空字符串而不是空指针。

尝试:

 createTrackbar(num1, "", &val1 , 255, NULL);

【讨论】:

由于这是一个很长的问题,感谢您的回答。

以上是关于在 OpenCV 中使用 Qt 控制面板功能报错 NULL 指针的主要内容,如果未能解决你的问题,请参考以下文章

opencv使用问题总结

qt+opencv环境配置

qt 调用 opencv 报错没有引用库

Qt 配置好OpenCV运行报错 The process was ended forcefully. exe Crashed.

使用 Qt 的程序,OpenCV 从 VS 启动时运行良好,但在使用 OpenCV 功能时运行可执行文件通常会崩溃

OpenCV 无法使用 Qt 打开相机