我是openCV的新手,最近获得了openCV 2.4.7的预编译版本,并成功将其与visual studio 2010集成。
显然库似乎工作正常,但是当我尝试使用 imshow 显示图像时,它会显示窗口但不会在其中显示图像。
{
cv::Mat image = cv::imread("F:/office_Renzym/test3.jpg",CV_LOAD_IMAGE_UNCHANGED);
if(image.empty())
{
cout<<"image not loaded";
}
else
{
cv::namedWindow( "test", CV_WINDOW_AUTOSIZE );
cv::imshow("test",image);
}
}
任何帮助将不胜感激。
最佳答案
你必须有:
cv::waitKey(0);
代替:
system("pause");
后者只是行不通。 OpenCV 需要泵送消息以显示和更新窗口,而 waitKey
函数内部就是这样做的所有机制。
正如文档所述,waitKey
仅在您打开 HighGUI 窗口时才有效,因此在您的代码中,您可能需要这样做:
cv::Mat image = cv::imread("F:/office_Renzym/test3.jpg",CV_LOAD_IMAGE_UNCHANGED);
if(image.empty())
{
cout<<"image not loaded";
}
else
{
cv::namedWindow( "test", CV_WINDOW_AUTOSIZE );
cv::imshow("test",image);
cv::waitKey(0);
}
如果图片格式有问题,你可以试试这样加载:
cv::Mat image = cv::imread("F:/office_Renzym/test3.jpg",CV_LOAD_IMAGE_COLOR);
关于c++ - openCV imshow不在屏幕上渲染图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20561430/