Хитрая операция на изображении

Я хочу на изображении ниже (с помощью Python):

1.) Найти контуры костей (подойдут только стороны)

2.) Распознать и нарисовать все контуры.

Это может выглядеть примерно так:

Лучший контур - это даже хорошо. Я не совсем уверен, как я мог бы заняться этим,

Градиент изображения:

2 ответа

Решение

Первоначальный способ приблизиться к этому - использовать обнаружение кромок, используя правильные пороговые значения, а затем найти контуры.

import cv2

# Load the image
img = cv2.imread("/home/tribta/Desktop/feet.png")

# Find the contours
imgray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(img,60,200)
im2, contours, hierarchy = cv2.findContours(edges, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

hierarchy = hierarchy[0] # get the actual inner list of hierarchy descriptions

# For each contour, find the bounding rectangle and draw it
cv2.drawContours(img, contours, -1, (0,255,0), 3)

# Finally show the image
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

Затем вы можете добавить некоторые критерии биомедицинской обработки, чтобы различать различные контуры и проверить, действительно ли это кость.

Вы должны сначала применить порог, используя cv2.threshold чтобы очистить изображения от объектов, которые вам не нужны, попробуйте разные значения интенсивности, чтобы поймать границы, а затем примените некоторые морфологические операции, такие как OPENING а также CLOSING с cv2.morphologyEx немного очистить изображение, заполнить отверстия и, наконец, применить cv2.findContours а также cv2.drawContours чтобы получить окончательное изображение контура костей.

проверьте эти команды в библиотеке opencv. Вы найдете действительно хорошие примеры для работы с stackru и интернетом, попробуйте адаптировать свой код к ним. Надеюсь, это помогло тебе.

Другие вопросы по тегам