OpenCV leer, mostrar, guardar tutorial de imagen


prefacio

El nombre completo de OpenCV es Biblioteca de visión artificial de código abierto, que es una biblioteca de visión artificial multiplataforma. OpenCV es iniciado y participado en el desarrollo por Intel Corporation.Se publica bajo la licencia BSD y se puede utilizar de forma gratuita en los campos comerciales y de investigación. OpenCV se puede utilizar para desarrollar programas de procesamiento de imágenes en tiempo real, visión artificial y reconocimiento de patrones. La biblioteca también puede utilizar el IPP de Intel para el procesamiento acelerado.


1. Conceptos básicos

En este tutorial aprenderá cómo:
leer una imagen de un archivo (usando cv::imread)
mostrar una imagen en una ventana de OpenCV (usando cv::imshow)
escribir una imagen en un archivo (usando cv::imwrite)

2. Pasos de operación

1. Incluir el archivo de cabecera

#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>
using namespace cv;

En OpenCV 3 tenemos múltiples módulos. Cada uno es responsable de un área o enfoque diferente para el procesamiento de imágenes. Esto ya lo puedes observar en la estructura de las guías de usuario en estos mismos tutoriales. Antes de usar cualquiera de estos, primero debe incluir los archivos de encabezado donde se declaran los contenidos de cada módulo individual.

Casi siempre terminarás usando:

La parte central, donde se define el bloque de construcción básico de la biblioteca, es
el módulo imgcodecs, que proporciona funcionalidad de lectura y escritura.
El módulo highgui, ya que contiene la funcionalidad para mostrar imágenes en una ventana.
También incluimos iostreams para facilitar la línea de consola. salida y entrada.

Al usar el espacio de nombres cv; declarado a continuación, se puede acceder a las funciones de la biblioteca sin declarar explícitamente un espacio de nombres.

2. Lee la imagen

std::string image_path = samples::findFile("starry_night.jpg");
Mat img = imread(image_path, IMREAD_COLOR);
if(img.empty())//执行检查,图像加载正确。
{
    std::cout << "Could not read the image: " << image_path << std::endl;
    return 1;
}

Leemos la imagen "starry_night.jpg" de la muestra de OpenCV. Para hacer esto, llame a la función cv::imread para cargar la imagen usando la ruta del archivo especificada por el primer parámetro. El segundo parámetro es opcional y especifica el formato de imagen que queremos. esto podría ser:

IMREAD_COLOR carga una imagen en formato BGR de 8 bits. Este es el valor predeterminado utilizado aquí.
IMREAD_UNCHANGED carga la imagen tal cual (incluido el canal alfa, si está presente)
IMREAD_GRAYSCALE carga la imagen como una imagen de intensidad
Después de leer la imagen, los datos se almacenarán en un objeto cv::Mat.

3. Mostrar imagen

imshow("Display window", img);
int k = waitKey(0); // Wait for a keystroke in the window

Llame a la función cv::imshow para mostrar la imagen. El primer parámetro es el título de la ventana y el segundo parámetro es el objeto cv::Mat que se mostrará.

Como queremos que nuestra ventana se muestre antes de que el usuario presione una tecla (de lo contrario, el programa terminaría demasiado rápido), usamos la función cv::waitKey cuyo único parámetro es el tiempo de espera para la entrada del usuario (en milisegundos). Cero significa esperar para siempre. El valor de retorno es la tecla presionada.

4. Guarda la imagen

if(k == 's')
{
    imwrite("starry_night.png", img);
}

Finalmente, si la tecla presionada fue la tecla "s", la imagen se escribirá en el archivo. Para ello se llama a la función cv::imwrite que tiene como parámetros la ruta del archivo y el objeto cv::Mat.


Resumir

Lo anterior es el contenido del tutorial de lectura, visualización y guardado de imágenes de OpenCV.

Supongo que te gusta

Origin blog.csdn.net/szylight2022/article/details/128551057
Recomendado
Clasificación