1. 程式人生 > >imshow視窗不顯示

imshow視窗不顯示

1.問題描述

  我在一次使用OpenCV3.2.0(Win10 VS2015 Debug x64 )的過程中,發現imshow函式呼叫視窗不顯示(waitKey函式已新增)。
  如圖1所示,只有工作列圖示,不顯示視窗。
圖1 無視窗顯示

圖1 無視窗顯示

2.問題分析

  可能是函式呼叫問題,問題最簡化(使用最簡單的表達方式逐步接近問題)。
  這裡是函式命名、引數最簡化。

3.問題解決

  這裡是imshow函式的視窗名稱字元之間不能有空格。
圖2 正常視窗顯示

圖2 正常視窗顯示

4.程式碼對比

修改前:

#include<opencv2\opencv.hpp>
using namespace cv; int main(void) { //para Mat srcImg; string path, strWin; //init path = "leaf.jpg"; strWin = "SOURCE IMAGE"; //read srcImg = imread(path, CV_LOAD_IMAGE_UNCHANGED); if (srcImg.empty()) { return -1; } //display namedWindow(strWin, CV_WINDOW_NORMAL); imshow(strWin, srcImg); waitKey(0
); return 0; }

修改後:

#include<opencv2\opencv.hpp>

using namespace cv;

int main(void)
{
    //para
    Mat srcImg;
    string path, strWin;
    //init
    path = "leaf.jpg";
    strWin = "SOURCE_IMAGE";
    //read
    srcImg = imread(path, CV_LOAD_IMAGE_UNCHANGED);

    if (srcImg.empty())
    {
        return
-1; } //display namedWindow(strWin, CV_WINDOW_NORMAL); imshow(strWin, srcImg); waitKey(0); return 0; }