c++ opencv image not display inside the boost thread

后端 未结 1 1319
暗喜
暗喜 2021-01-26 15:06

Im developing c++ application there i used boost, opencv . and create the boost thread and call the function inside that thread. the funct

1条回答
  •  走了就别回头了
    2021-01-26 15:18

    please try this version of your code and tell us whether it works or not

    boost::thread *thread_reconstruct; 
    
    int main( int argc, const char** argv )
    {
    
        cv::namedWindow("Right View"); // this will create a window. Sometimes new windows can't be created in another thread, so we do it here in the main function.
    
        thread_reconstruct = new boost::thread(  &FuncCreate  );
    
        thread_reconstruct->join(); // this will make your program wait here until the thread has finished processing. Otherwise your program would exit directly.
    
        return 0;
    
    }
    
    void FuncCreate()
    {
        while (true)
        {
          compute_left_descriptors(g_nameRootFolder.c_str());
        }
    }
    
    void compute_left_descriptors(const char* name_dir)
    {
    
        char namebuf[1024];
    
    
            sprintf(namebuf, "%s/Left/%04d_left.bmp", name_dir, 1);
    
        // Program ended with exit code: 0 programe exit from here.
        Mat input_left = imread(namebuf, CV_LOAD_IMAGE_COLOR);
    
        if(input_left.empty()) printf("could not load image\n");
    
        imshow("Right View", input_left);
        waitKey(0); // if you dont want to press a key before each new image, you can change this to waitKey(30);
    
        printf("done\n");
    }
    

    0 讨论(0)
提交回复
热议问题