《OpenCV3编程入门》学习笔记5 Core组件进阶(四)图像对比度、亮度值调整
生活随笔
收集整理的這篇文章主要介紹了
《OpenCV3编程入门》学习笔记5 Core组件进阶(四)图像对比度、亮度值调整
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第5章 Core組件進階
5.4 圖像對比度、亮度值調整
5.4.1 理論依據
1.算子:一般圖像處理算子都是一個函數,接受一個或多個輸入圖像,并產生輸出圖像
2.算子一般形式:
3.點操作(point operators):僅根據輸入像素值計算輸出像素值,這類算子包括亮度(brightness)和對比度(contrast)調整、顏色矯正(color correction)、變換(transformations)
4.兩種最常用的點操作是乘上一個常數(對應對比度調節)以及加上一個常數(對應亮度值調節)
(1)公式如下:(具體到像素:)
(2)f(x)表示源圖像像素,g(x)表示輸出圖像像素,a控制圖像對比度(被稱為增益gain),b控制圖像亮度(被稱為偏置bias)
5.4.2 示例程序
#include<opencv2/opencv.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<iostream>
using namespace cv;
using namespace std;//全局函數聲明
static void on_ContrastAndBright(int, void *);
//全局變量聲明
int g_nContrastValue;//對比度值
int g_nBrightValue;//亮度值
Mat g_srcImage, g_dstImage;int main()
{//[1]輸入圖像g_srcImage = imread("love.jpg");if (!g_srcImage.data) { printf("讀取圖片錯誤,請確定目錄下是否有imread函數指定圖片存在~!"); return false; }g_dstImage = Mat::zeros(g_srcImage.size(), g_srcImage.type());//[2]設定對比度和亮度初值g_nContrastValue = 80;g_nBrightValue = 80;//[3]創建效果圖窗口namedWindow("[效果圖窗口]");//[4]創建軌跡條createTrackbar("對比度:", "[效果圖窗口]", &g_nContrastValue, 300, on_ContrastAndBright);createTrackbar("亮 度:", "[效果圖窗口]", &g_nBrightValue, 200, on_ContrastAndBright);//[5]進行回調函數初始化on_ContrastAndBright(g_nContrastValue, 0);on_ContrastAndBright(g_nBrightValue, 0);//[6]按下"q"鍵時,程序退出while(char(waitKey(1))!='q'){ }return 0;
}
//改變圖像對比度和亮度值的回調函數
static void on_ContrastAndBright(int, void *)
{//創建窗口namedWindow("[原始圖窗口]");//三個for循環,執行運算g_dstImage(i,j)=a*g_srcImage(i,j)+bfor (int x = 0; x < g_srcImage.rows; x++){for (int y = 0; y < g_srcImage.cols; y++){for (int c = 0; c < 3; c++){g_dstImage.at<Vec3b>(x, y)[c] = saturate_cast<uchar>((g_nContrastValue*0.01)*(g_srcImage.at<Vec3b>(x, y)[c]) + g_nBrightValue);//saturate_cast模板函數,用于溢出保護,原理:if(data<0) data=0; else if(data>255) data=255;//a的取值為0.0-3.0的浮點值,但軌跡條一般取整數,將對比度值nContrastValue參數設為0到300,式子中乘以0.01}}}//顯示圖像imshow("[原始圖窗口]", g_srcImage);imshow("[效果圖窗口]", g_dstImage);
}
總結
以上是生活随笔為你收集整理的《OpenCV3编程入门》学习笔记5 Core组件进阶(四)图像对比度、亮度值调整的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 太岁头上动土的下一句是什么啊?
- 下一篇: 一般割包皮要多少钱?