2015-07-02 109 views
2

我不熟悉局部二值模式(LBP),任何人都可以幫助我知道如何從面部圖像中提取LBP特徵(我需要一個簡單的代碼示例)?如何在MATLAB中從面部圖像中提取LBP特徵?

雖然搜索,我發現this code,但我不明白。

+1

也許這將有助於http://stackoverflow.com/questions/7406314/local-binary-pattern-in-matlab – beaker

+0

非常感謝你@beaker。 – TARIQ

回答

4
  1. 所以首先你需要將臉部分成一定數量的 部分。

  2. 對於這些部分中的每一個,您都必須遍歷該部分中包含的所有像素,並獲取它們的值(灰度或顏色值)。

  3. 對於每個像素檢查接壤它(對角線和上下左右)的像素值,並將其保存

  4. 每個方向的檢查,如果顏色值。如果顏色大於原始像素值,則可以將該值指定爲1,如果不足,則可以將其指定爲0.

  5. 您應該從前面的步驟中獲得1和0的列表。把這些數字放在一起,這將是一個很大的二進制數,你應該能夠將其轉換爲十進制數,並且你將爲該像素分配一個數字。每像素保存這個數字。

  6. 在某個部分中的每個像素都有一個十進制數後,您可以對所有這些值進行平均,以獲得此部分的平均數。

這可能不是最好的描述這是如何工作的,因此here是一個有用的圖片,可能會幫助你。

+0

謝謝@MrSansoms的回答,我知道它是如何「合乎邏輯地」工作的,但我需要一個簡單的例子來創建完整的LBP視圖。 – TARIQ

2

MATLAB的Computer Vision System Toolbox的R2015b版本中有一個extractLBPFeatures函數。

+0

Hi @Dima。如果我想將它應用到64x64大小的圖像並分割成16x16大小的圖像塊,我應該添加參數(..,'CellSize',[16 16])是它嗎?這意味着我將圖像分割成4x4塊?如果它被設置爲默認,它的意思是我得到了整個圖像的功能,對吧? –