2013-02-09 3 views
0

Я новичок в компьютерном зрении и обработке изображений, во всяком случае, я пытаюсь вычислить гистограмму изображения y_channel, которая ранее была размыта cv2.GaussianBlur и преобразована из BGR в YCr-cb цветовое пространство. Однако конечный результат не совсем то, что я ожидал, он, похоже, не имеет типичного вида распределения Гаусса. Ниже приведен мой образ и сюжет.Гистограмма изображения Gaussian blur Y канала

face image

histogram

И это фрагмент кода.

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() 

Может ли кто-нибудь сказать, что я делаю неправильно? Спасибо

+4

Почему вы ожидаете, что гистограмма будет гауссовой? Это будет несколько размазанная версия исходного дистрибутива, но не обязательно гауссовская. Сравните то, что вы получили с исходным распределением изображения. –

+0

@WarrenWeckesser Я отредактировал вопрос, я думаю, что яркость лица должна выглядеть как гистограмма Гаусса. – wind85

+0

@WarrenWeckesser, возможно, было бы полезно знать, что я следую этой статье http://www2.tku.edu.tw/~tkjse/15-2/10-IE9920.pdf, раздел 3.2 – wind85

ответ

0

На самом деле это была проблема, которая возникает с ярким освещением, как мне предложил @tcaswell. В разных условиях Y-гистограмма очень похожа на гауссовскую.