opencv-直方图

直方图是一种对图像亮度分布的统计表示,它显示了图像中每个灰度级别的像素数量。在OpenCV中,你可以使用cv2.calcHist() 函数计算直方图。

以下是一个简单的示例,演示如何计算和绘制图像的直方图:

python 复制代码
 import cv2
import numpy as np
import matplotlib.pyplot as plt
# 读取图像
img = cv2.imread(r"C:\Users\mzd\Desktop\opencv\2.jpg", cv2.IMREAD_GRAYSCALE)
# 计算直方图
hist = cv2.calcHist([img], [0], None, [256], [0, 256])

# 绘制直方图
plt.plot(hist)
plt.title('Histogram')
plt.xlabel('Pixel Value')
plt.ylabel('Frequency')
plt.show()

# 显示原始图像
cv2.imshow('Image', img)

# 等待用户按下任意键
cv2.waitKey(0)
cv2.destroyAllWindows()

在这个示例中,cv2.calcHist() 函数用于计算图像的直方图。它的参数包括:

  • [img]: 输入图像,可以是多通道图像,但在这里我们使用灰度图像。
  • [0]: 通道索引,对于灰度图像只有一个通道,所以使用 0。
  • None: 掩码,通常设置为 None。
  • [256]: 直方图的 bin 数量,表示灰度级别的数量。
  • [0, 256]: 像素值的范围。

绘制直方图使用了 Matplotlib 库,可以根据需要选择其他绘图工具。

直方图有助于理解图像的亮度分布,可以用于调整图像的对比度、亮度等。

相关推荐
Wild_Pointer.3 分钟前
深入浅出OpenCV:查阅OpenCV的实现源码
人工智能·opencv·计算机视觉
像风没有归宿a4 分钟前
AI驱动金融:智能投顾、风控与反欺诈的实战案例
人工智能
聆风吟º5 分钟前
openEuler实战:AI场景进程调度性能全面验证
人工智能·ai·openeulei
阿杰学AI12 分钟前
AI核心知识37——大语言模型之ASI(简洁且通俗易懂版)
人工智能·ai·语言模型·自然语言处理·agi·asi·超人工智能
数据门徒12 分钟前
《人工智能现代方法(第4版)》 第9章 一阶逻辑中的推断 学习笔记
人工智能·笔记·学习·算法
nix.gnehc14 分钟前
Agentic AI
人工智能·agentic ai
xqlily17 分钟前
PyTorch:深度学习研究的核心引擎(上)
人工智能·pytorch·深度学习
虎头金猫18 分钟前
从杂乱到有序,Paperless-ngx 加个cpolar更好用
linux·运维·人工智能·docker·开源·beautifulsoup·pandas
roman_日积跬步-终至千里19 分钟前
【计算机视觉(6)】边缘与直线检测基础篇:从Canny到Hough变换
人工智能·计算机视觉
Keep__Fighting20 分钟前
【机器学习:决策树】
人工智能·算法·决策树·机器学习·scikit-learn