SimpleITK的直方图均衡

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SimpleITK的直方图均衡相关的知识,希望对你有一定的参考价值。

关于此SO answer,请向我建议此代码:

import SimpleITK as sitk
import numpy as np

# Create a noise Gaussian blob test image
img = sitk.GaussianSource(sitk.sitkFloat32, size=[240,240,48], mean=[120,120,24])
img = img + sitk.AdditiveGaussianNoise(img,10)

# Create a ramp image of the same size
h = np.arange(0.0, 255,1.0666666666, dtype='f4')
h2 = np.reshape(np.repeat(h, 240*48), (48,240,240))
himg = sitk.GetImageFromArray(h2)
print(himg.GetSize())

# Match the histogram of the Gaussian image with the ramp
result=sitk.HistogramMatching(img, himg)

# Display the 3d image
import itkwidgets
itkwidgets.view(result)

为什么需要两张图像进行直方图均衡?

因为我想进行直方图均衡化,这就是直方图匹配。在此article中解释不同之处。

答案

通过直方图匹配来实现直方图均衡化是一种变通方法。

'himg'是渐变图像,因此强度从0到255。所有强度均等地表示,因此其直方图是平坦的。

因此,我们将图像的直方图与平面直方图进行匹配。最终结果是直方图均衡化。

以上是关于SimpleITK的直方图均衡的主要内容,如果未能解决你的问题,请参考以下文章

写一段代码画出一个图像的灰度直方图(不能用MATLAB自带的imhist函数),并作直方图均衡化处理。

直方图均衡

直方图均衡

MATLAB-真彩色图像直方图均衡化及分别在RGB与HSI坐标系进行处理

OpenCV 直方图均衡化

OpenCV自适应直方图均衡CLAHE的裁剪处理过程