彩色图像均衡化

在HSI空间对亮度分量进行均衡化

def method_one():img = cv2.imread('../assets/Fig6.png')his = cv2.cvtColor(img, cv2.COLOR_RGB2HLS)cv2.imshow('img', img)his_i = his[:, :, 1]equal_i = cv2.equalizeHist(hsl_i)his[:, :, 1] = equal_idst = cv2.cvtColor(his, cv2.COLOR_HLS2BGR)cv2.imshow('dst', dst)cv2.waitKey(0)cv2.destroyAllWindows()

对彩色图像的R,G,B三通道进行均衡化

 def method_two():img = cv2.imread('../assets/Fig6.png')(b, g, r) = cv2.split(img)equal_b = cv2.equalizeHist(b)equal_g = cv2.equalizeHist(g)equal_r = cv2.equalizeHist(r)dst = cv2.merge((equal_b, equal_g, equal_r))cv2.imshow('img', img)cv2.imshow('dst', dst)cv2.waitKey(0)cv2.destroyAllWindows()

对彩色图像进行规定话

现在有两幅图,FigA 和 FigB,现在要对FigA进行规定化,使FigA 图像的直方图规范化最接近FigB的情况。

def method_three():img = cv2.imread('../assets/Fig6A.jpg')dst = cv2.imread('../assets/Fig6B.jpg')def_img = cv2.imread('../assets/Fig6A.jpg')color = ('b', 'g', 'r')for i, col in enumerate(color):hist1, bins = np.histogram(img[:, :, i].ravel(), 256, [0, 256])hist2, bins = np.histogram(dst[:, :, i].ravel(), 256, [0, 256])# 获得累计直方图cdf1 = hist1.cumsum()cdf2 = hist2.cumsum()# 归一化处理cdf1_hist = hist1.cumsum() / cdf1.max()cdf2_hist = hist2.cumsum() / cdf2.max()# diff_cdf 里是每2个灰度值比率间的差值diff_cdf = [0]*256for j in range(256):for k in range(256):diff_cdf[j][k] = abs(cdf1_hist[j] - cdf2_hist[k])# FigA 中的灰度级与目标灰度级的对应表lut = np.zeros(256, dtype=np.int)for j in range(256):squ_min = diff_cdf[j][0]index = 0for k in range(256):if squ_min > diff_cdf[j][k]:squ_min = diff_cdf[j][k]index = klut[j] = ([j, index])h = int(img.shape[0])w = int(dst.shape[1])# 对原图像进行灰度值的映射for j in range(h):for k in range(w):def_img[j, k, i] = lut[img[j, k, i]][1]cv2.namedWindow('Fig6A', 0)cv2.resizeWindow('Fig6A', 400, 520)cv2.namedWindow('Fig6B', 0)cv2.resizeWindow('Fig6B', 400, 520)cv2.namedWindow('def', 0)cv2.resizeWindow('def', 400, 520)cv2.imshow('Fig6A', img)cv2.imshow('Fig6B', dst)cv2.imshow('def', def_img)cv2.waitKey(0)cv2.destroyAllWindows()

OpenCV-Python 彩色图像均衡化与规定化相关推荐

  1. python opencv 直方图均衡_深入理解OpenCV+Python直方图均衡化

    原标题:深入理解OpenCV+Python直方图均衡化 正文 直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法. 基本思想:把原始图的直方图变换为均匀分 布的形式,这样就增加了像素灰度 ...

  2. OpenCV+python:图像二值化

    1,图像二值化概念及方法 一个像素点的颜色是由RGB三个值来表现的,所以一个像素点矩阵对应三个颜色向量矩阵,分别是R矩阵,G矩阵,B矩阵,它们也都是同样大小的矩阵. 在图像处理中,用RGB三个分量(R ...

  3. Python+OpenCV:直方图均衡化(Histogram Equalization)

    Python+OpenCV:直方图均衡化(Histogram Equalization) ####################################################### ...

  4. opencv python matplotlib.pyplot.hist() 如何绘制灰度直方图,如何根据灰度直方图确定最优二值化值

    什么是灰度直方图? 图像直方图(histogram)是图像的统计学特征,常用于了解图像的基本特征以便分析.不过图像的直方图不具有空间特征. 图像的灰度直方图(histogram),就是将图像转化成灰度 ...

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

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

  6. OpenCV+python:Canny边缘检测算法

    1,边缘处理 图像边缘信息主要集中在高频段,通常说图像锐化或检测边缘,实质就是高频滤波.我们知道微分运算是求信号的变化率,具有加强高频分量的作用. 在空域运算中来说,对图像的锐化就是计算微分.由于数字 ...

  7. OpenCV Python在计算机视觉中的应用

    OpenCV Python教程 在这篇文章中,我们将使用Python中的OpenCv来涵盖计算机视觉的各个方面.OpenCV长期以来一直是软件开发的重要组成部分. 什么是计算机视觉? 我们考虑一个场景 ...

  8. OpenCV Python教程(3)(4)(5): 直方图的计算与显示 形态学处理 初级滤波内

    OpenCV Python教程(3.直方图的计算与显示) 本篇文章介绍如何用OpenCV Python来计算直方图,并简略介绍用NumPy和Matplotlib计算和绘制直方图 直方图的背景知识.用途 ...

  9. Opencv Python图像处理进阶教程②

    Opencv Python图像处理进阶教程 概述: 代码: https://github.com/bai1231/opencv-learn_and_pratice 1. 图像卷积与应用 图像去噪 图像 ...

最新文章

  1. 基于pyBoard的进一步的一些测试实验,MC3008
  2. 2019年宁夏文化科技卫生“三下乡”集中示范活动启动
  3. linux 程序随命令窗口退出一起退出
  4. P2414 NOI2011阿狸的打字机 [AC自动机,dfs序]
  5. 全面了解 Nginx 到底能做什么
  6. python爬取网上租房信息_Python爬虫入门 | 5 爬取小猪短租租房信息
  7. 流式大数据计算实践(4)----HBase安装
  8. 超强计算机病毒代码,木马编程 之超强服务... 附代码 原创.
  9. PHP开发者最好的学习资源收集
  10. ue4设置组合键_UE4快捷键
  11. 【总结】1164- 一篇非常 Nice 的 UmiJS 教程
  12. c语言判断按下键盘,找出键盘上当前按下的键
  13. Selenium html之于ul标志代码分析与使用
  14. php对视频分割,如何把一个视频无损分割成多个视频片段(最好是质量和格式无变化)...
  15. python爬虫:requests和urllib爬豆瓣Top250
  16. 教你同时分析圆通快递多个单号的物流情况
  17. 360卫士锁定IE主页之更换主页
  18. 利用simhash来进行文本去重复
  19. 女神节送什么给礼物女友好,2022女神节送礼合集
  20. python 股票交易接口 github_GitHub - gusihao/vnpy: 基于python的开源交易平台开发框架...

热门文章

  1. shell编程必须要掌握的命令-xargs
  2. 遥感图像解译与单相机摄影测量
  3. bean的scope
  4. 阿里Java开发规约(2)
  5. Manacher 求最长回文子串算法
  6. lintcode 中等题:subSets 子集
  7. windows内核中杀任意进程,可杀360!
  8. java 输出 三角形_Java实现输出三角形
  9. gitee提交代码_在Gitee获8.5k Star,做微信小程序商城看这一个开源项目就够了
  10. hdu4932 小贪心