加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 03:00:35 所属栏目:百科 来源:网络整理
导读:我是openCV的新手,最近获得了openCV 2.4.7的预编译版本,并且能够将其与visual studio 2010进行整合. 显然图书馆似乎工作正常,但是当我试图使用imshow显示图像时,显示窗口但不显示图像. { cv::Mat image = cv::imread("F:/office_Renzym/test3.jpg",CV_LOAD_I
我是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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读