/* TrackBar 使用 */
static void calllightness(int b, void* userdata)
{
Mat image = *((Mat*)userdata);
Mat dst = Mat::zeros(image.size(), image.type());
/* 带权重的两图像相加 */
addWeighted(image, 1.0, 0, 0, b, dst);
imshow("ImageEnhance", dst);
}
static void callcontrast(int b, void* userdata)
{
Mat image = *((Mat*)userdata);
Mat dst = Mat::zeros(image.size(), image.type());
double contrast = b / 100.0;
addWeighted(image, contrast, 0, 0, 0, dst);
imshow("ImageEnhance", dst);
}
void OpencvExample::Example_TrackBar(Mat &image)
{
namedWindow("ImageEnhance", WINDOW_AUTOSIZE);
int lightness = 50;
int contrast = 100;
/* 创建滚动条 */
createTrackbar("Bright", "ImageEnhance", &lightness, 100, calllightness, (void *)(&image));
createTrackbar("Contrast", "ImageEnhance", &contrast, 200, callcontrast, (void *)(&image));
calllightness(50, &image);
}
OpenCV入门(六):滚动条控制图像亮度与对比度
最新推荐文章于 2023-03-26 17:08:35 发布