5

您所在的位置:网站首页 单通道直方图均衡化 5

5

2023-11-11 22:57| 来源: 网络整理| 查看: 265

#灰度 直方图均衡化 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)

 我们使用直方图均衡化的时候,必须要对单通道进行处理。所以我们首先要完成通道的分解。我们要把原来的三通道分解成单通道。

split()方法。将彩色图片传递进去之后,它返回的就是一个三通道数据。我们分别把三通道数据为大家实现一下。

这样我们分别就有三个通道完成了直方图的均衡化。但是通道分解完之后我们要合并在一起。

经过直方图均衡化之后,整个图片的颜色发生了一定的变化。这是彩色图片均衡化。

#彩色 直方图均衡化 import cv2 import numpy as np img = cv2.imread('image0.jpg',1) #gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) cv2.imshow('src',img) (b,g,r) = cv2.split(img)# 通道分解 bH = cv2.equalizeHist(b)#bH定义的是b通道的直方图均衡化之后的结果,我们将b通道的数据传递进去 gH = cv2.equalizeHist(g) rH = cv2.equalizeHist(r) result = cv2.merge((bH,gH,rH))#merge()方法是opencv自带的 通道合成 #dst = cv2.equalizeHist(gray) #cv2.imshow('dst',dst) cv2.imshow('dst',result) cv2.waitKey(0)

图片读取进来之后我们要进行YUV的分解。这个cvt方法不光能实现彩色图片转化为灰度图片,还可以实现RGB图片转化为当前的YUV图片。

YUV同样是由三个元素组成。它是一个三维的。我们首先把第一维获取出来,第一维的结果我们先把它进行直方图的均衡化一下。

均衡化之后我们把当前的YUV三个通道再进行合成,合成一个channels。合成之后我们需要把当前的YUV再转成BGR图片。

#YUV 直方图均衡化 import cv2 import numpy as np img = cv2.imread('image0.jpg',1) #gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) imgYUV = cv2.cvtColor(img,cv2.COLOR_BGR2YCrCb) #cv2.imshow('src',gray) cv2.imshow('src',img) channelYUV = cv2.split(imgYUV) channelYUV[0] = cv2.equalizeHist(channelYUV[0]) #dst = cv2.equalizeHist(gray) channels = cv2.merge(channelYUV) result = cv2.cvtColor(channels,cv2.COLOR_YCrCb2BGR) #cv2.imshow('dst',dst) cv2.imshow('dst',result) cv2.waitKey(0)

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3