Dibuja un rectángulo usando OpenCV en C++

En este artículo, la tarea es dibujar un rectángulo usando OpenCV en C++ . Se utilizará la función rectángulo() de la biblioteca OpenCV C++ .

Sintaxis:

rectángulo (img, pt1, pt2, color, grosor, tipo de línea, cambio)

Parámetros:

  • imagen: Es la imagen sobre la que se va a dibujar el rectángulo.
  • start(pt1): Es la esquina superior izquierda del rectángulo representado como la tupla de dos coordenadas, es decir, (coordenada x, coordenada y).
  • end(pt2): Es la esquina inferior derecha del rectángulo representado como la tupla de dos coordenadas, es decir, (coordenada x, coordenada y).
  • color: Es el color del borde del rectángulo a dibujar. Una tupla que representa 3 colores (B, G, R) , es decir, (Azul, Verde, Rojo).
  • grosor: Es el grosor del borde del rectángulo en px . El grosor de -1 px llenará la forma del rectángulo con el color especificado.
  • lineType: Tipo de línea. Hay 3 tipos de línea:
    • LINE_4: La línea se dibujó utilizando 4 algoritmos de Bresenham conectados.
    • LINE_8: La línea se dibujó usando 8 algoritmos de Bresenham conectados.
    • LINE_AA: Dibuja líneas suavizadas formadas mediante el uso de un filtro gaussiano .
  • shift: El número de bits fraccionarios en las coordenadas del punto.

Valor devuelto: Devuelve una imagen.

Programa 1:

A continuación se muestra el programa C++ que demuestra cómo dibujar un rectángulo sobre una imagen de fondo autoformada:

C++

// C++ program to demonstrate rectangle
// over a self-formed background image
  
#include <iostream>
#include <opencv2/core/core.hpp>
  
// Drawing shapes
#include <opencv2/imgproc.hpp>
  
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
using namespace std;
  
// Driver Code
int main(int argc, char** argv)
{
    // Creating a blank image with
    // white background
    Mat image(500, 500, CV_8UC3,
              Scalar(255, 255, 255));
  
    // Check if the image is created
    // successfully or not
    if (!image.data) {
        std::cout << "Could not open or "
                  << "find the image\n";
  
        return 0;
    }
  
    // Top Left Corner
    Point p1(30, 30);
  
    // Bottom Right Corner
    Point p2(255, 255);
  
    int thickness = 2;
  
    // Drawing the Rectangle
    rectangle(image, p1, p2,
              Scalar(255, 0, 0),
              thickness, LINE_8);
  
    // Show our image inside a window
    imshow("Output", image);
    waitKey(0);
  
    return 0;
}

Producción:

Programa 2:

A continuación se muestra el programa C++ que demuestra cómo dibujar un rectángulo sobre la imagen del logotipo de GFG:

C++

// C++ program to demonstrate rectangle
// over a loaded image of GFG logo
  
#include <iostream>
#include <opencv2/core/core.hpp>
  
// Drawing shapes
#include <opencv2/imgproc.hpp>
  
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
using namespace std;
  
// Driver Code
int main(int argc, char** argv)
{
    // Reading the Image
    Mat image = imread("C:/Users/harsh/Downloads/geeks.png",
                       IMREAD_COLOR);
  
    // Check if the image is created
    // successfully or not
    if (!image.data) {
        std::cout << "Could not open or "
                  << "find the image\n";
        return 0;
    }
  
    // Top Left Coordinates
    Point p1(30, 70);
  
    // Bottom Right Coordinates
    Point p2(115, 155);
  
    int thickness = 2;
  
    // Drawing the Rectangle
    rectangle(image, p1, p2,
              Scalar(255, 0, 0),
              thickness, LINE_8);
  
    // Show our image inside a window
    imshow("Output", image);
    waitKey(0);
  
    return 0;
}

Producción:

Programa 3:

A continuación se muestra el programa C++ que demuestra cómo dibujar un rectángulo lleno de color:

C++

// C++ program to demonstrate rectangle
// filled with any color
  
#include <iostream>
#include <opencv2/core/core.hpp>
  
// Drawing shapes
#include <opencv2/imgproc.hpp>
  
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
using namespace std;
  
// Driver Code
int main(int argc, char** argv)
{
    // Creating a blank image with
    // white background
    Mat image(500, 500, CV_8UC3,
              Scalar(255, 255, 255));
  
    // Check if the image is created
    // successfully or not
    if (!image.data) {
        std::cout << "Could not open or "
                  << "find the image\n";
  
        return 0;
    }
  
    // Top Left Corner
    Point p1(30, 30);
  
    // Bottom Right Corner
    Point p2(255, 255);
  
    int thickness = -1;
  
    // Drawing the Rectangle
    rectangle(image, p1, p2,
              Scalar(0, 255, 0),
              thickness, LINE_8);
  
    // Show our image inside a window
    imshow("Output", image);
    waitKey(0);
  
    return 0;
}

Producción:

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 *