【问题标题】:How to remove noise from a histogram equalized image?如何从直方图均衡图像中去除噪声?
【发布时间】:2016-04-18 10:11:23
【问题描述】:

我有一个图像,我正在均衡,然后使用 clahe 直方图,如下所示:

self.equ = cv2.equalizeHist(self.result_array)
clahe = cv2.createCLAHE(clipLimit=100.0, tileGridSize=(8,8))
self.cl1 = clahe.apply(self.equ)

这是我得到的结果:

我想去掉所有的黑点,即噪音。最终,我试图提取出上图中为黑色的血管,在尝试这样做时,噪音会使提取不准确。

【问题讨论】:

  • 噪点看起来对比度很高,您只需要应用去斑处理即可。试试这个答案:stackoverflow.com/questions/5680429/…
  • 可能更容易减少非组织均衡图像中的噪声。
  • 如果原始图像中不存在此噪声,则它是均衡的伪影。您可以尝试 Gamma 校正和对比度拉伸等选项。此外,Frangi 过滤器通常用于提取血管状结构。
  • 为什么要先做直方图 eq,然后再做 CLAHE?我可以得到原始图像来玩吗?所有图像都会在中间模糊吗?您可以尝试使图像模糊一些,找到没有血管的空白区域的平均值,然后使用该值对图像进行阈值处理。可能膨胀和腐蚀算子可以帮助您在模糊之前删除一些点。 SO 有一系列这些问题的答案通常指向所谓的 Frangi 过滤器:link.springer.com/chapter/10.1007/BFb0056195。当然,这对于一般情况来说是相当多的工作。
  • @Micka,完成。刚刚进行了编辑。

标签: python image opencv image-processing


【解决方案1】:

我的论文的很大一部分是关于减少图像中的噪点,我使用了一种技术来减少图像中的噪点,同时保留图像中信息的锐利边缘。我在这里引用自己的话:

从条纹图案中去除噪点的一种有效技术是对图像进行过滤 使用正弦余弦滤波[reference]。低通滤波器与两个图像卷积 取条纹图案图像的正弦和余弦的结果,然后 划分以获得切线,恢复相位模式但噪声降低。这 这种技术的优点是该过程可以重复多次 减少噪音,同时保持相变的清晰细节。

这是我使用的代码:

import numpy as np
from scipy import ndimage

def scfilter(image, iterations, kernel):
    """
    Sine‐cosine filter.
    kernel can be tuple or single value.
    Returns filtered image.
    """
    for n in range(iterations):
        image = np.arctan2(
        ndimage.filters.uniform_filter(np.sin(image), size=kernel),
        ndimage.filters.uniform_filter(np.cos(image), size=kernel))
    return image

在那里,image 是一个代表图像的 numpy 数组,线性重新缩放以将黑色置于 0 并将白色置于 2 * pikernel 是应用于数据的统一过滤器的图像像素大小.不需要太多的迭代就能看到积极的结果,可能在 5 到 20 次之间。

希望有帮助:)

【讨论】:

    猜你喜欢
    • 2014-05-22
    • 1970-01-01
    • 2012-03-03
    • 2023-04-05
    • 2021-08-16
    • 2011-12-30
    • 2019-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多