代码示例:
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace std;
using namespace cv;
static void on_ContrastAndBright(int, void*);
static void ShowHelpText();
int g_nContrastValue;
int g_nBrightValue;
Mat g_srcImage, g_dstImage;
int main()
{
g_srcImage = imread("F:\\C++project\\picturetest\\2.jpg");
if (!g_srcImage.data)
{
printf("读取图片错误");
return false;
}
g_dstImage = Mat::zeros(g_srcImage.size(), g_srcImage.type());
g_nContrastValue = 80;
g_nBrightValue = 80;
namedWindow("【效果窗口】", 1);
createTrackbar("对比度:", "【效果窗口】", &g_nContrastValue, 300, on_ContrastAndBright);
createTrackbar("亮 度:", "【效果窗口】", &g_nBrightValue, 200, on_ContrastAndBright);
on_ContrastAndBright(g_nContrastValue, 0);
on_ContrastAndBright(g_nBrightValue, 0);
while (char(waitKey(1))!='q')
{
return 0;
}
return 0;
}
static void on_ContrastAndBright(int, void*)
{
namedWindow("【原始图窗口】",1);
for (int y =

本文介绍了一个使用OpenCV调整图像对比度和亮度的C++代码示例。通过创建轨迹条,用户可以实时调整图像的对比度和亮度值,观察到图像的变化。代码中详细展示了如何使用saturate_cast函数进行溢出保护,确保像素值在有效范围内。
最低0.47元/天 解锁文章
610

被折叠的 条评论
为什么被折叠?



