수색…


통사론

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

매개 변수

매개 변수 세부
출력 행렬; 작업 전에 적절한 크기 나 유형이없는 경우에는 다시 할당됩니다.
rtype 원하는 출력 매트릭스 유형 또는 오히려 깊이가 입력의 것과 동일한 채널 수이기 때문에; rtype이 음수이면 출력 행렬은 입력과 동일한 유형을 갖습니다.
알파 선택적 배율 계수. 이렇게하면 이미지의 대비가 변경됩니다. 값이 1보다 작 으면 명암이 감소하고 1보다 크면 명암이 증가합니다.
베타 확장 된 값에 선택적 델타가 추가되었습니다. 양수 값은 밝기를 증가시키고 음수 값은 밝기를 감소시킵니다.

비고

대조 :

명암은 객체 (또는 이미지 또는 디스플레이의 표현)를 구별 할 수있게하는 휘도 또는 색상의 차이입니다. 픽셀과 이웃 픽셀 간의 차이가 클수록 해당 영역의 대비가 높아집니다.

밝기 :

즉, 밝기는 시각적 표적의 휘도에 의해 유발되는 인식입니다. 픽셀의 관점에서 픽셀의 값이 높을수록 픽셀이 밝아집니다.

대비 및 밝기 조정 :

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

f(x) 를 원본 이미지 픽셀로, g(x) 를 출력 이미지 픽셀로 사용합니다.

ij 는 화소가 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