基於opencv的相機之調整功能實現 七

2021-07-07 03:42:51 字數 2106 閱讀 1795

本篇是對實現處理功能:【調整】實現的記錄。
利用公式:g(i,j) = contrast*f(i,j)+brightness。在原影象基礎上,根據拖動條的資料大小,整體的加上或者減去不同的brightness。

實現影象的亮度調整。

當大於50的時候,beta範圍為0 - 100,對應mat亮度增加。

當小於50的時候,deta範圍為0 - (-100),對應亮度降低。

對應的效果如下:

簡單的說就是,影象r和b通道資料的增減,來實現影象整體偏冷或者偏暖。
增加影象b通道的資料,讓影象偏冷。
對應的效果如下:

同樣利用公式:g(i,j) = contrast*f(i,j)+brightness。在原影象基礎上,根據拖動條的資料大小,整體的乘上contrast,根據contrast的不同,來實現影象的亮度調整。
對應的效果如下:

將rgb影象,轉換為hsv格式之後,其中的s分量就表示為飽和度,通過增加、減小該分量來實現飽和度的增減。
對應的效果如下:

通過對影象的模糊來降低影象銳度;首先將影象模糊,接著用模糊影象減去原影象,再與原影象相加,從而增加影象銳度。
對應的效果如下:

首先統計出影象[0,255]的直方圖資料,計算出影象畫素從0開始到佔據所有畫素點50%時候的畫素值;接著計算出到佔據80%時候的對應的畫素值。剩下20%的畫素點,預設為亮處資料,之前統計的80%資料為非亮處畫素。

將80%的非亮處畫素,從新對映到0到之前50%時候畫素值範圍,將20%的亮處資料對映到之前統計的50%畫素值到本影象最大畫素值區間範圍內。

相當於增大了亮處資料的對比度。從而使得亮處的細節更加清楚。

細節效果越明顯,將閥值throwld和80%處的畫素值大小,儲存到scale_flag陣列中。接著計算出從新對映的公式。

最後通過:

s1.val[0] = s1.val[0] * high_val[0];

s1.val[0] = scale_flag[0] + (s1.val[0] - scale_flag[1]) * high_val[1];

對影象亮處畫素和非亮處畫素進行重新對映,然後將影象格式從新轉換回bgr格式。

對應的效果如下:
和之前的亮度細節類似,區別是亮處細節時候,是從0開始統計到50%為閥值,80%以上為亮處細節。這裡是從255開始。畫素值遞減的統計,也是50%為閥值。

80%以上的資料的暗處細節。最後將非暗處細節的資料,從新對映到255開始統計的,50%畫素範圍內,將暗處細節資料對映到50%畫素開始到畫素 值為0的畫素範圍內。

對應的效果如下:

OpenCV的雙目相機remap

雙目相機的remap主要是為了解決 極線對齊 的問題,需要輸入相機的內外引數,分別產生左圖x方向 y方向和右圖x方向 y方向的remap 並由這個 按照lut對原影象進行 極限校正 對極幾何是雙目相機立體標定的數學基礎,相關知識點參考 主要思路是 1 讀入雙目相機的內外引數 filestorage ...

opencv之基於qt ide除錯

opencv 2.2是乙個里程碑版本。build all.sh用於編譯samples c目錄下的c和cpp檔案。是乙個遍歷的效果。可以提煉其核心編譯語句用於其他c或cpp檔案的編譯。發現另外一本書,用於學習opencv 2。非常好,但同時需要將qt編譯環境熟悉起來。影象畫素的儲存是否連續?如果沒有p...

基於OpenCV的單目工業相機內外參標定

1.工業相機內參和畸變係數標定 2.工業相機外參標定,用於座標系轉換 標定板,最好採購精度較高的玻璃標定板,自己列印的a4紙質標定板坑死我了,光是卡尺測量誤差就在1mm,標定過程中還有變形 d65光箱,有條件的話 void cameracalibration computeactualchessbo...