# -*- coding:utf8 -*-
import cv2
import numpy as np
import matplotlib.pyplot as plt
#加载图像 并转换成灰度
input_file = 'image/3.jpg'
img = cv2.imread(input_file)
img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
# 显示图像
cv2.imshow('img',img)
cv2.imshow('img_gray',img_gray)
#均衡灰度直方图
img_gray_histeq = cv2.equalizeHist(img_gray)
cv2.imshow('img_gray_histeq-GRAY',img_gray_histeq)
#均衡彩色图像的直方图
img_yuv = cv2.cvtColor(img,cv2.COLOR_BGR2YUV)
# 均衡Y通道
img_yuv[:,:,0] = cv2.equalizeHist(img_yuv[:,:,0])
# 将其转换回BGR
img_histeq = cv2.cvtColor(img_yuv,cv2.COLOR_YUV2BGR)
cv2.imshow('img_histeq-COLOR',img_histeq)
plt.hist(img.flatten(),256,[0,256],color='r')
plt.title('img flatten')
plt.show()
plt.hist(img_gray.flatten(),256,[0,256],color='g')
plt.title('img_gray flatten')
plt.show()
plt.hist(img_gray_histeq.flatten(),256,[0,256],color='r')
plt.title('img_gray_histeq')
plt.show()
plt.hist(img_histeq.flatten(),256,[0,256],color='g')
plt.title('img_histeq')
plt.show()
cv2.waitKey()
原图
原图直方图
image.png
灰度图
image.png
灰度直方图
image.png
均衡灰度图
image.png
均衡灰度直方图
image.png
均衡彩色图
image.png
均衡彩色直方图
image.png
网友评论