Opencv學習 LUT函式

2021-07-25 16:00:14 字數 2482 閱讀 2841

lut(look -up-table)查詢表,我表達能力不好,加上對這個了解的不是很深刻,對於lup具體解釋用文字不好說。不過看下面例子應該可以看懂。

首先我們看單通道影象。

對於8位單通道,其畫素灰度為0-255,假如我們想將影象某一灰度值換成其他灰度值,用查詢就很好用。

當把此**應用到時,0-100灰度的畫素灰度就變成0,101-200的變成100,201-255的就變成255。

對映表差不多就是這個意思。

對於8位3通道的查詢表和單通道的差不多。opencv用的最簡單的 一種。其內部實現每乙個通道都分別建立一張表,**的建立和單通道的一樣。

處理時,分別對每乙個通道應用各自的表。

當把如上**應用到時,r通道的0-100灰度的畫素灰度就變成0,101-200的變成100,201-255的就變成255。g通道的0-100灰度的畫素灰度就變成50,101-200的變成100,201-255的就變成200。b通道的0-100灰度的畫素灰度就變成50,101-200的變成200,201-255的就變成100。和單通道一樣。

opencv 2中的lut函式為void lut(inputarray src, inputarray lut, outputarray dst,int   interpolation);

src表示的是輸入影象(可以是單通道也可是3通道)

lut表示查詢表(查詢表也可以是單通道,也可以是3通道,如果輸入影象為單通道,那查詢表必須為單通道,

若輸入影象為3通道,查詢表可以為單通道,也可以為3通道,若為單通道則表示對影象3個

通道都應用這個表,若為3通道則分別應用 )

dst表示輸出影象,

interpolation表示插值,這個引數沒有用,源**裡面也沒有用它,預設為0就行,傳其他值會報錯。

opencv3裡面的lut函式    void lut(inputarray src, inputarray lut, outputarray dst);

和2一樣,不過沒有了interpolation這個引數。

}結果顯示:

3通道彩色影象源**:

}輸出結果為:

寫完了,可能寫的不太好,不過還是希望有一些幫助。

opencv中LUT函式使用

有時候我們需要對某影象中的畫素值進行替換,例如對於8位單通道的灰度影象,共有256個灰度級0 255,如果需要將其中的 0 9範圍內的畫素值為0 10 19範圍內的畫素值為10 20 29範圍內的畫素值為20等等 可以使用公式 newimage originalimage 10 10 具體為所以0 ...

OpenCV學習 OpenCV中的工具函式

opencv庫中還提供了一些專用功能,可以更好的處理計算機視覺中普遍出現的數學和其他問題。在庫的環境中它們被稱為工具函式。工具函式包含數學操作 測試 錯誤生成 記憶體與執行緒處理 優化及其他的工具。函式名稱 描述cv alignptr 對齊指標到給定位元組數 cv alignsize 將緩衝區大小給...

OpenCV基本函式學習

include highgui.h int main int argc,char argv include highgui.h int main int argc,char argv cvreleasecapture capture cvdestroywindow example2 include ...