【OpenCV-Python 】20.OpenCV 的直⽅图均衡化
20.OpenCV的直⽅图均衡化
⽂章⽬录
前⾔
  直⽅图均衡化通过调整图像的灰度来提⾼图像的对⽐度。
⼀、普通直⽅图均衡化
  普通直⽅图均衡化主要是指将原图像的灰度级均匀地映射到全部灰度级范围内。OenCV的 cv2.equalizeHist()函数⽤于实现普通直⽅图均衡化,其基本格式如下:dst = cv2.equalizeHist (src )dst 为直⽅图均衡化后的图像src 为原图像, 必须是8位的单通道图像
1
2
3
4import  cv2import  numpy as  np import  matplotlib .pyplot as  plt img = cv2.imread ('bee.jpg', cv2.IMREAD_GRAYSCALE )cv2.imshow ('original', img )hist = cv2.calcHist ([img ], [0], None , [256], [0, 255])plt .figure (figsize = (10,5))plt .title ('Original_Hist')plt .plot (hist , color ='b')img2 = cv2.equalizeHist (img )cv2.imshow ('EqualizeHist', img2)hist = cv2.calcHist ([img2], [0], None , [256], [0, 255])plt .figure (figsize = (10,5))plt .title ('EqualizeHist_Hist')plt .plot (hist , color ='k')cv2.waitKey (0)cv2.destroyAllWindows ()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
⼆、限制对⽐度⾃适应直⽅图均衡化
  普通直⽅图均衡化⽤于对图像全局进⾏调整,不能有效提⾼图像的局部对⽐度。为了提⾼图像的局部对⽐度,可将图像分为若⼲字块,对⼦块进⾏直⽅图均衡化,这就是⾃适应直⽅图均衡化。⾃适应直⽅图均衡化可能会造成图像的局部对⽐度过⾼,从⽽导致失真。为了解决此问题,可对局部对⽐度进⾏限制,这就是限制对⽐度⾃适应直⽅图均衡化(Contrast Limited Adaptied Histogram Equalization,CLAHE)。
  OpenCV的ateCLAHE()函数⽤于创建CLAHE对象,其基本格式如下:
  调⽤CLAHE对象的apply()⽅法,将其应⽤到图像中进⾏均衡化retval =ateCLAHE ([clipLimit [, tileGridSize ]])retval 为返回的CLAHE 对象clipLimit 为对⽐度受限制的阈, 默认值为40.0tileGridSize 为直⽅图均衡化的⽹格⼤⼩, 默认值为(8,8)
1
2
3
4
5
img = cv2.imread ('clahe.jpg')img = cv2.cvtColor (img , cv2.COLOR_BGR2GRAY )cv2.imshow ('original', img )hist = cv2.calcHist ([img ], [0], None , [256], [0, 255])plt .figure (figsize = (10,5))plt .title ('Original_Hist')plt .plot (hist , color ='b')img2 = cv2.equalizeHist (img )cv2.imshow ('EqualizeHist', img2)hist = cv2.calcHist ([img2], [0], None , [256], [0, 255])plt .figure (figsize = (10,5))plt .title ('EqualizeHist_Hist')plt .plot (hist , color ='b')clahe = ateCLAHE (clipLimit =2.0,tileGridSize =(8, 8))img3 = clahe .apply (img )cv2.imshow ('CreateCLAHE', img3)hist = cv2.calcHist ([img3], [0], None , [256], [0, 255])plt .figure (figsize = (10,5))plt .title ('CreateCLAHE_Hist')plt .plot (hist , color ='b')cv2.waitKey (0)cv2.destroyAllWindows ()
1
2
3
4局部直方图均衡化
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
三、OpenCV-Python资源下载
总结
  以上内容介绍了OpenCV-Python的直⽅图基础操作,有关Python、数据科学、⼈⼯智能等⽂章后续会不定期发布,请⼤家多多关注,⼀键三连哟(●’◡’●)。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。