Сначала запустите горизонтальный градиент, чтобы выделить только вертикальные края.Вы можете вычислить горизонтальный градиент с этими коэффициентами:
-1 0 1
-2 0 2
-1 0 1
Затем вычислите сумму вертикальных столбцов, вы можете использовать np.sum(array,axis=0)
, и вы получите это:
Я изменил форму для удобства просмотра - на самом деле он всего 1 пиксель в высоту.Надеюсь, вы увидите яркую белую линию в середине, которую вы можете найти с помощью Numpy argmax()
.Также будет лучше, если вы просто сделаете горизонтальный градиент, потому что в данный момент я использую пурпурно-желтое изображение с улучшенными вертикальными и горизонтальными краями.
Обратите внимание, что вдохновением для этого подхода является то, что вы сказали, что вы «хочу идентифицировать эту длинную вертикальную осевую линию» , и обоснование заключается в том, что длинная линия белых пикселей будет складываться в большую сумму.Обратите внимание, что я предположил, что ваше изображение искажено (так как вы сказали, что линия вертикальная), и этот метод может не очень хорошо работать на перекосах, где «вертикальная» линия будет распределена по нескольким столбцам.