OpenCV
3.3.0-dev
Open Source Computer Vision
|
In this tutorial you will learn how to:
Download the source code from here.
In OpenCV 2 we have multiple modules. Each one takes care of a different area or approach towards image processing. You could already observe this in the structure of the user guide of these tutorials itself. Before you use any of them you first need to include the header files where the content of each individual module is declared.
You'll almost always end up using the:
We also include the iostream to facilitate console line output and input. To avoid data structure and function name conflicts with other libraries, OpenCV has its own namespace: cv. To avoid the need appending prior each of these the cv:: keyword you can import the namespace in the whole file by using the lines:
This is true for the STL library too (used for console I/O). Now, let's analyze the main function. We start up assuring that we acquire a valid image name argument from the command line. Otherwise take a picture by default: "HappyFish.jpg".
Then create a Mat object that will store the data of the loaded image.
Now we call the cv::imread function which loads the image name specified by the first argument (argv[1]). The second argument specifies the format in what we want the image. This may be:
After checking that the image data was loaded correctly, we want to display our image, so we create an OpenCV window using the cv::namedWindow function. These are automatically managed by OpenCV once you create them. For this you need to specify its name and how it should handle the change of the image it contains from a size point of view. It may be:
Finally, to update the content of the OpenCV window with a new image use the cv::imshow function. Specify the OpenCV window name to update and the image to use during this operation:
Because we want our window to be displayed until the user presses a key (otherwise the program would end far too quickly), we use the cv::waitKey function whose only parameter is just how long should it wait for a user input (measured in milliseconds). Zero means to wait forever.
You should get a nice window as the one shown below: