前言
© Fu Xianjun. All Rights Reserved.
随着人工智能的不断发展,OpenCV这门技术也越来越重要,很多人都开启了学习OpenCV,本文就介绍了OpenCV中的直方图处理。
一、直方图是什么?
直方图是图像内灰度值的统计特性与图像灰度值之间的函数,可以统计图像内各灰度级出现的次数。从直方图的图像上观察,横坐标是图像中各像素点的灰度级,纵坐标是具体有该灰度级的像素个数
示意图:
二、使用步骤
1.绘制直方图
代码如下:
import cv2
import numpy as np
import matplotlib.pyplot as plt #导入包
img = cv2.imread("hj.jpg",0) #导入图片
hist = cv2.calcHist(img,[0],None,[256],[0,255])
cv2.imshow("img",img)
plt.hist(img.ravel(),260)#img.ravel()将img二维图像摊平成一堆数组
2.自适应均衡化
代码如下:
#自适应均衡化
img = cv2.imread("qb2.jpg")
b,g,r = cv2.split(img)
clahe= cv2.createCLAHE(clipLimit= 2.0,tileGridSize=(8,8))
equalb= clahe.apply(b)
equalg= clahe.apply(g)
equalr= clahe.apply(r)
equal= cv2.merge([equalb,equalg,equalr])
cv2.imshow("img",img)
cv2.imshow("equal",equal)
cv2.waitKey(0)
cv2.destroyAllWindows()
原图:
处理后:
结论:对比不难发现图片的颜色更加鲜明了,更符合大家的审美。