opencv
C ++의 대비 및 밝기
수색…
통사론
- 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)
를 출력 이미지 픽셀로 사용합니다.
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