openCV imshow not rendering image on screen

后端 未结 3 1649
小鲜肉
小鲜肉 2020-12-10 02:02

I am new to openCV, have recently obtained a pre-compiled version of openCV 2.4.7 and was successfully able to integrate it with visual studio 2010.

Apparently libr

3条回答
  •  抹茶落季
    2020-12-10 02:42

    You must have:

    cv::waitKey(0);
    

    instead of:

    system("pause");
    

    The latter just doesn't work. OpenCV needs to pump messages to get the window displayed and updated, and inside that waitKey function is all of the mechanism to do so.

    As the documentation says, waitKey only works if you have a HighGUI window open, so in your code, you probably need to do this:

    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);
    }   
    

    In case there's a problem with the image format, you might try loading like this:

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

提交回复
热议问题