有時候我們需要對某影象中的畫素值進行替換,例如對於8位單通道的灰度影象,共有256個灰度級0-255,如果需要將其中的
0-9範圍內的畫素值為0;
10-19範圍內的畫素值為10;
20-29範圍內的畫素值為20等等
可以使用公式 newimage=originalimage/10*10;具體為所以0-255的256中灰度級被分成了0-25共26種灰度級。
因為影象的矩陣維度很高,如果每個畫素都使用公式進行計算的話,那麼代價太大,因此可以建立一張**,將對應的灰度級進行對映好,然後具體操作的時候,只需要在事先建好的**中進行查詢,然後賦值就好了,這樣能大量減少程式的執行時間。
lut函式(look up table)即為查表函式,
void lut(inputarray src, inputarray lut, outputarray dst);
inputarray src:輸入影象
outputarray dst:輸出影象
inputarray lut:查詢表
例如:我們想將一張灰度為0-100的畫素的灰度變成0,101-200的變成100,201-255的變成255。我們就可已建立如下的一張**;
以上就是結果圖,左邊的是原圖,右邊的是使用lut函式處理後的圖。
Opencv學習 LUT函式
lut look up table 查詢表,我表達能力不好,加上對這個了解的不是很深刻,對於lup具體解釋用文字不好說。不過看下面例子應該可以看懂。首先我們看單通道影象。對於8位單通道,其畫素灰度為0 255,假如我們想將影象某一灰度值換成其他灰度值,用查詢就很好用。當把此 應用到時,0 100灰度...
Opencv中cvSobel函式使用
sobel運算元為邊沿檢測中常用的運算元之一。以下給出opencv手冊中的說明 使用擴充套件 sobel 運算元計算一階 二階 三階或混合影象差分 void cvsobel const cvarr src,cvarr dst,int xorder,int yorder,int aperture si...
使用OPENCV中的Sobel函式找函式邊緣並顯示
mat mat blur mat blur in.clone gaussianblur in,mat blur,size blursize,blursize 0,0,border default 高斯平滑 mat mat gray if mat blur.channels 3 cvtcolor ma...