Обнаружение края — удаление фона

#python #image #background #edge-detection

#python #изображение #фон #обнаружение края

Вопрос:

Хотелось бы использовать обнаружение края на изображениях микроскопа, чтобы сделать фон белым. Это код, который у меня есть до сих пор, может ли это быть полезным?

код:

 import cv2 
import numpy as np 
import matplotlib.pyplot as plt
def simple_edge_detection(image): 
   edges_detected = cv2.Canny(image , 100, 200) 
   images = [image , edges_detected]
   location = [121, 122] 
   for loc, edge_image in zip(location, images): 
      plt.subplot(loc) 
      plt.imshow(edge_image, cmap='gray')
   cv2.imwrite('edge_detected.png', edges_detected)
   plt.savefig('edge_plot.png')
   plt.show()
   
img = cv2.imread('gay2.0.jpg', 0)
simple_edge_detection(img)
 

результат кода:

желаемый результат:

Ответ №1:

Используйте хитрый фильтр и бинаризируйте с порогом, достаточным для удаления большей части фона.

Удалите маленькие капли и обнаружьте их на границах изображения (возможно, заполните их отверстия). Они определяют маску вокруг интересующего объекта (не беспокойтесь о зеленых и оранжевых линиях на картинке).

Вы можете добавить некоторую предварительную или постобработку, чтобы удалить держатели.

введите описание изображения здесь