【发布时间】:2015-05-17 10:58:28
【问题描述】:
我正在开发c++ 应用程序,我使用了boost,opencv。并创建 boost 线程并调用该线程内的函数。该函数有opencv imread(我使用cvLoadimage检查但我得到了相同的结果)但程序无法完成并且程序退出。
请在下面找到我使用的代码
boost::thread *thread_reconstruct;
int main( int argc, const char** argv )
{
thread_reconstruct = new boost::thread( &FuncCreate );
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);
imshow("Right View", input_left);
waitKey(0);
printf("done\n");
}
【问题讨论】:
-
你的标题说你想显示图片但你没有使用imshow?
-
@Micka 对不起,我弄错了。现在我把它。仍然遇到同样的问题。
-
@berak 我已经检查了 waitkey(0) 以应用转换。但结果是相同的程序从 Mat input_left = imread(namebuf, CV_LOAD_IMAGE_COLOR) 退出;线 。有什么想法吗?
-
请添加 cv::namedWindow ("右视图");在创建线程之前的主函数中,您必须在主函数中添加一个障碍,例如 boost join threads 或...
-
@Micka 你能解释一下吗?谢谢。
标签: c++ multithreading opencv boost