opencv
Kontrast und Helligkeit in C ++
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: