图像直方图

图像直方图

笔记及代码

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()
相关推荐
yiyu07164 小时前
3分钟搞懂深度学习AI:实操篇:池化层
人工智能·深度学习
亚马逊云开发者4 小时前
5 分钟用 Amazon Bedrock 搭一个 AI Agent:从零到能干活
人工智能·agent·amazon
小兵张健4 小时前
白嫖党的至暗时期
人工智能·chatgpt·aigc
IT_陈寒6 小时前
SpringBoot项目启动慢?5个技巧让你的应用秒级响应!
前端·人工智能·后端
小徐_23337 小时前
向日葵 x AI:把远程控制封装成 MCP,让 AI 替我远程控制设备
前端·人工智能
桦说编程8 小时前
Harness Engineering — AI 时代的工程最佳实践
人工智能·架构·代码规范
老纪的技术唠嗑局8 小时前
Agent / Skills / Teams 架构演进流程及技术选型之道
人工智能·agent
该用户已不存在8 小时前
除了OpenClaw还有谁?五款安全且高效的开源AI智能体
人工智能·aigc·ai编程
机器之心8 小时前
AI发布首个全球科学家社区爆火,硅谷投资圈:科技研究领域的「谷歌地图」来了!
人工智能·openai