The following is the explanation to the C++ code to blur a video in C++ using the tool OpenCV.
Things to know:
(1) The code will only compile in Linux environment.
(2) To run in windows, please use the file: ‘blur_video.o’ and run it in cmd. However if it does not run(problem in system architecture) then compile it in windows by making suitable and obvious changes to the code like: Use <iostream.h> in place of <iostream>.
(3) Compile command: g++ w blur_vid.cpp o blur_vid `pkgconfig libs opencv`
(4) Run command: ./blur_vid
(5) The video Bumpy.mp4 has to be in the same directory as the code.
Before you run the code, please make sure that you have OpenCV installed on your // system.
Code Snippets Explained:
#include "opencv2/highgui/highgui.hpp"
// highgui - an interface to video and image capturing.
#include <opencv2/imgproc/imgproc.hpp> // For dealing with images
#include <iostream>
// The header files for performing input and output.
using namespace cv;
// Namespace where all the C++ OpenCV functionality resides.
using namespace std;
// For input output operations.
int main()
{
VideoCapture cap("Bumpy.mp4");
// cap is the object of class video capture that tries to capture Bumpy.mp4
if ( !cap.isOpened() ) // isOpened() returns true if capturing has been initialized.
{
cout << "Cannot open the video file. \n";
return -1;
}
double fps = cap.get(CV_CAP_PROP_FPS); //get the frames per seconds of the video
// The function get is used to derive a property from the element.
// Example:
// CV_CAP_PROP_POS_MSEC : Current Video capture timestamp.
// CV_CAP_PROP_POS_FRAMES : Index of the next frame.
namedWindow("A_good_name",CV_WINDOW_AUTOSIZE); //create a window called "MyVideo"
// first argument: name of the window.
// second argument: flag- types:
// WINDOW_NORMAL : The user can resize the window.
// WINDOW_AUTOSIZE : The window size is automatically adjusted to
//fit the displayed image() ), and you cannot change the window size manually.
// WINDOW_OPENGL : The window will be created with OpenGL support.
while(1)
{
Mat frame;
// Mat object is a basic image container. frame is an object of Mat.
if (!cap.read(frame)) // if not success, break loop
// read() decodes and captures the next frame.
{
cout<<"\n Cannot read the video file. \n";
break;
}
blur(frame,frame,Size(10,10)); // To blur the image.
imshow("A_good_name", frame);
// first argument: name of the window.
// second argument: image to be shown(Mat object).
if(waitKey(30) == 27) // Wait for 'esc' key press to exit
{
break;
}
}
return 0;
}
// END OF PROGRAM
About the Author:
Aditya Prakash is an undergraduate student at Indian Institute
of Information Technology, Vadodara. He primarily codes in C++. The motto for him is: So far so good. He plays cricket, watches superhero movies, football and is a big fan of answering questions.
If you also wish to showcase your blog here, please see GBlog for guest blog writing on GeeksforGeeks.
Rated as one of the most sought after skills in the industry, own the basics of coding with our C++ STL Course and master the very concepts by intense problem-solving.
Recommended Posts:
- OpenCV C++ Program to blur an image
- OpenCV Python Program to blur an image
- Python OpenCV | cv2.blur() method
- OpenCV C++ Program to play a video
- OpenCV Python program for Vehicle detection in a Video frame
- Python | Play a video in reverse mode using OpenCV
- Python | Play a video using OpenCV
- Saving Operated Video from a webcam using OpenCV
- Python | Create video using multiple images using OpenCV
- OpenCV | Loading Video
- Python OpenCV: Capture Video from Camera
- Python - Process images of a video using OpenCV
- Python - Displaying real time FPS at which webcam/video file is processed using OpenCV
- OpenCV C++ Program to create a single colored blank image
- OpenCV C++ Program for coin detection
- Opencv Python program for Face Detection
- OpenCV Python Program to analyze an image using Histogram
- Python Program to detect the edges of an image using OpenCV | Sobel edge detection method
- OpenCV C++ Program for Face Detection
- Python | Program to extract frames using OpenCV

