Pages

Saturday, 7 November 2015

Create a Gray out or Blur images from the color image using OpenCv in c++

In this post we are going to see how to create a gray out image or blur image from the colored image, To do this we are going to use the Open CV software which is a open source, initially developed by Intel,now supporting by willow garage.Open CV is a c++ library which is used for real time as well as for offline image processing, and also it can process the Video's to handle objects present in the Videos as a Frames.Now we start the solution, First we have to download the OpenCV , then extract the Zip,After extraction you can find a 2GB file.In my application i am Extracting the OpenCV to the following Path.Open CV installed path :J:\opencvNow we have to setup the Environment and Visual Studio for our programming.Environment Setup1. Right Click Computer and select the properties.2. Click the Advanced System Settings3.In the Advanced Tab , select the Environment Variables

4. Now click the New button under the System variable section5. Give Variable name as : OPENCV_DIR6. Give Variable Value as your open cv installed directory , now here i am referencing the vc12 folderJ:\opencv\build\x86\vc127. Click Ok, Now System variable is added.

8. Next we have to add some value to the Path system variable,9. Select the Path System Variable and Click Edit.10. Add the following value at last . %OPENCV_DIR%\bin

System Environment variable's are added.Now we have to configure the visual studio solution.1. Create a new Win32 console Application in visual studio.2. Right click on the Project and click the properties3. Select the General option under the C/C++ category , in that section we have to give value in Additional Include Directories $(OPENCV_DIR)\..\..\Include

4. Above refers the include directory from OPEN CV path .5. Next click the General under the linker section6. Give the value for Additional Library Directories $(OPENCV_DIR)\lib

7.Select the Input item , in the Additional dependencies , drop down the control and select the Edit to add the libraries.in the Additional Independence text box add the following values, after adding we can see the values in evaluated valueopencv_ts300.libopencv_ts300d.libopencv_world300.lib

opencv_world300d.lib

8. Now click ok and start programming.Now we are going to load an image and process that image to get a Blur image , Gray out image and Canny image.To store the Image we have to use the Mat Type which is a n-dimensional array class. and also refer some base libraries

#include"opencv2\core\core.hpp"

#include"opencv2\highgui\highgui.hpp"

#include"opencv2\imgproc\imgproc.hpp"

Let we start the coding

// SampleConsole.cpp : Defines the entry point for the console application.

//

#include"stdafx.h"

#include"opencv2\core\core.hpp"

#include"opencv2\highgui\highgui.hpp"

#include"opencv2\imgproc\imgproc.hpp"

#include<iostream>

usingnamespace std;

usingnamespace cv;

int main()

{

Mat imageOriginal;

Mat imageGrayScale;

Mat imageBlurred;

Mat imageCanny;

imageOriginal = imread("E:/image.jpg");

if (imageOriginal.empty()) {

cout <<"Error in reading image";

return(0);

}

cvtColor(imageOriginal, imageGrayScale, CV_BGR2GRAY);

GaussianBlur(imageOriginal, imageBlurred, cv::Size(5, 5), 1, 5);

Canny(imageBlurred, imageCanny, 100, 200);

imshow("imgOriginal", imageOriginal);

imshow("imgGray", imageGrayScale);

imshow("canny", imageCanny);

imshow("blurred", imageBlurred);

//namedWindow("imgOriginal", CV_WINDOW_AUTOSIZE);

waitKey(0);

destroyWindow("imgOriginal");

destroyWindow("imgGray");

destroyWindow("canny");

destroyWindow("blurred");

return 0;

}

We have to create window to display the images

Output:

Original Image

Gray

Canny

Blurred

We can do lot of stuff using the OpenCV, tracking the objects or persons in Real Time Video or Images, Counting the number of persons in the video, Identify the persons in the video or image etc ...

From the post you can learn some basics about how to convert the images in to various modes using Open CV