怎么绘制直方图?

2025-09-28 13:22:45

1、这里采用的模块是cv2,默认的通道顺序是BGR:

import cv2

import numpy as np

from matplotlib import pyplot as plt

img = cv2.imread('b.png')

img*[1,0,0]

怎么绘制直方图?

怎么绘制直方图?

怎么绘制直方图?

2、获取图片的第一个通道的亮度(也就是像素值)的统计:

import cv2

import numpy as np

from matplotlib import pyplot as plt

img = cv2.imread('b.png')

h = cv2.calcHist([img],[0],None,[256],[0,256])

print(h)

这里,h是一个255*1的列表。

怎么绘制直方图?

3、画出这个通道的直方图。

由于这个通道是蓝色通道,所以这里把直方图画成蓝色的:

plt.plot(h,color = 'b')

plt.xlim([0,256])

plt.show()

怎么绘制直方图?

4、绿色通道的直方图:

h = cv2.calcHist([img],[1],None,[256],[0,256])

plt.plot(h,color = 'g')

plt.xlim([0,256])

plt.show()

怎么绘制直方图?

5、红色通道的直方图:

h = cv2.calcHist([img],[2],None,[256],[0,256])

plt.plot(h,color = 'r')

plt.xlim([0,256])

plt.show()

怎么绘制直方图?

6、把三个通道的直方图合并到一起,就是一个完整的直方图:

c = ('b','g','r')

for i,col in enumerate(c):

    h = cv2.calcHist([img],[i],None,[256],[0,256])

    plt.plot(h,color = col)

    plt.xlim([0,256])

plt.show()

怎么绘制直方图?

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢