数字图像处理:图像彩色通道均衡化

import cv2
import numpy as np


image_src = cv2.imread('.\picture.bmp')     # 读入原图像

#图像彩色通道均衡化
def normalizePicture(image):
    rows, cols, BGR = image.shape  # 获取原图像像素点的宽度和高度和三通道
    BGR_Hist = np.zeros((BGR,256))
    normalize_image = image.copy()
    for i in range(rows):  # 统计各个通道值的个数
        for j in range(cols):
            for k in range(BGR):
                BGR_Hist[k,image[i,j,0]] = BGR_Hist[k,image[i,j,0]]+1

    p_BGR_hist = BGR_Hist/(rows *cols)
    p_BGR_add_hist = np.zeros(BGR_Hist.shape)
    p_BGR_add = p_BGR_hist[:,0]

    for i in range(1, 256):  # 令p_add_hist每个元素都为p_hist同下标的前面元素的累加值
        p_BGR_add +=p_BGR_hist[:,i]
        p_BGR_add_hist[:,i] = p_BGR_add

    for i in range(rows):
        for j in range(cols):
            for k in range(BGR):
                normalize_image[i,j,k] = p_BGR_add_hist[k,image[i,j,k]] * 255

    return normalize_image

normalize_image=normalizePicture(image_src)
cv2.imshow('image', normalize_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

关于网上灰度图像的均衡化挺多了,一般彩色通道均衡化的结果也没什么用,

但是因为要写作业,网上又没有搜到,就基于灰度均衡化的写法照着写了一个,

区别也就在于通道数*3,写的时候在张量的形状上稍微注意下就好

 

picture.bmp

normalize_picture.bmp

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值