Python 基于simpletk的直方图均衡化

Python 基于simpletk的直方图均衡化,python,itk,simpleitk,Python,Itk,Simpleitk,关于这一点,请向我建议以下代码: 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

关于这一点,请向我建议以下代码:

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)
为什么我需要两张图像来进行直方图均衡化


因为我想做直方图均衡化,这是直方图匹配。在本文中,我们将解释不同之处。

通过直方图匹配实现直方图均衡化是一项艰巨的工作

“himg”是一个渐变图像,因此强度从0到255。它的所有强度都是相等的,所以它的直方图是平坦的


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

通过直方图匹配来实现直方图均衡化是一项有点难度的工作

“himg”是一个渐变图像,因此强度从0到255。它的所有强度都是相等的,所以它的直方图是平坦的


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

我的同事指出,他在下面的笔记本中为SimpleTk编写了直方图均衡化(搜索“直方图均衡化”函数):我的同事指出,他在下面的笔记本中为SimpleTk编写了直方图均衡化(搜索“直方图均衡化”功能):