前言
© 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()
原图:

处理后:

结论:对比不难发现图片的颜色更加鲜明了,更符合大家的审美。
本文介绍了OpenCV中的直方图处理技术,包括如何绘制直方图和应用自适应均衡化来增强图像效果。通过实例展示了如何使用Python和OpenCV库进行操作,并比较了处理前后的图像差异。
2284

被折叠的 条评论
为什么被折叠?



