c – openCV imshow不会在屏幕上呈现图像

前端之家收集整理的这篇文章主要介绍了c – openCV imshow不会在屏幕上呈现图像前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是openCV的新手,最近获得了openCV 2.4.7的预编译版本,并且能够将其与visual studio 2010进行整合.

显然图书馆似乎工作正常,但是当我试图使用imshow显示图像时,显示窗口但不显示图像.

  1. {
  2. cv::Mat image = cv::imread("F:/office_Renzym/test3.jpg",CV_LOAD_IMAGE_UNCHANGED);
  3.  
  4. if(image.empty())
  5. {
  6. cout<<"image not loaded";
  7. }
  8. else
  9. {
  10. cv::namedWindow( "test",CV_WINDOW_AUTOSIZE );
  11. cv::imshow("test",image);
  12. }
  13. }

任何帮助将高度赞赏.

解决方法

你必须有:
  1. cv::waitKey(0);

代替:

  1. system("pause");

后者不行. OpenCV需要泵送消息才能使窗口显示和更新,并且在waitKey函数内部是所有这样做的机制.

正如文档所述,waitKey仅在您打开了一个HighGUI窗口时有效,因此在代码中可能需要执行以下操作:

  1. cv::Mat image = cv::imread("F:/office_Renzym/test3.jpg",CV_LOAD_IMAGE_UNCHANGED);
  2.  
  3. if(image.empty())
  4. {
  5. cout<<"image not loaded";
  6. }
  7. else
  8. {
  9. cv::namedWindow( "test",CV_WINDOW_AUTOSIZE );
  10. cv::imshow("test",image);
  11. cv::waitKey(0);
  12. }

如果图像格式有问题,您可以尝试加载如下:

  1. cv::Mat image = cv::imread("F:/office_Renzym/test3.jpg",CV_LOAD_IMAGE_COLOR);

猜你在找的C&C++相关文章