cv :: namedWindow()在被调用时挂起

时间:2013-03-13 14:57:03

标签: c++ c opencv

我使用Netbeans C ++创建一个小项目。我有这个简单的代码:

int main(int argc, char** argv) {
    cv::namedWindow("Output");

    // Create Receiver and Decoder on another thread
    boost::thread t1 = boost::thread(startReceiver); // Details irrelevant
    boost::thread t2 = boost::thread(startDecoder);  // Details irrelevant

    std::cout << "Waiting..." << std::endl;

    t2.join();
    t1.join();

    std::cout << "Finished." << std::endl;

    return 0;
}

程序挂起cv::namedWindow("Output");。我使用GDB暂停了程序,这是调用堆栈:

poll ()
?? ()
xcb_connect_to_fd ()
xcb_connect_to_display_with_auth_info ()
_XConnectXCB ()
XOpenDisplay ()
gdk_display_open ()
gdk_display_open_default_libgtk_only ()
gtk_init_check ()
gtk_init ()
cvInitSystem ()
cvNamedWindow ()
main (argc=1, argv=0x7fffffffe4c8)

这是对某事的投票,我不知道...有什么想法吗?

1 个答案:

答案 0 :(得分:3)

这似乎是与GTK相关的问题。尝试使用标准窗口:

cv::namedWindow("Output", CV_WINDOW_NORMAL|CV_GUI_NORMAL);