在使用Python中使用OpenCV保留血管信息的同时,需要帮助去除盐和胡椒噪声以提取血管

时间:2019-06-17 19:12:48

标签: python image opencv image-processing

我目前正在尝试从眼睛图像中提取血管。到目前为止,我已经能够显示血管,但是图像周围仍然存在大量噪点-好像是盐和胡椒味噪点。我想尝试进一步突出血管,以便仅出现血管。我目前在Python中使用OpenCV。

我尝试使用不同类型的模糊,例如中值模糊。我还尝试了“打开”,“关闭”,“膨胀”和“侵蚀”,但噪音仍然存在。我不确定下一步将是什么。

这是我的代码:

r = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
threshold=cv2.adaptiveThreshold(r, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 91, 2.)
ret,f6 = cv2.threshold(threshold,0,250,cv2.THRESH_BINARY)

morph_img = cv2.morphologyEx(f6, cv2.MORPH_CLOSE, kernel)
imagem = cv2.bitwise_not(morph_img)
imagem2 = cv2.bilateralFilter(imagem,9,55,55)
imagem3 = cv2.medianBlur(imagem2,5)
imagem3 = cv2.bilateralFilter(imagem3,7,55,55)
imagem3 = cv2.dilate(imagem3,kernel,iterations=5)
imagem3 = cv2.medianBlur(imagem3,5)

return imagem3

我只想在黑屏上看到血管。必须使血管也连续。

这是我现在可以生成的图像:

Current image

原始图片

Original

1 个答案:

答案 0 :(得分:0)

让我猜一下青光眼的检测吗?我认为对于特定任务,您必须找到适合正确方法的特定论文

adaptiveThreshold可能不是一个好的选择。考虑将其他方法的更改(例如使用干净的黑白血管进行共同分割)作为共同地图。或主动轮廓模型或变化能量模型。其他类型则更常用于此类细分工作。

如果您只想要一些后期处理过滤器。如您所说,对于盐和纸张噪声,通常应使用非线性滤波器,例如中值滤波器

最近,该向导过滤器也将对您的情况有所帮助。您可以定义指南I。但是我怀疑这是后期处理过滤器的问题。您的原始细分结果很有可能真的很糟糕

enter image description here

转到Google搜索ASTAR青光眼检测细分,您将获得一系列可以遵循的论文。至少在2014年,或者至少他们告诉我,ASTAR是这一系列研究工作的领导方。我参加了2012-2014年的演讲。后来没做那么多事情了。当时他们使用的是活动轮廓模型,例如Snake能量函数。现在,他们正在转向基于纯深度学习的方法。您可以联系他们以获取试用源代码。

深度学习是一种更简单的方法,只需提供输入和所需的内容即可。它可以帮你。首先,您可以从Vgg16开始并逐步改进。

祝您好运,并能进行图像分割。