博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
opencv python 直方图均衡化
阅读量:7119 次
发布时间:2019-06-28

本文共 897 字,大约阅读时间需要 2 分钟。

直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法.通过这种方法,亮度可以更好地在直方图上分布.这样就可以用于增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能.

clipboard.png

OpenCV中的直方图均衡

import cv2import numpy as npfrom matplotlib import pyplot as pltimg = cv2.imread('img.jpg',0)equ = cv2.equalizeHist(img)res = np.hstack((img,equ)) #stacking images side-by-sidecv2.imshow('show',res)cv2.waitKey()

clipboard.png

CLAHE(对比度有限自适应直方图均衡)

确实,直方图均衡后背景对比度有所改善.但比较两个图像,由于亮度过高,我们丢失了大部分信息,这是因为它的直方图并不局限于特定区域.

为了解决这个问题,使用自适应直方图均衡.图像被划分为几个小块,称为“tiles”(在OpenCV中默认值是8x8).然后每一个方块都是像平常一样的直方图,因此,直方图会限制在一个小区域(除非有噪声)。如果噪音在那里,它就会被放大.为了避免这种情况,会应用对比限制.如果任何直方图bin超出指定的对比度限制(默认情况下是40),在应用直方图均衡之前,这些像素被裁剪并均匀地分布到其他bin.均衡后,删除边界中的工件,采用双线性插值.

代码

import cv2import numpy as npfrom matplotlib import pyplot as pltimg = cv2.imread('img.jpg',0)# create a CLAHE object (Arguments are optional).clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8,8))cl1 = clahe.apply(img)cv2.imshow('show',cl1)cv2.waitKey()

clipboard.png

转载地址:http://jubel.baihongyu.com/

你可能感兴趣的文章
Android进阶必学retrofit源码解析
查看>>
java 进销存 crm websocket即时聊天发图片文字 好友群组 SSM源码
查看>>
Day7:html和css
查看>>
什么是 5G?它比 4G 好在哪里?
查看>>
[译] C++ 和 Android 本地 Activity 初探
查看>>
Java异常简介及异常信息缺失处理
查看>>
VBA+正则表达式解决订单小问题
查看>>
字符编码ASCII、Unicode、UTF-8
查看>>
mybatis+dubbo+ springmvc+zookeeper分布式架构
查看>>
MJRefresh源码解读
查看>>
easyui tabs切换和单个页面手动刷新以及点击添加新的tabs
查看>>
一天4-5小时睡眠也可以高效工作
查看>>
图形化编程语言的设计
查看>>
实现一个前端路由,如何实现浏览器的前进与后退 ?
查看>>
面试题 async/await
查看>>
多线程协作wait、notify、notifyAll方法简介理解使用 多线程中篇(十四)
查看>>
Handler源码剖析
查看>>
微服务监控神器Prometheus的安装部署
查看>>
Python3 爬虫
查看>>
java常用多线程创建方式
查看>>