OpenCV-Python 彩色图像均衡化与规定化

图像匀光匀色 / 计算每个通道的平均值。// 调整每个通道的增益。// 显示调整后的图像。 阅读详情

彩色图像均衡化

在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_i
    dst = 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]*256 for i in range(256)]
        for 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,2), dtype=np.int)
        for j in range(256):
            squ_min = diff_cdf[j][0]
            index = 0
            for k in range(256):
                if squ_min > diff_cdf[j][k]:
                    squ_min = diff_cdf[j][k]
                    index = k
            lut[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()

在这里插入图片描述

《数字图像处理》实战解析:直方图均衡化与规定化的核心算法与应用 本文深入解析了数字图像处理中直方图均衡化与规定化两大核心算法。通过手算示例与Python代码实战,详细阐述了直方图均衡化如何自动增强图像对比度,以及自适应均衡化(CLAHE)如何优化局部细节。同时,介绍了直方图规定化如何实现图像风格迁移与标准化,并探讨了在彩色图像处理中的正确应用方法,为图像增强实践提供了清晰指南。 阅读详情

相关推荐

OpenCV-Python实战(8)——直方图均衡化_python opencv 直方图均衡化

图像处理技术是计算机视觉项目的核心,通常是计算机视觉项目中的关键工具,可以使用它们来完成各种计算机视觉任务。在本文中,将介绍如何使用OpenCV函数执行直方图均衡,并将其应用于灰度和彩色图像,函数将亮度归一化并提高图像的对比度。

2401_84264244的博客 1229

opencv中如何调整图像亮度和对比度,以及亮度和对比度调整的原理

首先减去均值,然后调整对比度,然后加上均值,最后调整亮度。通过对比直方图的变化效果 可知上面两个方法 作用是类似的。本来想找opencv的方法链接,但是链接已经失效。bri_mean锚定为127的时候。python实现的一个代码如下。增加对比度, 直方图更加均衡。增加亮度,直方图向右平移。...

tony365的博客 1万+

【OpenCV实战】OpenCV实现自动调整亮度和对比度

OpenCV中计算图像的直方图,计算累积分布函数(CDF),归一化CDF,计算图像的平均值,找到最优的对比度增益(gain)和偏移(offset)来实现自动曝光调整。然后根据这些参数调整图像的对比度和亮度,最终输出调整后的图像。

jiangchaobing_2017的博客 1525

Opencv计算机视觉实战(Python版)

Opencv计算机视觉实战课程旨在帮助大家快速掌握机器视觉领域必备知识点原理及其在Opencv中的使用方法。课程风格通俗易懂,用最接地气的方式来讲解晦涩难懂的知识点。整体设计以项目实战来驱动学习,课程中所有代码均使用Python完成,在实战中首先讲解整体解决方案,接下来通过Debug模式来一步步分析每一行代码的作用及其完成的效果,提供全部课件及项目中所使用代码和数据。

空域变换-直方图匹配(直方图规定化)

之前介绍的直方图均衡化,它能够产生一个直方图具有均匀分布的输出图像。当我们想要自动增强图像的时候,这种方法是适用的,因为目标的结果只有一个,所以是自动增强图像,并且这种技术的结果是可以预测的。然而有些图像使用直方图均衡化是不合适的,或者说有些图像的直方图转换成均匀分布是不合适的所以我们希望有一种方法能够帮助我们将图像的直方图转化成想要的形式,这种图像增强的技术就是直方图规定化或者说直方图匹配直方图匹配:用于生成规定直方图图像的方法。

Henry的博客 1350

CentOS 7 常用命令大全

CentOS中Linux命令

m0_63075763的博客 2018

彩色图像处理之彩色图像直方图处理的python实现——数字图像处理

在灰度图像处理中,直方图均衡化自动地确定一种变换,改变换试图产生具有均匀灰度的直方图。由于彩色图像是由多个分量组成的,所以必须考了适应多于一个分量的直方图的灰度级技术。独立地进行彩色图像分量的直方图均衡通常是不可取的,这将产生不正确的彩色。一个更符合逻辑的方法是均匀地扩展彩色强度,而保留彩色本身。图像直方图是反映一个图像像素分布的统计表,其横坐标代表了图像像素的种类,可以是灰度的,也可以是彩色的。纵坐标代表了每一种颜色值在图像中的像素总数或者占所有像素个数的百分比。

qq_49370210的博客 2769

eNSP网络构建—建立小型局域网

企业私有网络构建运维 实战案例——使用模拟器构建局域网络 案例分析 1.架构分析 (1)需求分析 本实验的目的在于建立小型局域网。由于公司由不同部门组成,并分布在不同地点,因此需要划分不同网络实现互联互通。设计以下网络:两个部门各使用一台交换机连接,然后连接到总交换机,再通过路由器与外网以及其他部门网络相连。为了控制网络上的广播风暴,增加网络的安全性,在交换机上需要设置VLAN,在路由器与交换机之...

_ 4万+

python直方图规定化_OpenCV python 彩色图像的直方图规定化

首先是opencv在图像处理方面的基础应用,彩色图像的相关知识和技术以及直方图的均衡化和规定化的原理是必须提前掌握,这些我就不做过多的介绍了。 本次实验也是基于python下完成的。老师要求的是在hsv模型里对直方图进行规定化,所以如果你是在rgb模型下进行直方图规定化,只需要将rgb和hsv互相转化的部分删除即可,重点并不是这里。import cv2import numpy as npfrom ...

weixin_39997310的博客 1110

在pycharm2021.2中学习opencv图像处理,基于python3.9.7、pycharm完成配置

在pycharm中学习opencv图像处理安装python下载python安装包开始安装安装pycharm社区版下载pycharm开始安装如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 安装python 使用pycharm学习opencv应该是最简单的了,对新手比较友好,

steveqobs 7707

模型性能评估之 Friedman 检验与 Nemenyi 后续检验

前言 当我们提出一种算法,需要知道我们的算法和现在已有的算法相比,性能是否更优的时候,就需要用到模型性能评估的方法。本篇博客介绍一种模型性能评估的方法:Friedman 检验与 Nemenyi 后续检验。 该方法的特点是:可以进行多个算法的比较。下面看看具体的使用: 具体使用 1. 计算序值 假定我们用 D1D_1D1​、D2D_2D2​ 、D3D_3D3​ 和 D4D_4D4​ 四个数据集对算法 AAA、BBB、CCC 进行比较。首先需要得到每个算法在每个数据集上的测试结果,可以是准确率,也可以是均方误差

蕾欧娜与26的博客 1万+

OpenCV python 彩色图像的直方图规定化

首先是opencv在图像处理方面的基础应用,彩色图像的相关知识和技术以及直方图的均衡化和规定化的原理是必须提前掌握,这些我就不做过多的介绍了。 本次实验也是基于python下完成的。 老师要求的是在hsv模型里对直方图进行规定化,所以如果你是在rgb模型下进行直方图规定化,只需要将rgb和hsv互相转化的部分删除即可,重点并不是这里。 import cv2 import numpy as n...

ilikevegetable的博客 6484

来!简单了解一下计算机发展史!

​ 1936年,英国数学家阿兰・麦席森・图灵提出了一种抽象的计算模型——图灵机( Turing machine)。图灵机,又称图灵计算机,即将人们使用纸笔进行数学运算的过程进行抽象,由一个虚拟的机器替代人类进行数学运算。​ 图灵机是一个抽象的机器,它有一条无限长的纸带,纸带分成了一个一个的小方格,每个方格有不同的颜色。有一个机器头在纸带上移来移去。机器头有一组内部状态,还有一些固定的程序。

m0_57290404的博客 2905

opencv-python 绘制图像直方图及直方图均衡化

1. 绘制图像的直方图   下面的程序给出了如何绘制一幅图像整体的直方图和每个通道的直方图 #-*- coding:utf-8 -*- import cv2 from matplotlib import pyplot as plt def whole_hist(image): ''' 绘制整幅图像的直方图 ''' plt.hist(image.ravel(), 256, [0, 256...

dugudaibo的博客 1万+

STM32G4实战:用CubeMX+Keil五分钟搞定FreeRTOS多任务LED控制(避坑指南)

本文详细介绍了如何在STM32G4系列芯片上使用CubeMX和Keil快速配置FreeRTOS实现多任务LED控制,包括环境准备、时钟配置、任务创建及常见问题解决方案。重点解决了时钟源冲突等高频问题,并提供了优化建议和进阶应用示例,帮助开发者高效完成嵌入式开发任务。

joy55的博客 222

MSP430FR6043超声波传感器设计记录

1.前言 最近项目设计了一个超声波传感器 参考TI官方的板子EVM430-FR6043搭建的电路 EVM430-FR6043评估模块是一个用于评估MSP430FR6043 MCU性能的开发平台。 MSP430FR6043 MCU是一款超低功耗器件, 集成了超声波感测模拟前端 用于精确地进行超声波测量。 专为超声波水表、热量计和燃气表而设计, MSP430FR6043 器件采用低功耗加速器 (LEA), 可实现基于高速 ADC 的信号采集以及后续优化数字信号处理, 为电池供电型计量提供了一款超低功耗、高

bingdund的博客 2865

直方图均衡化python实现,OpenCV+Python实现彩色图像直方图全局均衡化和自适应均衡化...

https://blog.youkuaiyun.com/Ibelievesunshine/article/details/95220075# 彩色图像全局直方图均衡化def hisEqulColor1(img):# 将RGB图像转换到HSV空间中hsv = cv2.cvtColor(img, cv2.COLOR_RGB2HSV)# 将hsv图像通道分离channels = cv2.split(hsv)# 对第...

weixin_31584817的博客 542

YOLOv11 改进 - 注意力机制 | GC Block(GlobalContext Block)全局上下文块:三重变换捕获全局依赖,提升复杂场景鲁棒性

本文介绍了全局上下文块(GC Block)及其在YOLOv11中的集成应用。GC Block是GCNet的核心组件,结合了NLNet和SENet的优势,通过上下文建模、特征变换和特征融合三个模块,高效捕获特征图中的全局依赖关系,在提高模型性能的同时降低计算成本。我们将GC Block引入YOLOv11,在检测头部分的不同尺度特征图上应用该模块。实验表明,改进后的YOLOv11在目标检测任务中表现良好,展现了GC Block在实际应用中的价值。

魔改工程师的博客 951

图像增强之灰度变换和直方图均衡化(附代码python+opencv)

二值化、灰度变换、伽马校正、直方图均衡化

weixin_45703331的博客 6907

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

OpenCV直方图均衡化与匹配:C++图像增强核心技术与实战

图像增强是计算机视觉与数字图像处理的基础技术,旨在改善图像的视觉效果和信息提取能力。其核心原理在于调整图像的像素值分布,以增强对比度、突出细节或校正色彩。直方图作为图像灰度分布的统计工具,是实现这一目标的关键。通过分析直方图,可以诊断图像偏暗、偏亮或对比度不足等问题。直方图均衡化技术能够自动将图像的灰度分布拉伸至整个动态范围,从而显著提升整体对比度,尤其适用于医学影像、监控画面等低对比度场景。而直方图匹配(规定化)则提供了目标导向的增强方式,通过将一幅图像的直方图调整至与参考图像相似,实现图像风格的统一或光

weixin_30536513的博客 435

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

2.3 Python图像的空域增强处理-直方图修正

2.3 Python图像的空域增强处理-直方图修正 文章目录2.3 Python图像的空域增强处理-直方图修正1 算法原理2 代码3 效果 1 算法原理 直方图均衡化算法和直方图规定化 对于灰度级(intensity levels)范围为[0,L−1] [0, L-1] [0,L−1]的数字图像,其直方图可以表示为一个离散函数 h(rk)=nk,其中rk是第k级灰度值(intensity value), nk 是图像中灰度值为 rk 的像素个数,也就是说,图像的灰度直方图表征的是该图像的灰度分布。在实际应用

集电极 1299

灰度图像处理与OpenCV直方图均衡化实战

灰度图像处理是计算机视觉的基础技术,通过单通道像素值记录亮度信息,广泛应用于医学影像、工业检测等领域。其核心原理包括灰度变换和直方图分析,其中直方图均衡化能有效增强图像对比度。OpenCV作为主流计算机视觉库,提供了calcHist等高效函数实现。工程实践中,结合伽马校正和CLAHE算法可以优化处理效果。本文通过实际代码示例,详细解析灰度图像处理的关键技术,包括直方图均衡化实现、查找表优化等性能提升技巧,帮助开发者掌握这一基础而重要的图像处理能力。

diankui6178的博客 359

Python计算并绘制灰度直方图

灰度直方图 灰度直方图是关于灰度级分布的函数,将数字图像中的所有像素,按照灰度值的大小,统计其出现的频率。其中,横坐标是灰度级,纵坐标是该灰度级出现的频率。 如果将图像总像素亮度(灰度级别)看成是一个随机变量,则其分布情况就反映了图像的统计特性,这可用probability density function (PDF)来刻画和描述,表现为灰度直方图。 OpenCV计算并绘制直方图 import c...

Huiyu Blog 1万+

别再死记硬背!用Python+OpenCV手把手带你搞定直方图均衡化(附完整代码与避坑指南)

本文详细介绍了如何使用Python和OpenCV实现直方图均衡化,从核心原理到完整代码,涵盖数字图像处理中的关键技术与常见问题解决方案。通过实战案例和性能优化技巧,帮助开发者快速掌握这一基础但重要的图像增强技术。

weixin_28223453的博客 200

Opencv python 直方图处理

Opencv直方图处理前言1.1 直方图的含义1.2 绘制直方图1.2.1 使用Numpy绘制直方图1.2.2 使用OpenCV绘制直方图1.2.2.1 用cv2.calcHist()函数统计图像直方图信息1.2.2.2 plot()函数的使用1.2.2.3 绘制统计直方图1.2.3 使用掩模绘制直方图1.3 直方图均衡化1.3.1 直方图均衡化处理1.4 pyplot模块介绍1.4.1 subplot函数1.4.2 imshow函数总结 前言 寒假打卡!小白入门,如有不正确的地方希望各位大佬指正。 .

a_growing_tree的博客 4787

计算机视觉基础系列(python与opencv的操作与运用/tensorflow的基础介绍)(十五)---直方图

1 直方图的引入 opencv在图像处理方面的基础应用,彩色图像的相关知识和技术以及直方图的均衡化和规定化的原理是必须提前掌握。 直方图的概念,横坐标表示像素值0-255的值,纵坐标表示像素值在整个图像中的概率是多少,值在0-1之间。 直方图均衡化:一张图的直方图没有均匀分布,可以使用均衡化方法,尽可能的离散化,则称为直方图的均衡化 下面是直方图的代码: import cv2 impo...

u012935100的博客 291
上一篇: 汇编SHR、SHL、SAR、SAL、ROL、ROR、RCL、RCR指令
下一篇: 计算机的存储系统,全方面、最详细
Hack Rabbit
Hack Rabbit 新星创作者: 运维技术领域 新星创作者: 运维技术领域
博客等级 码龄9年 2893粉丝 67原创
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hack Rabbit

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值