Я пытаюсь извлечь кровеносные сосуды из изображения, и для этого я сначала выравниваю изображение, применяя гистограмму CLAHE, чтобы получить следующий результат:
clahe = cv2.createCLAHE(clipLimit=100.0, tileGridSize=(100,100))
self.cl1 = clahe.apply(self.result_array)
self.cl1 = 255 - self.cl1
И затем я использую порог OTSU для извлечения кровеносных сосудов, но не могу сделать это хорошо:
self.ret, self.thresh = cv2.threshold(self.cl1, 0,255,cv2.THRESH_BINARY + cv2.THRESH_OTSU)
kernel = np.ones((1,1),np.float32)/1
self.thresh = cv2.erode(self.thresh, kernel, iterations=3)
self.thresh = cv2.dilate(self.thresh, kernel, iterations=3)
Здесь результат:
Очевидно, там много шума. Я пробовал использовать медианное размытие, но он просто кластеризует шум и превращает его в капли, в некоторых местах. Как я могу устранить шум, чтобы получить кровеносные сосуды?
Это оригинальное изображение, из которого я пытаюсь извлечь кровеносные сосуды: