图像直方图

图像直方图

笔记及代码

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()
相关推荐
Sim time4 分钟前
用AI从0开始量化交易-Anaconda环境(env)和缓存(pkg)更改储存位置
人工智能·python·conda
知识趣动10 分钟前
AI入门启航:看见知识库的运行原理
人工智能
灵声讯13 分钟前
开天社交大模型从7B到32B:趣丸科技如何以“情感浓度”破局AI社交体验
人工智能·科技·语言模型
struggle202519 分钟前
torchmd-net开源程序是训练神经网络潜力
c++·人工智能·python·深度学习·神经网络
夜松云26 分钟前
GoogLeNet:图像分类神经网络的深度剖析与实践
图像处理·人工智能·神经网络·分类·数据挖掘·卷积神经网络·分类算法
alex88861 小时前
电子制造智能化转型:MES如何解决工艺复杂、质量追溯与供应链协同
人工智能·科技·5g·云计算·社交电子·能源·制造
mubei-1231 小时前
深度学习的可解释性——SketchXAI:人类草图可解释性初探
人工智能·深度学习·可解释性
mailangduoduo1 小时前
基于双层注意力重加权 LSTM 的中文长文本谣言检测模型
人工智能·自然语言处理·文本分类·循环神经网络·长短期记忆网络
爆改模型1 小时前
【 CVPR2025】计算机视觉|CEM : 模型逆向工程?条件熵最大化来啦!
人工智能·计算机视觉
华科易迅1 小时前
人工智能学习57-TF训练
人工智能·学习·人工智能学习57-tf训练