【发布时间】:2013-01-09 23:13:40
【问题描述】:
我想知道OpenCV是否有任何使用C++来调整视频/帧的亮度和对比度的功能。您可以将 BGR 颜色空间转换为 HSV 颜色空间,并丢弃后面的分量 V(亮度),以使算法对视频中的光线条件不那么敏感,但我该怎么做呢?
我正在考虑使用诸如 cvAddS (frame, cvScalar (-50, -50, -50), frame) 之类的东西来降低亮度,cvAddS 和 cvScalar 对 C 来说效果很好,但是对于 C++,我该如何做到这一点,我在我的程序中使用 AddS 和 Scalar,但不适用于 C++
int main() {
VideoCapture video(1);
if(!video.isOpened()) {
cerr<<"No video input"<<endl; return -1;
}
namedWindow("Video",CV_WINDOW_AUTOSIZE);
for(;;) {
Mat frame;
video >> frame; if(!frame.data) break;
Mat frame2;
//I USE AddS AND Scalar TO DECREASE THE BRIGHTNESS
AddS(frame,Scalar(-50,-50,-50),frame2);
//BUT DON'T WORK WITH C++
imshow("Video",frame2);
int c=waitKey(20);
if(c >= 0)break;
}
}
【问题讨论】:
标签: c++ opencv brightness