Tutorial 2 - Load and Display Image OpenCV C++

Today I'm going to show you how to display an image using opencv.


Let's display an image using opencv in visual studio. Our previous tutorial was how to setup opencv for visual studio

  • First open your visual studio and create a new new project. 
  • Following examples will guide you on image loading.
Example 1:

=======================================================================

#include "opencv2/highgui/highgui.hpp"
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, const char** argv)
{
       Mat Image = imread("C:/Users/hashan/Desktop/hashan.JPG", CV_LOAD_IMAGE_UNCHANGED);
       //Mat Image = imread("hashan.JPG", CV_LOAD_IMAGE_UNCHANGED);

       if (Image.empty())
       {
              cout << "Erro" << endl;
             
              return 0;
       }

       namedWindow("NewWindow", CV_WINDOW_NORMAL);
       imshow("NewWindow", Image);

       waitKey(0); 

       destroyWindow("MyWindow");

       return 0;
}

=======================================================================



Explanation


We create a matrix called “Image”.  Find the image where it locates ( by given address) and store the image to the matrix we created.

If your image location is as same as the project location, just give the image name.

·         //Mat Image = imread("hashan.JPG", CV_LOAD_IMAGE_UNCHANGED);



You can load an image in five different ways.


Choose the image type as your requirement. The followings will guide you to choose the image type.
CV_LOAD_IMAGE_UNCHANGED 
Loads the image as is
CV_LOAD_IMAGE_GRAYSCALE 
Loads the image in grayscale
CV_LOAD_IMAGE_COLOR 
Loads the image in RBG format
CV_LOAD_IMAGE_ANYDEPTH 
Loads image in 16-bit/32-bit when the input has the corresponding depth, otherwise convert it to 8-bit.

CV_LOAD_IMAGE_ANYCOLOR 
The image is read in any possible color format.



·         if (Image.empty())
Checking whether image is successfully loaded or not

·         namedWindow("NewWindow", CV_WINDOW_NORMAL);

Create a new window which named NewWindow


 



CV_WINDOW_NORMAL 
Can resize window
CV_WINDOW_AUTOSIZE
Cant resize window
CV_WINDOW_FREERATIO 
Adjusts the image with no respect to its ratio
CV_WINDOW_KEEPRATIO
Keeps the image ratio.


·        imshow("NewWindow", Image);
Display the stored image
·         waitKey(0); 

Wait infinite time or wait until press the keyboard button.

Note
waitKey(x);
when x > 0  then   x milliseconds time wait.
When x <=0 then wait infinite time or wait until press the keyboard button. 

·        destroyWindow("MyWindow");
Distroy the window which name is “Mywindow”




Example 2


#include "opencv2/highgui/highgui.hpp"
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char** argv)
{
       Mat Image = imread(argv[1], CV_LOAD_IMAGE_COLOR); // read the Image
                                                                                                                                                  
                                                                                                                          
       //Mat Image = imread("hashan.JPG", CV_LOAD_IMAGE_UNCHANGED);

       if (!Image.data)   // check for invalid image
       {
              cout << "Erro" << endl;
             
              return 0;
       }

       namedWindow("NewWindow");
       imshow("NewWindow", Image);

       waitKey(0); 

       destroyWindow("MyWindow");

       return 0;
}




Before run this code you need to follow the below steps.
·         First Right click the on project and go to properties.

 

Then go to Debugging à Command Arguments and give your image location and image name as follows.

 

Example 3

#include "opencv2/highgui/highgui.hpp"
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char** argv)
{
      
       IplImage *Image= cvLoadImage("C:/Users/hashan/Desktop/hashan.jpg", CV_LOAD_IMAGE_COLOR); //load image

       cvNamedWindow("NewWindow"); // create a new window
       cvShowImage("NewWindow", Image);  // display the image

       waitKey(0); 

       destroyWindow("MyWindow");

       return 0;
}

the video demo is shown in below video.



  • Thank you very much for reading this tutorial. Our next tutorial is about how to develop python using visual studio
  • If you have problems regarding this tutorial feel free to make a comment below or contact us by sending message through our facebook page or by sending email to this address progtpoint@gmail.com
  • Follow us on facebook and twitter also subcribe us youtube

2 comments:

  1. These day I follow your Image Processing Tutorials. It explained step by step very clearly using both article and video demo. I think this is very helpful for beginners and also me. I am very thankful. This is a great work and keep it up...!!!

    ReplyDelete
    Replies
    1. Thank you very much for your feedback. :) We will upload more videos on every Saturday on our youtube channel. Stay with us.

      Delete

Social