作業1 OpenCV基礎程式練習
撰寫一個程式從檔案讀取一張圖像,將圖像的每一個點像素的值各加上一個整數值v (-128 < v < 128)來改變整張圖像的亮度,將修改後的圖像儲存至新影像檔案中。
一.原理
亮度调节就是对图像的点操作,如下公式所示,改变b的值就是改变图像的亮度。
g(x) = f(x)+b
二.实现
<1>创建轨迹条
使用createTrackbar创建轨迹条
C++: int createTrackbar(conststring& trackbarname, conststring& winname,
int* value, int count, TrackbarCallback onChange=0,void* userdata=0);
int* value, int count, TrackbarCallback onChange=0,void* userdata=0);
第一个参数:表示轨迹条的名字 string
第二个参数: 轨迹条所要依附的窗口的名字 string
第三个参数: 指向滑块的初始值的指针 int *
第四个参数: 轨迹条的最大值 int (轨迹条最小值为0所以可以通过创建两个轨迹条来实现数值减少)
第五个参数:回调函数
第六个参数:第三个参数使用全局变量时不管这个参数
<2>saturate_cast<uchar>()
saturate_cast<uchar>()保证数值在0-255,防止溢出。即大于255值为255小于零值为0。
<3>运行
add表示亮度增加值,minus表示亮度减少值,两个值都为零时即为原图。
增加亮度
减少亮度
沒有留言:
張貼留言