CV abierto | Manos en contraste de imagen

Contraste significa cambiar el valor de todos y cada uno de los píxeles de la imagen. Este cambio se puede realizar multiplicando o dividiendo los valores de píxel de la imagen por cualquier constante. Este artículo brinda un conocimiento profundo sobre cómo se puede cambiar el contraste de una imagen usando OpenCV. 
 

Input : 
Original Image

Output : 
-> Original Image
-> Image with contrast increased by 4
-> Image with contrast increased by 2
-> Image with contrast decreased by .5
-> Image with contrast decreased by .25

Código: código CPP para aumentar o disminuir el contraste de una imagen 
 

CPP

// c++ code explaining how to
// increase or decrease the
// contrast of an image
 
// loading library files
#include <highlevelmonitorconfigurationapi.h>
#include <opencv2\highgui\highgui.hpp>
#include <opencv2\opencv.hpp>
 
using namespace cv;
using namespace std;
 
int main(int argc, char** argv)
{
    // Loading the Image File under testing
    Mat image = imread("C:\\Users\\dell\\Desktop\\abc.jpg");
 
    // Check whether the image is present or not
    if (image.empty()) {
        cout << "Could not open or find the image" << endl;
 
        // waiting for any  key to be pressed
        return -1;
    }
 
    // Declaring the Contrast instances
 
    // increasing the contrast level by 100%
    Mat imageContrastHigh2;
    image.convertTo(imageContrastHigh2, -1, 2, 0);
 
    // increasing the contrast level by 200%
    Mat imageContrastHigh4;
    image.convertTo(imageContrastHigh4, -1, 4, 0);
 
    // decreasing the contrast level by 50%
    Mat imageContrastLow0_5;
    image.convertTo(imageContrastLow0_5, -1, 0.5, 0);
 
    // decreasing the contrast level by 75%
    Mat imageContrastLow0_25;
    image.convertTo(imageContrastLow0_25, -1, 0.25, 0);
 
    // Declaring the windows
    // for images belonging to different contrast level
    String windowNameOriginalImage = "Original Image";
    String windowNameContrastHigh2 = "Contrast Increased by 2";
    String windowNameContrastHigh4 = "Contrast Increased by 4";
    String windowNameContrastLow0_5 = "Contrast Decreased by 0.5";
    String windowNameContrastLow0_25 = "Contrast Decreased by 0.25";
 
    // Running the window instance
    // and opening it
    namedWindow(windowNameOriginalImage, WINDOW_NORMAL);
    namedWindow(windowNameContrastHigh2, WINDOW_NORMAL);
    namedWindow(windowNameContrastHigh4, WINDOW_NORMAL);
    namedWindow(windowNameContrastLow0_5, WINDOW_NORMAL);
    namedWindow(windowNameContrastLow0_25, WINDOW_NORMAL);
 
    // Loading images inside the above created Windows
    imshow(windowNameOriginalImage, image);
    imshow(windowNameContrastHigh2, imageContrastHigh2);
    imshow(windowNameContrastHigh4, imageContrastHigh4);
    imshow(windowNameContrastLow0_5, imageContrastLow0_5);
    imshow(windowNameContrastLow0_25, imageContrastLow0_25);
 
    // waiting for any key to be pressed
    waitKey(0);
 
    // closing all the windows instances
    // when any key is pressed.
    destroyAllWindows();
 
    return 0;
}

Aporte : 
 

Salida:
imagen con contraste aumentado en 4 
 

Imagen con contraste aumentado en 2 
 

Imagen con contraste disminuido por .5 
 

Imagen con contraste disminuido en .25 
 

Explicación :

CPP

// Declaring the Contrast instances
 
// increasing the contrast level by 100%
Mat imageContrastHigh2;
image.convertTo(imageContrastHigh2, -1, 2, 0);
 
// increasing the contrast level by 200%
Mat imageContrastHigh4;
image.convertTo(imageContrastHigh4, -1, 4, 0);
 
// decreasing the contrast level by 50%
Mat imageContrastLow0_5;
image.convertTo(imageContrastLow0_5, -1, 0.5, 0);
 
// decreasing the contrast level by 75%
Mat imageContrastLow0_25;
image.convertTo(imageContrastLow0_25, -1, 0.25, 0);

Estas líneas de código cambiarán los valores de píxeles de la imagen en una cantidad específica. La imagen modificada final se almacena luego en la imagen de salida dada. El nivel de contraste aumentará si el factor de cantidad especificado es mayor que 1; de lo contrario, disminuirá si el factor de cantidad especificado es menor que 1. 
Función MAT: 
La función «MAT» cambia el valor de cada píxel de imagen al tipo de datos de destino y los valores son cambiaba a medida que se multiplicaba el grado del factor. 
 

Parameters : 

m      : Output Image 
rtype  : Output Image type, Output Image type is same
        as input if it is set to -ve value
alpha  : Input image pixel are multiplied with this
        number prior to its assignment to output image
beta   : adding this value to each input image pixel 

Publicación traducida automáticamente

Artículo escrito por mathemagic 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 *