Buscar..


Sintaxis

  • void cv :: Mat :: convertTo (OutputArray m, int rtype, double alpha = 1, double beta = 0) const

Parámetros

Parámetro Detalles
metro matriz de salida; Si no tiene un tamaño o tipo adecuado antes de la operación, se reasigna
rtype tipo de matriz de salida deseada o, más bien, la profundidad, ya que la cantidad de canales es la misma que la entrada; si rtype es negativo, la matriz de salida tendrá el mismo tipo que la entrada
alfa Factor de escala opcional. Esto cambia el contraste de una imagen. Los valores por debajo de 1 disminuyen el contraste y por encima de uno aumentan el contraste
beta Delta opcional agregado a los valores escalados. Los valores positivos aumentan el brillo y los valores negativos disminuyen el brillo.

Observaciones

Contraste :

El contraste es la diferencia de luminancia o color que hace que un objeto (o su representación en una imagen o visualización) sea distinguible. Cuanto mayor sea la diferencia entre un píxel y sus vecinos, mayor será el contraste en esa área.

Brillo :

En otras palabras, el brillo es la percepción provocada por la luminancia de un objetivo visual. En términos de píxeles, cuanto más alto es el valor de un píxel, más brillante es ese píxel.

Ajustes de contraste y brillo:

g (i, j) = α.f (i, j) + β

f(x) como píxeles de la imagen de origen y g(x) como píxeles de la imagen de salida.

i y j indican que el píxel está ubicado en la fila i-th y en la columna j-th.

Los parámetros α > 0 y β menudo se denominan parámetros de ganancia y sesgo; a veces se dice que estos parámetros controlan el contraste y el brillo respectivamente.

Opencv tiene una función llamada convertTo () que puede aplicar estas dos operaciones.

Fuentes: http://docs.opencv.org/trunk/d3/d63/classcv_1_1Mat.html#adf88c60c5b4980e05bb556080916978b http://opencv-srf.blogspot.ca/2013/07/change-contrast-of-image-or-video .html http://opencv-srf.blogspot.ca/2013/07/change-brightness.html

Ajuste de brillo y contraste de una imagen en c ++

// main.cpp : Defines the entry point for the console application.
//
#include "opencv2/highgui/highgui.hpp"
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, const char** argv)

{

    Mat img = imread("lena30.jpg", CV_LOAD_IMAGE_COLOR); //open and read the image


    if (img.empty())
    {
        cout << "Image cannot be loaded..!!" << endl;
        return -1;
    }

    Mat img_higher_contrast;
    img.convertTo(img_higher_contrast, -1, 2, 0); //increase the contrast (double)

    Mat img_lower_contrast;
    img.convertTo(img_lower_contrast, -1, 0.5, 0); //decrease the contrast (halve)

    Mat img_higher_brightness;
    img.convertTo(img_higher_brightness, -1, 1, 20); //increase the brightness by 20 for each pixel 

    Mat img_lower_brightness;
    img.convertTo(img_lower_brightness, -1, 1, -20); //decrease the brightness by 20 for each pixel 

    //create windows
    namedWindow("Original Image", CV_WINDOW_AUTOSIZE);
    namedWindow("High Contrast", CV_WINDOW_AUTOSIZE);
    namedWindow("Low Contrast", CV_WINDOW_AUTOSIZE);
    namedWindow("High Brightness", CV_WINDOW_AUTOSIZE);
    namedWindow("Low Brightness", CV_WINDOW_AUTOSIZE);
    //show the image
    imshow("Original Image", img);
    imshow("High Contrast", img_higher_contrast);
    imshow("Low Contrast", img_lower_contrast);
    imshow("High Brightness", img_higher_brightness);
    imshow("Low Brightness", img_lower_brightness);

    waitKey(0); //wait for key press
    destroyAllWindows(); //destroy all open windows
    return 0;
}

Salida del programa:

introduzca la descripción de la imagen aquí



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow