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

2024-05-16 09:44:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图显示一个lbp图像后,应用elbp函数的灰度图像,该函数是在python的face模块中手动公开的。 代码如下:

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

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

could not broadcast input array from shape (95,95) into shape (97,97)

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

这是我图像的矩阵输出:

print(LBP)

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

这是实际的elbp function!在


Tags: 模块函数代码图像手动cv2灰度face
1条回答
网友
1楼 · 发布于 2024-05-16 09:44:48

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

下面是我从所示图像打印出的直方图的一部分(乘以64):

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

histogram

如果有人能解释为什么我必须要加倍这么大的价值,那就太好了!在

附言:这是我第一次在堆栈溢出问题上发问,感谢所有试图帮助的人!在

相关问题 更多 >