import os
import cv2
import numpy as npdef calcHist(mat):#统计元素个数mat = np.array(mat)hist = []for i in range(256):hist.append(len(mat[mat==i]))return histdef get_map(Hist):# 计算概率分布PrHist = np.array(Hist)sum_Hist = sum(Hist)Pr = Hist / sum_Hist# 计算累计概率SkSk = []temp_sum = 0for n in Pr:temp_sum = temp_sum + nSk.append(temp_sum)Sk = np.array(Sk)return Sk# 得到图片像素的概率分布
def get_infer_map(infer_img):infer_Hist = calcHist(infer_img)infer_map = get_map(infer_Hist)return infer_map# 根据两张图的概率分布计算像素值映射关系
def get_finalmap(infer_map,img_map):final_map = [] # 原图像素点映射到目标图的mapindex = 0for i in range(len(img_map)):# 防止像素值超过255if index == 255:final_map.append(255)continue# 将像素值依据自身概率分布映射到目标图片的概率分布上if infer_map[index] > img_map[i]:final_map.append(index)else:while(infer_map[index] <= img_map[i]):index += 1# 防止像素值超过255if index == 255:breakfinal_map.append(index)return final_mapdef get_new_img(img, infer_map):new_img = img.copy()img_map = get_infer_map(img)final_map = get_finalmap(infer_map,img_map)# 将像素点的值进行映射# w, h = img.shape# for i in range(w):#     for j in range(h):#         temp = img[i, j]#         new_img[i, j] = final_map[temp]# 快速的计算方法for i in range(256):new_img[img==i] = final_map[i]return new_imgif __name__ == "__main__":dstroot = './imgs'  # 要进行直方图匹配的图像infer_img_path = './base.jpg'  # 基准图像infer_img = cv2.imread(infer_img_path,0)outroot = './out3'  # 输出结果图os.makedirs(outroot,exist_ok=True)infer_map = get_infer_map(infer_img)  # 计算参考映射关系dstlist = os.listdir(dstroot)for img in dstlist:img_path = os.path.join(dstroot, img)print(img_path)img_org = cv2.imread(img_path,0)new_img = get_new_img(img_org, infer_map)  # 根据映射关系获得新的图像new_path = os.path.join(outroot, img)cv2.imwrite(new_path, new_img)

直方图规定化python+opencv实现相关推荐

  1. python opencv直方图_【python opencv】直方图均衡

    搜索热词 考虑这样一个图像,它的像素值仅局限于某个特定的值范围.例如,较亮的图像将把所有像素限制在高值上.但是一幅好的图像会有来自图像所有区域的像素.因此,您需要将这个直方图拉伸到两端(如下图所示,来 ...

  2. python+opencv图像处理之七:直方图均衡化

    python+opencv图像处理之七:直方图均衡化 目录 python+opencv图像处理之七:直方图均衡化 一.直方图均衡化 二.直方图绘制 三.直方图均衡化 四.有限对比适应性直方图均衡化 一 ...

  3. Python+OpenCV图像处理(五)——图像阈值和二值化

    系列文章 Python+OpenCV图像处理(一)--OpenCV框架与图像插值算法 Python+OpenCV图像处理(二)--几何变换 Python+OpenCV图像处理(三)--彩色空间互换 P ...

  4. Python+Opencv图像处理新手入门教程(三):阈值与二值化

    一步一步来吧 上一节: Python+Opencv图像处理新手入门教程(二):颜色空间转换,图像大小调整,灰度直方图 1.Intro 今天这节我们主要研究利用阈值处理图像.例如对于输入图像: 如何做一 ...

  5. python opencv二值化图像_python opencv,读取彩色图像,提取三通道,图像二值化,提取图像的边缘...

    python opencv,读取彩色图像,提取三通道,图像二值化,提取图像的边缘 python opencv 1,读取图像 2,图像变矩阵 3,图像转灰度图像 4,彩色图像是3D数组 5,灰度图像是2 ...

  6. python做直方图-python OpenCV学习笔记实现二维直方图

    本文介绍了python OpenCV学习笔记实现二维直方图,分享给大家,具体如下: 官方文档 – https://docs.opencv.org/3.4.0/dd/d0d/tutorial_py_2d ...

  7. 在OpenCV下写的直方图匹配(直方图规定化)C++源码!

    直方图匹配的原理就不多作解释了,我曾经还将MATLAB源码改写成过C源码,详情可见我的博文 根据MATLAB的histeq函数改写的运行在OpenCV下的直方图规定化C源码! 本文已转移到 https ...

  8. 根据MATLAB的histeq函数改写的运行在OpenCV下的直方图规定化C源码

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 2016-6-8日用C++也实现了直方图规定化, ...

  9. opencv python 直方图反向投影_python OpenCV学习笔记直方图反向投影的实现

    本文介绍了python OpenCV学习笔记直方图反向投影的实现,分享给大家,具体如下: 它用于图像分割或寻找图像中感兴趣的对象.简单地说,它创建一个与我们的输入图像相同大小(但单通道)的图像,其中每 ...

  10. 用python怎么样实现图像二值化_使用Python+OpenCV如何实现图像二值化

    使用Python+OpenCV如何实现图像二值化 发布时间:2020-10-26 14:15:52 来源:亿速云 阅读:77 作者:蛋片鸡 这篇文章运用简单易懂的例子给大家介绍使用Python+Ope ...

最新文章

  1. [置顶] 安卓高手之路之 WindowManager
  2. 优秀设计师必备:视觉传达设计与视觉思维
  3. 用C语言做的 一个整人的小程序
  4. GDB调试程序系列 (3)
  5. linux deliver分发管理,Erlang/Elixir: 使用 Edeliver 进行自动化的持续部署
  6. [蓝桥杯][算法提高VIP]打水问题(贪心)
  7. Android内存泄漏检测利器:LeakCanary
  8. Java 1.2.2 格式化输出
  9. Android图片爬虫,看妹纸神器项目源码,ListView单张图片查看
  10. 为什么总说程序员是吃青春饭的? 32岁程序员直接被面试官送走?
  11. 1.定义一个基类 Base,有两个公有成员函数fn1( ),fn2 ( )。 私有派生出Derived类,如何通过Derived 类的对象调用基类的函数fnl() ?
  12. MySQL【部署 04】8.0.25离线部署(下载+安装+配置)Failed dependencies 问题处理及8.0配置参数说明
  13. TRIE树在输入法分词的应用
  14. 在UC浏览器投放广告的优势、效果!
  15. python爬取凤凰新闻网_爬取网易,搜狐,凤凰和澎湃网站评论数据,正负面情感分析...
  16. Unity中AssetBundle打包文件大致解读
  17. 2019校招面经大汇总
  18. 项目管理进阶--软件开发项目中的团队组成
  19. 单例模式(Python中的单例类)
  20. 抓取网页中的Silverlight数据初探

热门文章

  1. 【软件工程】层次图、HIPO图——期末快速复习用
  2. SAS安装数据SID文件无效问题的解决
  3. 破解WinRAR广告
  4. java算法面试题_Java算法面试题汇总
  5. 利用rancher轻松构建pass平台
  6. Android动画之属性动画
  7. secure CRT 信号灯超时时间已到
  8. Mimics 21.0 安装
  9. DupanTools第三方不限速下载工具
  10. 解决数据库左右连接,查询不出为空的解决方案