zoukankan      html  css  js  c++  java
  • 5-6 彩色直方图源码

    总共是有256个灰度等级。count_b、count_g、count_r中的每一个灰度等级出现的次数进行归一化处理。

    # 本质: 统计每个像素灰度 出现的概率 0-255 p
    import cv2
    import numpy as np
    import matplotlib.pyplot as plt
    img = cv2.imread('image0.jpg',1)
    imgInfo = img.shape
    height = imgInfo[0]
    width = imgInfo[1]
    
    count_b = np.zeros(256,np.float)
    count_g = np.zeros(256,np.float)
    count_r = np.zeros(256,np.float)
    
    
    for i in range(0,height):
        for j in range(0,width):
            (b,g,r) = img[i,j]
            index_b = int(b)
            index_g = int(g)
            index_r = int(r)
            count_b[index_b] = count_b[index_b]+1
            count_g[index_g] = count_g[index_g]+1
            count_r[index_r] = count_r[index_r]+1
    for i in range(0,256):
        count_b[i] = count_b[i]/(height*width)
        count_g[i] = count_g[i]/(height*width)
        count_r[i] = count_r[i]/(height*width)
    x = np.linspace(0,255,256)
    y1 = count_b
    plt.figure()
    plt.bar(x,y1,0.9,alpha=1,color='b')
    
    y2 = count_g
    plt.figure()
    plt.bar(x,y2,0.9,alpha=1,color='g')
    
    y3 = count_r
    plt.figure()
    plt.bar(x,y3,0.9,alpha=1,color='r')
    plt.show()
    cv2.waitKey(0)


    # 本质: 统计每个像素灰度 出现的概率 0-255 p
    import cv2
    import numpy as np
    import matplotlib.pyplot as plt
    img = cv2.imread('image2.jpg',1)
    imgInfo = img.shape
    height = imgInfo[0]
    width = imgInfo[1]
    
    count_b = np.zeros(256,np.float)
    count_g = np.zeros(256,np.float)
    count_r = np.zeros(256,np.float)
    
    
    for i in range(0,height):
        for j in range(0,width):
            (b,g,r) = img[i,j]
            index_b = int(b)
            index_g = int(g)
            index_r = int(r)
            count_b[index_b] = count_b[index_b]+1
            count_g[index_g] = count_g[index_g]+1
            count_r[index_r] = count_r[index_r]+1
    for i in range(0,256):
        count_b[i] = count_b[i]/(height*width)
        count_g[i] = count_g[i]/(height*width)
        count_r[i] = count_r[i]/(height*width)
    x = np.linspace(0,255,256)
    y1 = count_b
    plt.figure()
    plt.bar(x,y1,0.9,alpha=1,color='b')
    
    y2 = count_g
    plt.figure()
    plt.bar(x,y2,0.9,alpha=1,color='g')
    
    y3 = count_r
    plt.figure()
    plt.bar(x,y3,0.9,alpha=1,color='r')
    plt.show()
    cv2.waitKey(0)
  • 相关阅读:
    单片机开发之C语言编程基本规范
    【C语言基础】编码规范
    常见的C语言编程规范
    第一次使用unity3d
    Chapter 1 First Sight——25
    poi的各种单元格样式以及一些常用的配置
    烧蜡烛棒测时间
    springMVC下载文件前修改文件名字
    ajax上传文件
    Chapter 1 First Sight——24
  • 原文地址:https://www.cnblogs.com/ZHONGZHENHUA/p/9744097.html
Copyright © 2011-2022 走看看