我是python和matplotlib的新手,我想知道是否有人知道是否有任何实用工具可用于执行均值直方图均衡化,但执行matplotlib颜色表?有一个叫做matplotlib.colors.Normalize的函数,如果给定一个图像数组,它会自动设置底部和顶部的水平,但我想要更聪明的东西。我总是可以将直方图均衡应用于数据本身,但我宁愿不触摸数据。有什么想法吗?matplotlib颜色表的直方图均衡
1
A
回答
3
你必须创建自己的特定图像的颜色表,但它不是太靠谱:
import pylab
import matplotlib.colors
import numpy
im = pylab.imread('lena.png').sum(axis=2) # make grayscale
pylab.imshow(im, cmap=pylab.cm.gray)
pylab.title('orig')
imvals = numpy.sort(im.flatten())
lo = imvals[0]
hi = imvals[-1]
steps = (imvals[::len(imvals)/256] - lo)/(hi - lo)
num_steps = float(len(steps))
interps = [(s, idx/num_steps, idx/num_steps) for idx, s in enumerate(steps)]
interps.append((1, 1, 1))
cdict = {'red' : interps,
'green' : interps,
'blue' : interps}
histeq_cmap = matplotlib.colors.LinearSegmentedColormap('HistEq', cdict)
pylab.figure()
pylab.imshow(im, cmap=histeq_cmap)
pylab.title('histeq')
pylab.show()
0
直方图均衡可以通过修改图像的调色板(或LUT)来应用,所以它会定义一个均衡的调色板。
我搜索了一下,找不到用于计算均衡调色板的源代码,所以除非出现问题,否则您必须亲自编写代码。
您应该从Wikipedia article的算法说明开始。
你也可以在matplotlib列表上寻求帮助。
相关问题
- 1. Python Matplotlib直方图颜色
- 2. 直方图均衡
- 3. 在捕获的视频上的颜色直方图均衡
- 4. 直方图均衡结果
- 5. 直方图均衡实现
- 6. 直方图均衡化的Python对于彩色图像
- 7. 在实时视频中提取颜色之前的直方图均衡化
- 8. 在java中的直方图均衡
- 9. VHDL中的直方图均衡化
- 10. 使用java的直方图均衡
- 11. 视频中的直方图均衡化
- 12. 手动局部直方图均衡
- 13. 直方图均衡转换函数
- 14. 直方图均衡化问题
- 15. matplotlib和numpy的 - 直方图条的颜色和正常化
- 16. matplotlib颜色条和共享轴直方图
- 17. 直方图Matplotlib
- 18. OpenCV的,均衡的图像轮廓的直方图
- 19. Matplotlib表函数中的图例颜色?
- 20. Python中的RGB图片的直方图均衡(或拉伸)
- 21. 此图像颜色均衡算法中的故障逻辑
- 22. matplotlib的颜色地图
- 23. 显示图像的颜色直方图
- 24. 什么库可用于图像的直方图均衡化?
- 25. 用C直方图均衡化图像处理++ OpenCV的
- 26. 颜色matplotlib强度方面
- 27. 不同图像上的色调均衡
- 28. 在GIF图像上进行MATLAB直方图均衡
- 29. 直方图均衡化(图像Javascript初学者)
- 30. 点向图像处理 - 直方图均衡(处理)
哇!谢谢你,这个代码片段。这是非常丰富的。我会继续尝试这个。我认为这将是matplotlib.colors.Normalize中包含的一个很好的功能。也许,我会在他们的论坛中停下来,看看有没有人想过在未来的版本中加入这个。干杯。 – ehsteve 2011-05-02 20:34:17
使用np.lexsort()可能会有一种更简单的方法,只是将输入包装为imshow,而不是为每个图像创建新的颜色映射。这可能是他们为什么避免将其作为Normalize的一部分实施的原因。 – 2011-05-03 04:40:04
我不知道np.lexsort()。谢谢你。 – ehsteve 2011-05-06 21:50:12