图像直方图

图像直方图

笔记及代码

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()
相关推荐
墨流觞雪5 小时前
从 76,175 字符到 4,507:我把 AI 的记忆拆成四层
人工智能
DisonTangor5 小时前
FLUX 3 Image Klein 中文全解:5.6B 开源文生图与图像编辑模型实战指南
人工智能·ai作画·开源·aigc·1024程序员节
匠测AI说5 小时前
AI for Testing 提效实战 · 执行自动化(六):轻量 Mock 编排实战——WireMock 手工落地 + AI 加速
人工智能·测试
我是小邵5 小时前
1024 特辑:我写过的 Skill,正在变成 AI 编程的基础设施
人工智能·agent·ai编程·skill·知识沉淀·协作·开发者工具
八苦5 小时前
本地视频 → 序列帧动画精灵图
人工智能
一枕槐安4875 小时前
从 58% 爬回 84%:我们用 Contextual Retrieval + 混合检索 + 条件重排,修好了 RAG 最脏的两类病
人工智能·ai
程序员小袁5 小时前
05-实现一个Agent从最小闭环开始
人工智能
deepdata_cn5 小时前
AI正在改写逆向工程的成本曲线
人工智能·软件逆向
方方洛5 小时前
ray教程-13-RayTrain与分布式训练
人工智能·分布式·机器学习
阿文和她的Key5 小时前
PHP2Shell事故四层拆解:AI找洞是小时级,披露协调还是邮件级
网络·人工智能·架构·php