Sök…


Syntax

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

parametrar

Parameter detaljer
m utgångsmatris; om den inte har rätt storlek eller typ före operationen omfördelas den
R · Type önskad utgångsmatristyp eller snarare djupet eftersom antalet kanaler är samma som ingången har; om rtype är negativt kommer utgångsmatrisen att ha samma typ som ingången
alfa valfri skalfaktor. Detta ändrar en bilds kontrast. Värden under 1 minskar kontrasten och över en ökar kontrasten
beta valfritt delta läggs till i skalade värden. Positiva värden ökar ljusstyrkan och negativa värden minskar ljusstyrkan

Anmärkningar

Kontrast :

Kontrast är skillnaden i luminans eller färg som gör att ett objekt (eller dess representation i en bild eller bildskärm) kan urskiljas. Ju högre skillnaden mellan en pixel och dess grannar desto högre är kontrasten i det området.

Ljusstyrka :

Med andra ord är ljusstyrka den uppfattning som framkallas av ljuset hos ett visuellt mål. När det gäller pixlar, desto högre är värdet på en pixel desto ljusare den pixeln är.

Justeringar av kontrast och ljusstyrka:

g (i, j) = a.f (i, j) + p

f(x) som källbildspixel och g(x) som utgångsbildpixel.

i och j indikerar att pixeln är belägen i den i: e raden och den j: e kolumnen.

Parametrarna α > 0 och β kallas ofta förstärknings- och biasparametrarna; ibland sägs dessa parametrar styra kontrast respektive ljusstyrka .

Opencv har en funktion som heter convertTo () som kan tillämpa dessa två operationer.

Källor: 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

Justera ljusstyrka och kontrast för en bild i 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;
}

Utgång av programmet:

ange bildbeskrivning här



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow