Create a C++ application that processes images using OpenCV library. The application should read an image file, apply a Gaussian blur filter, detect edges using the Canny edge detection algorithm, and save the processed image to a new file.
PLAINFORMAT
#include <iostream>
#include <opencv2/opencv.hpp>

int main(int argc, char** argv) {
    if (argc != 3) {
        std::cout << "Usage: image_processing input_image output_image" << std::endl;
        return -1;
    }

    // Read the input image
    cv::Mat inputImage = cv::imread(argv[1], cv::IMREAD_COLOR);
    if (!inputImage.data) {
        std::cout << "Error: Could not open or find the input image." << std::endl;
        return -1;
    }

    // Apply Gaussian blur filter
    cv::Mat blurredImage;
    cv::GaussianBlur(inputImage, blurredImage, cv::Size(5, 5), 0);

    // Detect edges using Canny edge detection algorithm
    cv::Mat edgesImage;
    cv::Canny(blurredImage, edgesImage, 100, 200);

    // Save the processed image to a new file
    cv::imwrite(argv[2], edgesImage);

    std::cout << "Image processing completed successfully!" << std::endl;

    return 0;
}