如何从直方图均衡图像中去除噪声?

时间:2016-04-18 10:11:24

标签: python image opencv image-processing

我有一个我正在均衡的图像然后使用clahe直方图,就像这样:

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

这是我得到的结果:

enter image description here

我想摆脱所有黑点,即噪音。最后,我试图提取上面图像中的黑色血管,试图这样做,噪音使得提取不准确。

1 个答案:

答案 0 :(得分:2)

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

  

从条纹图案中去除噪声的有效技术是过滤图像   使用正弦余弦滤波[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 * pikernal为图像像素的大小应用于数据的均匀滤波器的数量。不应该花费太多的迭代来看到阳性结果,可能在5到20的范围内。

希望有所帮助:)