簡體   English   中英

局部漸變模式實現

[英]Local Gradient Pattern Implementation

我試圖理解“ 局部漸變模式”中描述的“ 局部漸變模式”-一種用於面部表情識別的新穎特征表示

有一個計算像素新值的示例,如下所示:

模式計算

我看到中心像素(為25)的Pattern-1值為10Pattern-2值為01 我有幾個問題。

  • 該中心像素的新值是多少?
  • LGP與LBP有何關系?
  • 是否有用於使用LGP(首選Python)轉換2D矩陣的偽代碼?

該中心像素的新值是多少?

這取決於編碼方案。 該參考文件沒有明確解釋如何編碼局部梯度模式。 一種可能的編碼是:

導光板

哪里

f(x)

如果將示例的強度值引入到模式代碼結果上方的表達式中:

代碼計算示例

請注意,使用不同編碼的效果將是對直方圖塊進行重新排序,但這不會對分類准確性產生影響。

LGP與LBP有何關系?

LGP只是眾多LBP變體之一 請看這本書以進行全面審查。

是否有用於使用LGP(首選Python)轉換2D矩陣的偽代碼?

試試下面的代碼:

import numpy as np

def LGP_codes(img, r=1):
    padded = np.pad(img, (r, r), 'constant')
    a1 = padded[:-2*r, :-2*r]
    b1 = padded[:-2*r, r:-r]
    a2 = padded[:-2*r, 2*r:]
    b2 = padded[r:-r, 2*r:]
    a3 = padded[2*r:, 2*r:]
    b3 = padded[2*r:, r:-r]
    a4 = padded[2*r:, :-2*r]
    b4 = padded[r:-r, :-2*r]
    codes = (a1 >= a3) + 2*(a2 >= a4) + 4*(b1 >= b3) + 8*(b2 >= b4)
    return codes[r:-r, r:-r]

演示版

In [31]: patch = np.array([[18, 25, 14], 
    ...:                   [85, 25, 86], 
    ...:                   [45, 65, 14]])
    ...: 

In [32]: LGP_codes(patch)
Out[32]: array([[9]])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM