【发布时间】:2013-02-09 22:36:55
【问题描述】:
我是计算机视觉和图像处理的新手,无论如何我正在尝试计算图像 y_channel 的直方图,该直方图之前已用 cv2.GaussianBlur 模糊并从 BGR 转换为 YCr-cb 颜色空间。然而最终结果并不完全符合我的预期,它似乎没有典型的高斯分布外观。以下是我的形象和情节。
这是代码 sn-p。
cv2.imwrite("/home/carlo/face.png", roi2)
img = cv2.imread('/home/carlo/face.png')
yuma = cv2.split(img)[0]
Hist = yuma.flatten().tolist()
grayscales = np.unique(Hist)
frequencies = [Hist.count(x) for x in grayscales]
plt.figure()
plt.bar(grayscales,frequencies,color='g',edgecolor='k')
plt.show()
谁能告诉我我做错了什么? 谢谢
【问题讨论】:
-
你为什么期望直方图是高斯的?这将是原始分布的有点模糊的版本,但不一定是高斯分布。将你得到的图像与图像的原始分布进行比较。
-
@WarrenWeckesser 我编辑了问题,我猜面部亮度应该看起来像高斯直方图。
-
@WarrenWeckesser 也许知道我正在关注这篇论文www2.tku.edu.tw/~tkjse/15-2/10-IE9920.pdf,第 3.2 节可能会有所帮助
-
您的图像看起来太亮了,您的亮度通道已经饱和
-
@tcaswell 是的,你说得对,我在不同的光照条件下进行了尝试,得到了积极的结果(积极的意思是高斯看起来相似的直方图)。非常感谢!
标签: python opencv numpy matplotlib computer-vision