Это похоже на вопрос здесьНо я не смог воспользоваться его решением. Я работаю в Джулии и не знаю, как это работает в данном случае. Вот изображение, над которым я работаю
Из-за кривой линии и негладких краев получить ширину 'd' линии непросто. Я не знаю, как найти ортогональную линию в каждой точке и получить расстояние d1, d2. Я планирую взять ее среднее значение позже, чтобы получить оценку ширины линии. Какие-нибудь советы? Спасибо
@CrisLuengo Хорошо, извините, я наполовину понял, у меня есть преобразование расстояния через dist = 1 .- distance_transform(feature_transform(Gray.(line_image) .> 0.5)); Как мне прочитать расстояние от пикселя скелета?
Извините, я не знаю Джулию и функции, которые вы там используете. Но если вы выберете один скелетный пиксель, а затем посмотрите на значение изображения преобразования расстояния в этих координатах и умножите значение на два, то у вас будет толщина в этой точке. Вы можете сделать это для каждого скелетного пикселя, а может усреднить значения, а может у вас есть конкретная точка, в которой нужно измерить ширину?





Использование преобразования расстояния позволяет получить расстояние от соседних пикселей, а поиск ближайшего пикселя с большим расстоянием является интересующим пикселем. Используя евклидово расстояние от индекса в центральной точке (скелета) до ближайшего расстояния * 2, мы получаем ширину линии.
Вычислите преобразование расстояния объекта, которое дает вам в каждой точке расстояние до ближайшего пикселя фона. Каркас идет по гребню дистанционной формы прядей, где расстояние до двух противоположных краев равно. Считайте значение расстояния в пикселях скелета, чтобы получить это расстояние, которое составляет половину ширины.