opecv入门:4.2图像美化-直方图均衡化

#彩色 直方图均衡化
import cv2
import numpy as np
img = cv2.imread('image0.jpg',1)
cv2.imshow('src',img)
(b,g,r) = cv2.split(img)#通道分解  得到的是各个通道的灰度值
bH = cv2.equalizeHist(b)
gH = cv2.equalizeHist(g)
rH = cv2.equalizeHist(r)
result = cv2.merge((bH,gH,rH))# 通道合成
cv2.imshow('dst',result)

#cv2.imshow("sss",bH)  这样是灰色,为什么呢
zeros = np.zeros(img.shape[:2], dtype = "uint8")  #split分离出来的是单通道,所以是灰度
cv2.imshow("Blue", cv2.merge([b, zeros, zeros]))  #这里加上两个空的通道,得到一幅蓝色的图

cv2.waitKey(0)

在这里插入图片描述

#灰度 直方图均衡化
import cv2
import numpy as np
img = cv2.imread('image0.jpg',1)
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #转为灰度
cv2.imshow('src',gray)   #原图    
dst = cv2.equalizeHist(gray)    #均衡化图片
cv2.imshow('dst',dst)  #转化后
cv2.waitKey(0)

在这里插入图片描述

#YUV 直方图均衡化
import cv2
import numpy as np
img = cv2.imread('image0.jpg',1)
imgYUV = cv2.cvtColor(img,cv2.COLOR_BGR2YCrCb)   #转化为yuv
cv2.imshow('src',img)
channelYUV = cv2.split(imgYUV)   #分离为yuv   同样是三维的
channelYUV[0] = cv2.equalizeHist(channelYUV[0])  #获取第一通道  均衡化
channels = cv2.merge(channelYUV)   #合成,与split相对
result = cv2.cvtColor(channels,cv2.COLOR_YCrCb2BGR)   #再转化为
cv2.imshow('dst',result)
cv2.waitKey(0)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值