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

8 python opencv image 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)
Run Code Online (Sandbox Code Playgroud)

这是我得到的结果:

在此输入图像描述

我想摆脱所有黑点,这是噪音.最终,我试图从上面所示的图像中提取出黑色的血管,试图这样做,噪声使得提取不准确.

小智 2

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

\n\n
\n

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

\n
\n\n

这是我使用的代码:

\n\n
import numpy as np\nfrom scipy import ndimage\n\ndef scfilter(image, iterations, kernel):\n    """\n    Sine\xe2\x80\x90cosine filter.\n    kernel can be tuple or single value.\n    Returns filtered image.\n    """\n    for n in range(iterations):\n        image = np.arctan2(\n        ndimage.filters.uniform_filter(np.sin(image), size=kernel),\n        ndimage.filters.uniform_filter(np.cos(image), size=kernel))\n    return image\n
Run Code Online (Sandbox Code Playgroud)\n\n

那里image有一个代表图像的 numpy 数组,线性重新缩放以将黑色置于 处,0将白色置于 处2 * pi,并且kernel是应用于数据的均匀滤波器的图像像素大小。不需要太多迭代就能看到积极的结果,也许在 5 到 20 次左右。

\n\n

希望有帮助:)

\n