#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:
Используйте хитрый фильтр и бинаризируйте с порогом, достаточным для удаления большей части фона.
Удалите маленькие капли и обнаружьте их на границах изображения (возможно, заполните их отверстия). Они определяют маску вокруг интересующего объекта (не беспокойтесь о зеленых и оранжевых линиях на картинке).
Вы можете добавить некоторую предварительную или постобработку, чтобы удалить держатели.