opencv(1) OpenCV 图像加载和显示

  • 加载图像(使用cv :: imread)
  • 创建一个名为OpenCV的窗口(使用cv :: namedWindow)
  • 在OpenCV窗口中显示图像(使用cv :: imshow)
  • #include 
    #include 
    #include 
    #include 
    #include 
    using namespace cv;
    using namespace std;
    int main( int argc, char** argv )
    {
        String imageName( "../data/HappyFish.jpg" ); // by default
        if( argc > 1)
        {
            imageName = argv[1];
        }
        Mat image;
        image = imread( imageName, IMREAD_COLOR ); // Read the file
        if( image.empty() )                      // Check for invalid input
        {
            cout <<  "Could not open or find the image" << std::endl ;
            return -1;
        }
        namedWindow( "Display window", WINDOW_AUTOSIZE ); // Create a window for display.
        imshow( "Display window", image );                // Show our image inside it.
        waitKey(0); // Wait for a keystroke in the window
        return 0;
    }

    现在我们调用加载第一个参数(argv [1])指定的映像名称的cv :: imread函数。第二个参数指定了我们想要的图像的格式。这可能是:

  • IMREAD_UNCHANGED(<0)按原样加载图像(包括alpha通道(如果存在)
  • IMREAD_GRAYSCALE(0)将图像作为强度加载
  • IMREAD_COLOR(> 0)以RGB格式加载图像
image = imread( imageName, IMREAD_COLOR ); // Read the file

检查图像数据是否正确加载后,我们要显示图像,因此我们使用cv :: namedWindow函数创建一个OpenCV窗口。创建OpenCV后,它们将自动进行管理。为此,您需要指定其名称,以及如何从大小角度处理其包含的图像的更改。可能是:

  • 如果不使用Qt后端,WINDOW_AUTOSIZE是唯一支持的。在这种情况下,窗口大小将占据显示的图像的大小。不允许调整大小!
  • WINDOW_NORMAL在Qt你可以使用它来允许窗口调整大小。图像将根据当前窗口大小自行调整大小。通过使用| 操作员还需要指定是否希望图像保持其宽高比(WINDOW_KEEPRATIO)(WINDOW_FREERATIO)。
  •  namedWindow( "Display window", WINDOW_AUTOSIZE ); // Create a window for display.

    最后,要使用新的图像更新OpenCV窗口的内容,请使用cv :: imshow函数。指定要更新的OpenCV窗口名称和此操作期间要使用的映像:

     imshow( "Display window", image );                // Show our image inside it.

    因为我们希望我们的窗口被显示直到用户按下一个键(否则程序会结束太快),所以我们使用cv :: waitKey函数,其唯一的参数是等待用户输入需要多长时间毫秒)。零意味着永远等待。

    waitKey(0); // Wait for a keystroke in the window

你可能感兴趣的:(opencv,opencv,计算机视觉,图像处理)