Python+OpenCV:直方图均衡化(Histogram Equalization)

痛定思痛。 2022-12-21 06:20 334阅读 0赞

Python+OpenCV:直方图均衡化(Histogram Equalization)

  1. ####################################################################################################
  2. # 图像直方图均衡化(Image Histogram Equalization)
  3. def lmc_cv_image_histogram_equalization():
  4. """
  5. 函数功能: 图像直方图均衡化(Image Histogram Equalization)。
  6. """
  7. stacking_images = []
  8. # 灰色图像直方图均衡化
  9. image = lmc_cv.imread('D:/99-Research/Python/Image/CountryRoad.jpg')
  10. image = lmc_cv.cvtColor(image, lmc_cv.COLOR_BGR2GRAY)
  11. equalize_image = lmc_cv.equalizeHist(image)
  12. # stacking images side-by-side
  13. stacking_image = np.hstack((image, equalize_image))
  14. stacking_images.append(stacking_image)
  15. # 彩色图像直方图均衡化
  16. image_file_name = ['D:/99-Research/Python/Image/hist_low.jpg', 'D:/99-Research/Python/Image/hist_high.jpg',
  17. 'D:/99-Research/Python/Image/Lena.jpg']
  18. for i in range(len(image_file_name)):
  19. # 读取图像
  20. image = lmc_cv.imread(image_file_name[i])
  21. ycrcb = lmc_cv.cvtColor(image, lmc_cv.COLOR_BGR2YCR_CB)
  22. channels = lmc_cv.split(ycrcb)
  23. channels[0] = lmc_cv.equalizeHist(channels[0])
  24. ycrcb = lmc_cv.merge(channels)
  25. equalize_image = lmc_cv.cvtColor(ycrcb, lmc_cv.COLOR_YCR_CB2BGR)
  26. image = lmc_cv.cvtColor(image, lmc_cv.COLOR_BGR2RGB)
  27. equalize_image = lmc_cv.cvtColor(equalize_image, lmc_cv.COLOR_BGR2RGB)
  28. # stacking images side-by-side
  29. stacking_image = np.hstack((image, equalize_image))
  30. stacking_images.append(stacking_image)
  31. # 显示图像
  32. pyplot.figure('Image Display')
  33. titles = ['Gray Image Histogram Equalization', 'Low Histogram Image Histogram Equalization',
  34. 'High Histogram Image Histogram Equalization', 'Nomal Histogram Image Histogram Equalization']
  35. for i in range(len(stacking_images)):
  36. pyplot.subplot(2, 2, i + 1)
  37. pyplot.imshow(stacking_images[i], 'gray')
  38. pyplot.title(titles[i])
  39. pyplot.xticks([])
  40. pyplot.yticks([])
  41. pyplot.show()
  42. # 根据用户输入保存图像
  43. if ord("q") == (lmc_cv.waitKey(0) & 0xFF):
  44. # 销毁窗口
  45. pyplot.close()
  46. return

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpdWJpbmc4NjA5_size_16_color_FFFFFF_t_70

发表评论

表情:
评论列表 (有 0 条评论,334人围观)

还没有评论,来说两句吧...

相关阅读