【发布时间】:2019-12-31 06:50:54
【问题描述】:
我正在尝试实现原始论文中的方法(Enhanced Local Texture Feature Sets for Face
在 python 3.6 和 Opencv 4.2 中,Xiaoyang Tan 和 Bill Triggs 在困难光照条件下的识别,
但是当我将预处理应用于图像时,它并没有给出与论文中相同的结果
虽然我使用了指定的相同参数:
1- 伽马校正,伽马=0.2
2- 对于 DoG,(sigma0=1, sigma1=2)
3- 对于对比度均衡,tau=10 和 alpha=0.1
这是预期的结果和我得到的结果:
Original Imageresulted imageexpected image
这是我使用的代码:
img_original = cv.imread('C:/Users/Ouss/Desktop/TP-LTP/face.jpg', cv.IMREAD_GRAYSCALE)
# gamma correction
lookUpTable = np.empty((1, 256), np.uint8)
for i in range(256):
# calculating the new values
lookUpTable[0, i] = np.clip(pow(i / 255.0, 2) * 255.0, 0, 255)
# mapping the new values with the original
gamma_corrected_img = cv.LUT(img_original, lookUpTable)
# DOG
blur1 = cv.GaussianBlur(gamma_corrected_img, (3, 3), 1, borderType=cv.BORDER_REPLICATE)
blur2 = cv.GaussianBlur(gamma_corrected_img, (7, 7), 2, borderType=cv.BORDER_REPLICATE)
dog_img = cv.subtract(blur1, blur2)
# contrast equalisation
# step 1
alpha = 0.1
tau = 10
temp1 = pow(np.abs(dog_img), alpha)
meanImg = np.mean(temp1)
Contrast_Equa_step01 = dog_img / pow(meanImg, 1/alpha)
# step 2
minMat = np.abs(Contrast_Equa_step01)
minMat[minMat > tau] = tau
temp2 = pow(minMat, alpha)
meanImg2 = np.mean(temp2)
Contrast_Equa_step02 = Contrast_Equa_step01 / pow(meanImg2, 1/alpha)
CEqualized_img = tau * np.tanh((Contrast_Equa_step02/tau))
【问题讨论】:
标签: python