我是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