Извлечение контура изображения в виде непрерывного пути с помощью opencvPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Извлечение контура изображения в виде непрерывного пути с помощью opencv

Сообщение Anonymous »

Предыстория
Итак, в настоящее время я работаю над проектом, который является расширением серии преобразований Фурье поезда кодирования. Огромное спасибо ему за вдохновение на этот проект!
Посмотрев его видео о преобразовании Фурье логотипа поезда кодирования, я подумал, что было бы интересно попробовать реализовать это для любого изображения. Моя цель — иметь возможность передать контур объекта на любом изображении как непрерывный путь к алгоритму ДПФ, чтобы я мог визуализировать преобразование Фурье указанного пути.
Ссылка на поезда кодирования видео:
Мой прогресс
На данный момент, используя opencv в Python, у меня есть реализовал алгоритм, позволяющий обнаружить контур объекта на любом изображении и отобразить его. Я приложил образец вывода.
Перед обработкой
Изображение перед обработкой
После обработки
Изображение после обработки
Моя проблема и ожидаемый результат
Теперь, когда у меня есть ребра, я хочу иметь возможность извлечь это ребро как непрерывный путь, представленный (x, у) координаты. Причина, по которой мне нужен непрерывный путь, заключается в том, что я собираюсь выполнить ДПФ на этом пути, и если он не является непрерывным, моя визуализация ДПФ не удастся.
Я понятия не имею, как упорядочить точки так, чтобы они не прыгали слева направо или сверху вниз, а следовали по плавному непрерывному пути слева направо или наоборот.
Я новичок в компьютере видение, и я очень надеюсь, что кто-нибудь сможет мне помочь! Не стесняйтесь, дайте мне знать, если я где-то напутал или могу ли я улучшить свой код. Я очень хочу научиться.
Код
Вот мой код
# read in the image
img = cv2.imread("Images/selfietest.jpeg")

# convert image to gray scale
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
height, width = gray_img.shape

# white_padding = np.zeros((50, width, 3))
# white_padding[:, :] = [255, 255, 255]
# rgb_img = np.row_stack((white_padding, imgOut))

gray_img = 255 - gray_img
gray_img[gray_img > 100] = 255
gray_img[gray_img

Подробнее здесь: https://stackoverflow.com/questions/696 ... ing-opencv
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»