(Python+OpenCV)直方图均衡化

图像的空域处理是一种非常重要的图像处理技术,这类方法直接以图像的像素操作为基础,主要分为灰度变换和空域滤波两大类。

直方图均衡化(Histogram equalization)是一种常用的灰度变换方法。

 

Part1:灰度图均衡

#灰度图均衡


import sys
import cv2 as cv
import numpy as np


print('Python的版本为:Python',sys.version_info.major)
print('OpenCV的版本为:',cv.__version__)


#图片路径
#(应避免有中文)
image_path=r'C:\Users\94456\Desktop\test2020_09_03\picture\cat.jpg'


#读取图片
#类型:numpy.ndarray
image=cv.imread(image_path)
# #显示原图
# cv.imshow('cat',image)


#将彩色图像转换为灰度图
image_gray=cv.cvtColor(image,cv.COLOR_BGR2GRAY)


#直方图均衡化
image_equalize=cv.equalizeHist(image_gray)


#图像拼接
image_compare=np.hstack((image_gray,image_equalize))
#拼接后的图像显示
#WINDOW_AUTOSIZE:窗口大小自适应图片大小
#WINDOW_NORMAL:可以手动拉伸窗口
cv.namedWindow('cat',cv.WINDOW_NORMAL)
cv.resizeWindow('cat',400,200)
cv.imshow('cat',image_compare)
cv.waitKey(0)


 

结果图:

 

Part2:彩色图均衡

#彩色图均衡


import sys
import numpy as np
import cv2 as cv


print('Python的版本为:Python',sys.version_info.major)
print('OpenCV的版本为:',cv.__version__)


#图片路径
#(应避免有中文)
image_path=r'C:\Users\94456\Desktop\test2020_09_03\picture\cat.jpg'


#读取图片
#类型:numpy.ndarray
image=cv.imread(image_path)


#将图片由BGR转为YUV
image_equalize=cv.cvtColor(image,cv.COLOR_BGR2YUV)
#通道分离
channels=cv.split(image_equalize)
#对图像的灰阶通道进行直方图均衡化
channels[0]=cv.equalizeHist(channels[0])
#三通道合成彩色图片
image_equalize=cv.merge(channels)
#将图片由YUV转为BGR
image_equalize=cv.cvtColor(image_equalize,cv.COLOR_YUV2BGR)


#图像拼接
image_compare=np.hstack((image,image_equalize))
#拼接后的图像显示
#WINDOW_AUTOSIZE:窗口大小自适应图片大小
#WINDOW_NORMAL:可以手动拉伸窗口
cv.namedWindow('cat',cv.WINDOW_NORMAL)
cv.resizeWindow('cat',400,200)
cv.imshow('cat',image_compare)
cv.waitKey(0)


 

结果图:

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Think@

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

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

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

打赏作者

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

抵扣说明:

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

余额充值