wordpress 5.2设置中文版seo网站提交
基于Python的OpenCV基础入门——图像直方图
- 直方图
 - 图像直方图
 
- 图像直方图代码以及实现效果
 
直方图
直方图是一种用于描述图像亮度分布的统计工具。它将图像的像素亮度值按照不同的亮度等级进行计数,并以直方图的形式呈现出来。图像直方图可以显示图像中每个亮度级别的像素数量,从而用于分析图像的亮度分布情况。
图像直方图
hist = cv2.calcHist([img], [channels], Mask, [histSize], ranges)
 参数:
 [img]: 必须用方括号括起来,表示被计算的图像,可以是多幅。
 [channels]: 用于计算直方图的通道,这里使用灰度图计算直方图,所以就直接使用第一个通道,多幅图像相当于多通道;
 Mask: 与原图维度相同,被计算的区域,1 计算,0 不计算,不使用该参数用 None。
 [histSize]: 表示这个直方图分成多少份(即多少个直方柱的数量)。
 ranges: 表示直方图中各个像素的值,[0.0, 256.0]表示直方图能表示像素值从 0.0 到 256 的像素。
图像直方图代码以及实现效果
import cv2  
import matplotlib.pyplot as pltimg = cv2.imread("img/cat.jpg")  img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB) #将BGR 格式转换为RGB 格式  # 绘制图像直方图  
plt.subplot(2,1,1) # 2 * 1布局的 上面   
hist1=plt.hist(img.ravel(), 256, [0, 256]) #numpy 的ravel 函数功能是将多维数组降为一维数组  # 画三通道图像的折线图  
plt.subplot(2,1,2)  
color = ('b', 'g', 'r') #这里画笔颜色的值可以为大写或小写或只写首字母或大小写混合  
for i , color in enumerate(color):   hist = cv2.calcHist([img], [i], None, [256], [0, 256]) #计算直方图  plt.plot(hist, color)  plt.xlim([0, 256])  plt.show()
 
图像直方图的实现效果如下:
 
