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

Cant display the LBP image after using exposed elbp function in python

本文关键字:显示 图像 LBP 函数 elbp python 暴露      更新时间:2023-10-16

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

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

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

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

我注意到另一个ppl问了同样的问题,但使用的是c++:在opencv中应用LBPH(elbp())运算符后无法显示图像但我不能理解的是,他将图像归一化以适应屏幕渲染范围是什么意思?

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

打印(LBP)

正如您所看到的,像素强度分布是正态的。

这是实际的elbp函数!

@barny thx对于您的详细响应,根据您的解决方案,我将矩阵乘以64这样的值,最后我得到了显示的图像,但我不确定为什么我必须乘以一个值才能得到正确的可见图像,这不应该在原始的elbp函数中完成吗?而且,矩阵元素值变得非常大:

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

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

直方图

如果有人能向我解释为什么我必须乘以这么大的值,那就太好了!

ps:这是我第一次询问堆栈溢出,感谢所有试图提供帮助的人!