Leer y mostrar una imagen en OpenCV usando C++

En este artículo, discutiremos cómo abrir una imagen usando OpenCV (Open Source Computer Vision) en C++ . A diferencia de Python, no se requieren bibliotecas adicionales en C++. OpenCV C++ viene con este increíble contenedor de imágenes Mat que maneja todo por nosotros. El único cambio visto desde un programa C++ estándar es la inclusión del espacio de nombres cv que contiene todas las funciones, clases y estructuras de datos de OpenCV . Se requieren las siguientes funciones para leer y mostrar una imagen en OPenCV:

imread() : Esta función se usa para leer imágenes y toma los siguientes 2 argumentos:

  • filename: La dirección completa de la imagen a cargar es de tipo string. Por ejemplo: “C:\usuarios\descargas\muestra.jpg”
  • flag: Es un argumento opcional y determina el modo en que se lee la imagen y puede tomar varios valores como
    • IMREAD_COLOR: el modo predeterminado en el que se carga la imagen si no se proporcionan argumentos. Carga la imagen en formato BGR.
    • IMREAD_UNCHANGED: Carga la imagen en su forma original. También incluye el canal alfa si está presente dentro de la imagen.
    • IMREAD_GRAYSCALE: Carga la imagen como una imagen en escala de grises.

Salida: devuelve la imagen como un objeto Mat

Uso:

// Leyendo el archivo de imagen
 Mat image = imread(“C:/users/downloads/default.jpg”, IMREAD_grayscale); 

imshow() : esta función se usa para mostrar imágenes y toma los siguientes dos argumentos:

  • winname o nombre de la ventana: Este es el título de la ventana que muestra la imagen y es de tipo string.
  • imagen: Esta es la imagen que se mostrará. Su tipo es Mat , el contenedor de imágenes de C++.

Salida: Cree una ventana que muestre la imagen.

Uso:

// Mostrar nuestra imagen dentro de la ventana creada
imshow(“Nombre de la ventana”, imagen);

Mat::empty(): Esto nos ayuda en el manejo de errores en caso de que la función imread() no pueda cargar la imagen o la imagen no existe en la ruta especificada y nos dice si el contenedor Mat está vacío o no.

WaitKey(): esta función ayuda a mostrar imágenes durante más tiempo al mantener la ventana abierta hasta que el usuario presiona una tecla.

A continuación se muestra el programa para el mismo:

C++

// C++ program for the above approach
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
  
// Driver code
int main(int argc, char** argv)
{
    // Read the image file as
    // imread("default.jpg");
    Mat image = imread("Enter the Address"
                       "of Input Image",
                       IMREAD_GRAYSCALE);
  
    // Error Handling
    if (image.empty()) {
        cout << "Image File "
             << "Not Found" << endl;
  
        // wait for any key press
        cin.get();
        return -1;
    }
  
    // Show Image inside a window with
    // the name provided
    imshow("Window Name", image);
  
    // Wait for any keystroke
    waitKey(0);
    return 0;
}

Imagen de entrada:

Imagen de salida:

Publicación traducida automáticamente

Artículo escrito por Captain_JackSparrow y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *