How to save an image in OpenCV using C++
In this tutorial, we will learn how to save an image in OpenCV using C++.
To begin with, first, we should understand what is OpenCV. It is an open-source library used for image processing and various computer vision algorithms. It has a large number of inbuilt functions which are used to implement various image processing algorithms, which in turn makes advanced applications easy to use and more efficient.
OpenCV consists of a matrix class called Mat, with the help of this we store the image in the form of a matrix and then read the image using imread() function.
imwrite() function to save an image to a specified destination
OpenCV provides with imwrite() function to save an image to a specified destination. After we have read the image from the location we will use imwrite() function to save the image.
Code for saving the image.
//including the required header files
#include<iostream>
#include <highlevelmonitorconfigurationapi.h>
#include <opencv2\opencv.hpp>
#include <opencv2\highgui\highgui.hpp>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
// Reading the image file from the location
//creating a matrix
Mat img = imread("C:/codespeedy/build/Debug/image.jpg");
//if image is not present
if (img.empty()) {
cout << "Cannot open the image or image is not present" << endl;
cin.get();
return -1;
}
// writing the image to the location where we want to save the image
//using imwrite function to save the image to the desired location
bool check = imwrite("C:/new_path/image.jpg", img);
if (check == false) {
cout << "Saving the image, FAILED" << endl;
cin.get();
return -1;
}
cout << " Image saved successfully " << endl;
//Image has been saved to the desired location
return 0;
}
Code Explanation-
Mat img = imread("C:/codespeedy/build/Debug/image.jpg");1) Here we are reading the image from the given location.
bool check = imwrite("C:/new_path/image.jpg", img);
if (check == false) {
cout << "Saving the image, FAILED" << endl;
cin.get();
return -1;
}2. After reading the image which is stored using Mat class we are saving the image using imwrite() function. So, “image.jpg” will be saved to the“new_path” folder on the storage device. Also, if the image does not get saved successfully an error will be thrown.
cout << " Image saved successfully " << endl; //Image has been saved to the desired location
3. If the image gets saved successfully, the message –“Image saved successfully” will be shown.
Output:
Image saved sucessfully
Now, we have learned to save the image in OpenCV using C++.
Also read: How to Detect and Decode QR Code from an image in C++ with OpenCV
Very Informative. Thanks for writing this article.