【发布时间】:2017-05-03 20:08:45
【问题描述】:
所以,我在这里获取了一些用于生成和绘制颜色直方图的示例代码:http://www.pyimagesearch.com/2014/01/22/clever-girl-a-guide-to-utilizing-color-histograms-for-computer-vision-and-image-search-engines/
from matplotlib import pyplot as plt
import cv2, os, glob
os.chdir(r"....pathname....")
for file in glob.glob("*.jpg"):
image = cv2.imread(file)
chans = cv2.split(image)
colors = ("b", "g", "r")
plt.figure()
plt.title("'Flattened' Color Histogram")
plt.xlabel("Bins")
plt.ylabel("# of Pixels")
for (chan, color) in zip(chans, colors):
hist = cv2.calcHist([chan], [0], None, [256], [0, 256])
cv2.normalize(hist,hist,8,cv2.NORM_MINMAX)
plt.plot(hist, color = color)
plt.xlim([0,256])
plt.savefig(file + '_hist.jpg')
但是,对于某些图像,我得到一个基本平坦的直方图,其末端为“极端”值,如下所示:
这是原始图像,生成了后一个直方图:http://i.imgur.com/xerRgy1.jpg
谁能解释发生了什么以及为什么?
【问题讨论】:
标签: python opencv matplotlib histogram