图像直方图

图像直方图

笔记及代码

python 复制代码
import cv2
import numpy as np
import matplotlib.pyplot as plt

"""
图像直方图:数字图像中亮度分布的直方图,标绘了图像中每个亮度的像素值
横坐标:图像中各个像素点的灰度级(表示黑白图像或彩色图像转换为灰度图像后的明暗程度)
纵坐标:具有该灰度级的像素个数
用于修图

归一化直方图:
纵坐标:灰度级的概率
"""
img = cv2.imread('./img/cat.jpeg')

"""
绘制直方图
"""
# 注意[]是列表,说明可以有多个,通道([0], [1], [2]):[0],mask(掩码图像,如果要统计整幅图像为None,要统计图像的某一部分,在下面介绍):None
# histSize(直方图柱子的数量):[256], ranges(像素范围):[0, 255]
hist = cv2.calcHist([img], [0], None, [256], [0, 255])

# 绘制掩码图像 zeros全黑图像
img1 = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
mask = np.zeros(img1.shape, np.uint8)

# 设置要显示统计直方图的区域 255是白色
mask[200:400, 200:400] = 255
hist2 = cv2.calcHist([img1], [0], mask, [256], [0, 255])

# img和img先做与运算,得到的结果再和mask运算
cv2.imshow("mask", cv2.bitwise_and(img1, img1, mask))


"""
直方图均衡化
"""
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 变黑
gray_dark = gray - 40

# 变量
gray_bright = gray + 40

# 查看各自的直方图
hist_gray = cv2.calcHist([gray], [0], None, [256], [0, 255])
hist_dark = cv2.calcHist([gray_dark], [0], None, [256], [0, 255])
hist_bright = cv2.calcHist([gray_bright], [0], None, [256], [0, 255])

# 画图各自的直方图
plt.plot(hist_gray, label='gray')
plt.plot(hist_dark, label='dark')
plt.plot(hist_bright, label='bright')
# plt.show()

# 均衡化
dark_e = cv2.equalizeHist(gray_dark)
bright_e = cv2.equalizeHist(gray_bright)

# 画出处理后的直方图
# 画图各自的直方图
plt.plot(dark_e, label='dark_e')
plt.plot(bright_e, label='bright_e')
plt.show()


cv2.imshow('gray_dark', np.hstack((gray_dark, dark_e)))
cv2.imshow('gray_bright', np.hstack((gray_bright, bright_e)))
cv2.waitKey(0)
cv2.destroyAllWindows()
相关推荐
奔跑吧邓邓子13 分钟前
DeepSeek 赋能自动驾驶仿真测试:解锁高效精准新范式
人工智能·机器学习·自动驾驶·仿真测试·deepseek
深兰科技15 分钟前
深兰科技陈海波率队考察南京,加速AI医诊大模型区域落地应用
人工智能·深兰科技·陈海波
Fuliy961 小时前
【自然语言处理】——基于与训练模型的方法【复习篇1】
人工智能·自然语言处理
项目管理打工人1 小时前
高端装备制造企业如何选择适配的项目管理系统提升项目执行效率?附选型案例
大数据·人工智能·驱动开发·科技·硬件工程·团队开发·制造
江苏泊苏系统集成有限公司1 小时前
集成电路制造设备防震基座选型指南:为稳定护航-江苏泊苏系统集成有限公司
人工智能·深度学习·目标检测·机器学习·制造·材料工程·精益工程
吹风看太阳1 小时前
机器学习03-色彩空间:RGB、HSV、HLS
人工智能·机器学习
Ronin-Lotus2 小时前
深度学习篇---Pytorch框架下OC-SORT实现
人工智能·pytorch·python·深度学习·oc-sort
雾迟sec2 小时前
TensorFlow 的基本概念和使用场景
人工智能·python·tensorflow
Blossom.1182 小时前
人工智能在智能健康监测中的创新应用与未来趋势
java·人工智能·深度学习·机器学习·语音识别
GIS小天2 小时前
AI预测3D新模型百十个定位预测+胆码预测+去和尾2025年5月31日第94弹
人工智能·算法·机器学习·彩票