вычислить линию градиента каждого пикселя и найти пересечение

avatar
deema
8 августа 2021 в 20:39
117
0
0

Я вычисляю карту границ изображения, используя алгоритм Канни. Затем я хочу вычислить линию градиента каждого краевого пикселя (линию, проходящую через пиксель, которая параллельна градиенту) и найти точки пересечения этих линий.

Я использую Python OpenCV. Как вычислить линию градиента пикселя?

Источник
Cris Luengo
8 августа 2021 в 20:53
0

Что такое «градиентная линия»? Это линия, перпендикулярная градиенту? Параллельно градиенту?

deema
8 августа 2021 в 21:06
0

@CrisLuengo линия градиента совпадает с вектором градиента краевого пикселя и проходит через пиксель.

Cris Luengo
8 августа 2021 в 21:13
0

Алгоритм Кэнни вычисляет градиент. Вероятно, вы можете использовать это повторно. В противном случае используйте Производные Гаусса для вычисления вектора градиента для каждого пикселя, что непосредственно дает вам всю информацию, необходимую для определения параметров ваших линий.

deema
8 августа 2021 в 22:10
0

@CrisLuengo, если я применяю оператор Собеля, такой как img_sobelx = cv2.Sobel(grey_img,cv2.CV_16S,1,0,ksize=3) img_sobely = cv2.Sobel(grey_img,cv2.CV_16S,0,1,ksize=3) img_sobel = img_sobelx + img_sobely как мне вычислить линию градиента.

Cris Luengo
8 августа 2021 в 22:22
0

img_sobelx и img_sobely будут двумя компонентами вектора градиента. Но вы действительно должны последовать моему совету и использовать градиенты Гаусса, они дают лучшее приближение, чем Собелев.

Ответы (0)