Suche…


Syntax

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

Parameter

Parameter Einzelheiten
m Ausgabematrix; Wenn es vor der Operation nicht über eine geeignete Größe oder einen richtigen Typ verfügt, wird es neu zugewiesen
rtype gewünschter Ausgabematrixtyp oder eher die Tiefe, da die Anzahl der Kanäle der Eingabe entspricht; Wenn rtype negativ ist, hat die Ausgabematrix denselben Typ wie die Eingabe
Alpha optionaler Skalierungsfaktor. Dadurch wird der Kontrast eines Bildes geändert. Werte unter 1 verringern den Kontrast, und über 1 wird der Kontrast erhöht
Beta optionales Delta zu den skalierten Werten hinzugefügt. Positive Werte erhöhen die Helligkeit und negative Werte verringern die Helligkeit

Bemerkungen

Kontrast :

Der Kontrast ist der Unterschied in der Helligkeit oder Farbe, der ein Objekt (oder seine Darstellung in einem Bild oder einer Anzeige) unterscheidbar macht. Je höher der Unterschied zwischen einem Pixel und seinen Nachbarn ist, desto höher ist der Kontrast in diesem Bereich.

Helligkeit :

Mit anderen Worten ist Helligkeit die Wahrnehmung, die durch die Leuchtdichte eines visuellen Ziels hervorgerufen wird. In Pixel ausgedrückt ist der Pixel umso heller, je höher der Wert eines Pixels ist.

Kontrast- und Helligkeitseinstellungen:

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

f(x) als Quellbildpixel und g(x) als Ausgabebildpixel.

i und j zeigen an, dass sich das Pixel in der i-ten Zeile und j-ten Spalte befindet.

Die Parameter α > 0 und β werden oft als Verstärkungs- und Vorspannungsparameter bezeichnet. Manchmal wird gesagt, dass diese Parameter den Kontrast bzw. die Helligkeit steuern.

Opencv hat eine Funktion namens convertTo (), die diese beiden Operationen anwenden kann.

Quellen: 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

Anpassen von Helligkeit und Kontrast eines Bildes in 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;
}

Ausgabe des Programms:

Geben Sie hier die Bildbeschreibung ein



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow