为什么80%的码农都做不了架构师?>>>   

#coding:utf-8
'''
直方图均衡化
作用:通常用来增加图像局部对比度,尤其在图像的有用数据的对比度相当接近时,通过直方图均衡化,图像的亮度可以更好地在直方图上分布
基本思想:把原始图像的直方图变换为均匀分布的形式,增加了像素灰度值的动态范围,从而增强图像的整体对比度效果算法实现步骤:
1、计算图像f的各个灰度级中像素出现的概率p(i) = n(i) / n ,{i|0,1,...,L - 1}其中:n(i)表示灰度级i出现的次数,L是图像中所有的灰度数,p实际上是图像的直方图归一化到0~1范围内,如果把c作为对应p的累计概率函数,则定义为:ic(i) = ∑(p(x(j))j=0c是图像的累计归一化直方图2、创建一个形式为 y = T(x)的变化,原始图像中的每个值就生产一个y,这样y的累计概率函数形式就可以在所有值范围内进行线性化,转换公式为:y(i) = T(x(i)) = c(i)
'''import cv2
import numpy as npdef hist_eq(image):img_gray = cv2.cvtColor(image,cv2.COLOR_RGB2GRAY)rows,cols = img_gray.shapegray_flat = img_gray.reshape((rows*cols,))dist_flat = np.zeros_like(gray_flat)count_pixel = np.zeros((256,),np.int32)temp = np.zeros((256,),np.int32)pixmap = np.zeros((256,),np.uint8)image_bytes = cols * rows# 计算各个灰度级数量for index,value in enumerate(gray_flat):count_pixel[value] += 1# 计算灰度级的累计分布for i in range(256):if i == 0:temp[0] = count_pixel[0]else:temp[i] = temp[i - 1] + count_pixel[i]# 计算累计概率函数,并把值扩展到0~255value = 255.0 * (temp[i] / image_bytes)if value > 255:value = 255if value < 0:value = 0pixmap[i] = value# 灰度等级映射转换for i in range(image_bytes):dist_flat[i] = pixmap[gray_flat[i]]dist = dist_flat.reshape((rows,cols))return distsrc = cv2.imread('datas/l1.jpg')
gray = cv2.cvtColor(src,cv2.COLOR_RGB2GRAY)dist = hist_eq(src)# 调用OpenCV函数
dist_cv = np.zeros_like(gray)
cv2.equalizeHist(gray,dist_cv)cv2.imshow('src',gray)
cv2.imshow('dist',dist)
cv2.imshow('opencv-histeq',dist_cv)
cv2.waitKey()
cv2.destroyAllWindows()

转载于:https://my.oschina.net/wujux/blog/1798044

Python OpenCV实例:图像直方图均衡化(数学公式简单实现)相关推荐

  1. 【Python OpenCV】图像直方图 calcHist方法 equalizeHist方法

    [Python OpenCV]图像直方图 calcHist方法 equalizeHist方法 (一)图像直方图 图像的构成是有像素点构成的,每个像素点的值代表着该点的颜色(灰度图或者彩色图).所谓直方 ...

  2. python库skimage 图像直方图均衡化、自适应均衡化、对比度拉伸实现

    直方图全局均衡化 from skimage import exposure # Equalization img_eq = exposure.equalize_hist(img) 直方图自适应均衡化 ...

  3. Python+OpenCV:图像对比度受限自适应直方图均衡化(CLAHE, Contrast Limited Adaptive Histogram Equalization)

    Python+OpenCV:图像对比度受限自适应直方图均衡化(CLAHE, Contrast Limited Adaptive Histogram Equalization) ############ ...

  4. Python OpenCV学习笔记之:图像直方图均衡化

    # -*- coding: utf-8 -*- """ 图像直方图均衡化 """ import cv2 import numpy as np ...

  5. opencv 绘制图像直方图,实现直方图均衡化

    直方图 直方图简单来说就是图像中每个像素值的个数统计,比如说一副灰度图中像素值为0的有多少个,1的有多少个--直方图是一种分析图像的手段: 直方图计算 opencv库计算直方图 使用 cv.calcH ...

  6. 灰度拉伸python,Python OpenCV实例:图像灰度拉伸

    Python OpenCV实例:图像灰度拉伸 Python OpenCV实例:图像灰度拉伸 为什么80%的码农都做不了架构师?>>> #coding:utf-8 ''' 灰度拉伸 定 ...

  7. 使用Python,OpenCV计算图像直方图(cv2.calcHist)

    使用Python,OpenCV计算图像直方图(cv2.calcHist 1. 效果图 2. 原理 2.1 什么是图像直方图? 2.2 计算直方图 2.3 可视化蒙版区域 3. 源码 参考 这篇博客将介 ...

  8. Python实现图像直方图均衡化算法

    title: "Python实现图像直方图均衡化算法" date: 2018-06-12T17:10:48+08:00 tags: [""] categorie ...

  9. 图像直方图均衡化算法 python实现

    一. 直方图均衡化: 直方图均衡化是使图像直方图变得平坦的操作.直方图均衡化能够有效地解决图像整体过暗.过亮的问题,增加图像的清晰度. 具体流程如下所示.其中S是总的像素数,Zmax是像素的最大取值( ...

  10. python高通滤波_python实现直方图均衡化,理想高通滤波与高斯低通滤波

    写在前面 HIT大三上学期视听觉信号处理课程中视觉部分的实验二,经过和学长们实验的对比发现每一级实验要求都不一样,因此这里标明了是2019年秋季学期的视觉实验二. 由于时间紧张,代码没有进行任何优化, ...

最新文章

  1. ICCV 2019 | 加一个任务路由让数百个任务同时跑起来,怎么做到?
  2. 【带你重拾Redis】Redis持久化
  3. 荣耀手表magic2更新鸿蒙时间表,荣耀手表2更新百种运动模式 618期间到手价799元起...
  4. Angular self study 1 - Bootstrap
  5. python列表姓氏_python数据分析实例(六) 中国姓氏数据
  6. apache2.4.39 php,win7 配置AMP环境(apache2.4.39 + php7.1.28)
  7. P1119 灾后重建(floyd进阶)
  8. Nemo(Nightwish乐队)
  9. docker pull理解误区
  10. linux(Centos7)安装elasticsearch6.2.2
  11. 数据库备份工具mysqldump重要参数详解
  12. macOS苹果电脑下载m3u8、ts视频
  13. 【计算机图形学】Liang-Barsky裁剪算法(C++实现)
  14. BIGEMAP如何添加在线第三方地图
  15. NS3系列—3———NS3中文:4 概念描述
  16. [ISSUE]angularjs resolve: $injector:unpr] Unknown provider:
  17. Java中的基本数据类型讲解(数值型、字符型、布尔型)
  18. ucosIII 共享资源(信号量、互斥信号量)
  19. Kafka+zookeeper集群搭建
  20. postek二次开发_博思得RFID标签打印机解析

热门文章

  1. 栈C/C++实现(数据结构严蔚敏版)
  2. python读取路径太长_路径名太长,无法打开?
  3. 窄行打印纸打印机规格_电脑打印纸的尺寸和打印机纸张规格的设置
  4. 存储过程提示data truncation_手机DATA重新分区教程(超详细)
  5. 注解赋值可以是方法_P7笔记,把Spring注解讲的明明白白
  6. python:字符串常用处理函数:
  7. 【通知】《深度学习之模型设计》第三次重印,欢迎读者支持!
  8. 【杂谈】一个五岁孩子妈妈在有三AI学习并且赚钱的故事
  9. 【每周CV论文推荐】 初学深度学习单张图像三维人脸重建需要读的文章
  10. 【NLP-NER】什么是命名实体识别?