繁体   English   中英

如何像在Photoshop上一样使用python调整图像颜色直方图

[英]how to level image color histogram using python like on photoshop [closed]

我需要使用python来实现与使用菜单中的Photoshop相同的功能:“图像>调整>色阶...”

在此窗口中:

Photoshop级别

我需要使用Python将颜色调整为第一个值至13。

Photoshop级别-值13

可以使用一些库image-scikit,opencv,numpy或其他东西完成此操作吗?

我已经看到一些自动平衡和自动对比度等功能,但是我只需要在几张图像上修改该值即可。

谢谢。

如果我理解正确,那么您是在获取RBG值并将所有低于最小阈值的值设置为等于最小阈值吗? 如果是这种情况,那么我们可以将opencv图像加载为numpy数组,并使用数组操作获得相同的结果。

import cv2
import numpy as np

min_level = 20

#im = cv2.imread("name.jpg") # loads image as np array
im = np.arange(75.).reshape(5, 5, 3) # pretend image to show filtering 
im[im < min_level] = min_level # set all indices where value is less than min_level to min_level

所以在过滤之前,我们有一个看起来像这样的数组:

>>> im
[[[ 0.  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. 29.]]

 [[30. 31. 32.]
  [33. 34. 35.]
  [36. 37. 38.]
  [39. 40. 41.]
  [42. 43. 44.]]

 [[45. 46. 47.]
  [48. 49. 50.]
  [51. 52. 53.]
  [54. 55. 56.]
  [57. 58. 59.]]

 [[60. 61. 62.]
  [63. 64. 65.]
  [66. 67. 68.]
  [69. 70. 71.]
  [72. 73. 74.]]] 

过滤后看起来像:

>>> im
[[[20. 20. 20.]
  [20. 20. 20.]
  [20. 20. 20.]
  [20. 20. 20.]
  [20. 20. 20.]]

 [[20. 20. 20.]
  [20. 20. 20.]
  [21. 22. 23.]
  [24. 25. 26.]
  [27. 28. 29.]]

 [[30. 31. 32.]
  [33. 34. 35.]
  [36. 37. 38.]
  [39. 40. 41.]
  [42. 43. 44.]]

 [[45. 46. 47.]
  [48. 49. 50.]
  [51. 52. 53.]
  [54. 55. 56.]
  [57. 58. 59.]]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM