当前位置: 首页 > article >正文

opencv学习:图像直方图均衡化与对比度受限的自适应直方图均衡化及实验代码

直方图均衡化是一种图像处理技术,用于改善图像的全局对比度,通过均匀分布图像的灰度级来实现。CLAHE是一种改进的直方图均衡化技术,它将图像分割成多个小块,对每个小块分别进行直方图均衡化,然后合并结果,以避免在大范围均衡化中可能出现的噪声放大问题。

实验步骤

  1. 使用OpenCV读取图像文件“woman.png”为灰度图像。
    phone=cv2.imread("woman.png",cv2.IMREAD_GRAYSCALE)
  2. 计算并显示原始图像的直方图。
    plt.hist(phone.ravel(),bins=256)
    plt.show()
  3. 应用直方图均衡化,计算并显示均衡化后的图像的直方图。
    phone_equalize=cv2.equalizeHist(phone)
    plt.hist(phone_equalize.ravel(),bins=256)
    plt.show()
  4. 将原始图像和均衡化后的图像水平堆叠,显示在同一个窗口中。
    res=np.hstack((phone,phone_equalize))
    cv2.imshow("phone_equalize",res)
  5. 创建CLAHE对象,设置clipLimit和tileGridSize参数。
    clahe=cv2.createCLAHE(clipLimit=1,tileGridSize=(16,16))
  6. 应用CLAHE处理原始图像。
    phone_clahe=clahe.apply(phone)
  7. 将原始图像、直方图均衡化后的图像和CLAHE处理后的图像水平堆叠,显示在同一个窗口中。
    res=np.hstack((phone,phone_equalize,phone_clahe))
    cv2.imshow("phone_equalize",res)

实验结果

完整代码

phone=cv2.imread("woman.png",cv2.IMREAD_GRAYSCALE)
plt.hist(phone.ravel(),bins=256)
plt.show()

phone_equalize=cv2.equalizeHist(phone)
plt.hist(phone_equalize.ravel(),bins=256)
plt.show()

res=np.hstack((phone,phone_equalize))
cv2.imshow("phone_equalize",res)
cv2.waitKey(0)

clahe=cv2.createCLAHE(clipLimit=1,tileGridSize=(16,16))
phone_clahe=clahe.apply(phone)
res=np.hstack((phone,phone_equalize,phone_clahe))
cv2.imshow("phone_equalize",res)
cv2.waitKey(0)
plt.show()


http://www.kler.cn/news/308012.html

相关文章:

  • 针对特定接口记录审核日志类的写入数据库的方法
  • raksmart的G口大流量服务器怎么样?
  • C++学习, 数据抽象
  • 物联网架构
  • 单片机带隙电压基准电路
  • C#环境搭建和入门教程--vs2022之下
  • 51单片机应用开发---数码管的控制应用
  • c++_list
  • 前端开发macbook——NVM环境配置以及git配置流程
  • 《论软件需求管理》写作框架,软考高级系统架构设计师
  • TCP/IP - TCP
  • MySQL5.7基于mysqldump、xtrbackup、innobackupex工具进行全量备份/恢复、增量备份/恢复
  • 【编程基础知识】Java处理JSON格式转换的常用第三方库
  • 面试经典150题——多数元素
  • 表格标记<table>
  • [Linux]:动静态库
  • Python的学习步骤
  • 在docker中安装 zendesk/maxwell 失败,解决方法
  • 51单片机-IIC实验1-AT24C02数据存储(实战1)
  • 5. 理解 Hugging Face 的 AutoModel 系列:不同任务的自动模型加载类
  • git 问题 --- fatal: detected dubious ownership in repository at
  • 停车位检测-停车场车位识别
  • 面试题总结(三) -- 内存管理篇
  • oracle 多表查询
  • MySQL——数据类型(一)
  • linux驱动开发-arm汇编基础
  • 蚁群算法(ACO算法)求解实例---旅行商问题 (TSP)
  • ubuntu20.04编译mesa
  • Vue学习记录之一(介绍及脚手架的使用)
  • 【webpack4系列】webpack构建速度和体积优化策略(五)