图像处理-RGB彩色图像均衡化处理

本文介绍如何使用OpenCV对彩色图像进行直方图均衡化处理以增强图像对比度。通过将RGB图像拆分为三个单通道图像并对每个通道单独进行均衡化处理,最后将处理后的图像合并为一幅彩色图像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、问题描述

使用直方图均衡化的手段可以增大图像的对比度,目前我们学到的都是在单通道的灰度图像处理。那么对于彩色图像该如何处理呢?实际上使用opencv提供的split方法将RGB图像分为R,G,B三个通道的图像,分别对每个通道下的图像进行直方图均衡化处理,再将处理好以后的图像使用merge函数合并。这样就是彩色图像的直方图均衡化处理了。

2、效果展示

2.1 均衡化前后直方图变换

在这里插入图片描述

2.2 图像变化

在这里插入图片描述

3、具体代码

	def Split(image):
    
    B,G,R = cv.split(image)

    hist_B_1 = cv.calcHist([B],[0],None,[256],[0,255])
    B_equal = cv.equalizeHist(B)
    hist_B_2 = cv.calcHist([B_equal],[0],None,[256],[0,255])

    hist_G_1 = cv.calcHist([G],[0],None,[256],[0,255])
    G_equal = cv.equalizeHist(G)
    hist_G_2 = cv.calcHist([G_equal],[0],None,[256],[0,255])

    hist_R_1 = cv.calcHist([R],[0],None,[256],[0,255])
    R_equal = cv.equalizeHist(R)
    hist_R_2 = cv.calcHist([R_equal],[0],None,[256],[0,255])


    plt.subplot(3,2,1)
    plt.plot(hist_B_1,'r')
    plt.subplot(3,2,2)
    plt.plot(hist_B_2,'b')

    plt.subplot(3, 2, 3)
    plt.plot(hist_G_1,'r')
    plt.subplot(3, 2, 4)
    plt.plot(hist_G_2,'b')

    plt.subplot(3, 2, 5)
    plt.plot(hist_R_1,'r')
    plt.subplot(3, 2, 6)
    plt.plot(hist_R_2,'b')
    plt.show()


    Result_0 = cv.merge([B_equal,G_equal,R_equal])
    Result_1 = cv.hconcat((image,Result_0))
    cv.imshow('Result',Result_1)
    cv.waitKey()

    return;

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

牛右刀薛面

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

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

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

打赏作者

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

抵扣说明:

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

余额充值