Поиск…


Синтаксис

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

параметры

параметр подробности
м выходная матрица; если он не имеет правильного размера или типа перед операцией, он перераспределяется
RTYPE желаемый тип выходной матрицы или, точнее, глубина, так как количество каналов совпадает с количеством входных данных; если rtype отрицательный, выходная матрица будет иметь тот же тип, что и вход
альфа дополнительный масштабный коэффициент. Это изменяет контрастность изображения. Значения ниже 1 уменьшают контраст, а выше один увеличивает контраст
бета дополнительная величина добавлена ​​к масштабированным значениям. Положительные значения увеличивают яркость, а отрицательные значения уменьшают яркость

замечания

Контраст :

Контрастность - это разница в яркости или цвете, которая делает объект (или его изображение на изображении или дисплее) различимым. Чем выше разница между пикселем и его соседями, тем выше контраст в этой области.

Яркость :

Другими словами, яркость - это восприятие, вызванное яркостью визуальной цели. С точки зрения пикселей, чем выше значение пикселя, тем ярче этот пиксель.

Корректировка контрастности и яркости:

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

f(x) в качестве пикселей исходного изображения и g(x) в качестве пикселей выходного изображения.

i и j указывает, что пиксель расположен в i-й строке и j-м столбце.

Параметры α > 0 и β часто называются параметрами усиления и смещения; иногда эти параметры, как говорят, контролируют контраст и яркость соответственно.

У Opencv есть функция, называемая convertTo (), которая может применять эти две операции.

Источники: 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

Настройка яркости и контрастности изображения в 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;
}

Вывод программы:

введите описание изображения здесь



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow