我有一个我正在均衡的图像然后使用clahe直方图,就像这样:
self.equ = cv2.equalizeHist(self.result_array)
clahe = cv2.createCLAHE(clipLimit=100.0, tileGridSize=(8,8))
self.cl1 = clahe.apply(self.equ)
这是我得到的结果:
我想摆脱所有黑点,即噪音。最后,我试图提取上面图像中的黑色血管,试图这样做,噪音使得提取不准确。
答案 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 * pi
,kernal
为图像像素的大小应用于数据的均匀滤波器的数量。不应该花费太多的迭代来看到阳性结果,可能在5到20的范围内。
希望有所帮助:)