Я вычисляю карту границ изображения, используя алгоритм Канни. Затем я хочу вычислить линию градиента каждого краевого пикселя (линию, проходящую через пиксель, которая параллельна градиенту) и найти точки пересечения этих линий.
Я использую Python OpenCV. Как вычислить линию градиента пикселя?
Что такое «градиентная линия»? Это линия, перпендикулярная градиенту? Параллельно градиенту?
@CrisLuengo линия градиента совпадает с вектором градиента краевого пикселя и проходит через пиксель.
Алгоритм Кэнни вычисляет градиент. Вероятно, вы можете использовать это повторно. В противном случае используйте Производные Гаусса для вычисления вектора градиента для каждого пикселя, что непосредственно дает вам всю информацию, необходимую для определения параметров ваших линий.
@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 как мне вычислить линию градиента.
img_sobelx и img_sobely будут двумя компонентами вектора градиента. Но вы действительно должны последовать моему совету и использовать градиенты Гаусса, они дают лучшее приближение, чем Собелев.