在python中使用外露的elbp函数后无法显示LBP图像

时间:2015-11-30 09:28:40

标签: python c++ opencv

我试图在将elbp函数应用于灰度图像后显示lbp图像,该函数在面部模块中手动暴露为python。 这是代码:

LBP = cv2.face.elbp(gray_roi,1,8)
cv2.imshow("Face",LBP)

但是,我得到的是一个纯黑色的窗口,我也注意到cols和row总是比原始图像小2,这里是错误信息:

  

无法将形状(95,95)的输入数组广播为形状(97,97)

我注意到另一个人问了同样的问题,但是使用的是c ++:Unable to display image after applying LBPH (elbp()) operator in opencv 但我不明白他的意思是将图像标准化以适应屏幕渲染范围?

这是我的图像的矩阵输出:

print(LBP)

如您所见,像素强度分布是正常的。

这是实际的elbp function

1 个答案:

答案 0 :(得分:0)

@barny thx为你的详细回复,根据你的解决方案,我用矩阵乘以64这样的值,最后我得到了显示的图像,但我不知道为什么我必须得到一个值才能获得适当的可见图像,不应该在原始的elbp函数中完成吗? 而且,矩阵元素值变得非常大:

这是我从显示的图像中打印出的直方图的一部分(乘以64的值):

histogram=scipy.stats.itemfreq(LBP1)
print(histogram)[[    0  1726]

histogram

如果有人可以向我解释为什么我必须增加这么大的价值呢!

ps:这是我第一次询问堆栈溢出,对于每个试图帮助的人来说都是这样!