почему я должен использовать (y, x) вместо (x, y) для доступа к пикселю в opencv? - PullRequest
0 голосов
/ 06 февраля 2019

Мне пришлось получить доступ к пикселю в изображении, используя openCV, но сначала я не смог, так как python говорил мне, что значение, к которому я хотел получить доступ, вышло за пределы.

Затем я искалэта ошибка, и я обнаружил, что я должен получить доступ к пикселю, используя image[y, x] вместо image[x, y].

Я нашел эту часть информации в комментариях на этой странице, но нет объяснения: https://www.pyimagesearch.com/2016/02/01/opencv-center-of-contour/

Адриан Роузброк 12 февраля 2016 в 15:19 #: При доступе к значениям пикселей в OpenCV + NumPy вы фактически указываете их в (y, x) порядке, а не (x, y) порядке.Таким образом, вам нужно использовать: image [cY, cX]

Итак, вопрос в том ... почему я должен инвертировать координаты при попытке получить доступ к пикселю?

1 Ответ

0 голосов
/ 13 марта 2019

найти ответ в комментариях.Это связано с тем, как матрицы языков хранятся:

Помимо Фортрана, большинство языков хранят матрицы в мажорном порядке строк, поэтому индексы - это строка, столбец, aka y, x.- Пол Р 6 февраля в 8:30

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...