Выделить жилы у листьев растений с помощью python

Нужна помощь. Я пытаюсь выделить структуру листа "Скелет" с помощью метода Кенни но результат не устраивает.

import numpy as np
import cv2 as cv
from matplotlib import pyplot as plt
path = r'C:\Users\Admin\PycharmProjects\pythonProject2\v.png'
img = cv.imread(path, 0)
edges = cv.Canny(img, 400, 300)
plt.subplot(121), plt.imshow(img, cmap='gray')
plt.title('Original Image'), plt.xticks([]), plt.yticks([])
plt.subplot(122), plt.imshow(edges, cmap='gray')
plt.title('Edge Image'), plt.xticks([]), plt.yticks([])
plt.show()

Выделяется слишком много границ, а хочется получить только основную структуру как например: введите сюда описание изображения

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

Допустим вот эту


Ответы (1 шт):

Автор решения: Whynot_46

Чтобы убрать лишний шум с изображения используйте алгоритмы размытия, например GaussianBlur

blur = cv2.GaussianBlur(img, (11,11), 0)

Укажите ширину и высоту ядра, которые должны быть положительными и нечетными. Также можете указать стандартное отклонение в направлениях X и Y, sigmaX и sigmaY соответственно. Если указан только sigmaX, sigmaY принимается таким же, как sigmaX. Если оба заданы как нули, они рассчитываются на основе размера ядра. Размытие по очень эффективно удаляет шум с изображения.

→ Ссылка