我是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);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。