#image #opencv #image-processing #coordinates #pixel
#изображение #opencv #обработка изображений #координаты #пиксель
Вопрос:
Предположим, у меня есть изображение размером 600 x 400, и я знаю координату (x, y) точки на изображении. У меня есть другой результат, представляющий собой единый массив 1D, полученный из того же изображения, который имеет значения 600 * 400 = 240000, который содержит пиксели, развернутые в порядке следования строк. Мне нужно сопоставить координату (x, y) с соответствующим местоположением.
I tried the equation pixel = (y-1)*width x
Правильно ли это сопоставлять координаты с соответствующим индексом?
Комментарии:
1. на этот вопрос невозможно ответить. как мы должны знать, как упорядочены значения в вашем «другом выводе»?
2. Мистер Пятачок, его упорядоченный
Ответ №1:
Здесь у вас правильное мышление. Вы создаете линейный индекс строки-строки для каждого местоположения на изображении. OpenCV (и, в конечном счете, массивы NumPy, поскольку это то, что используется для обработки изображений с помощью библиотеки OpenCV в Python) представляет данные изображения в форме строки-основного. Однако ваше выражение не совсем корректно, но вы очень близки. (y-1)*width x
предполагается, что координаты начинаются с 1. Поскольку координаты начинаются с 0 в OpenCV вместо 1, это должно быть просто y*width x
. Я оставлю это как упражнение для вас, чтобы убедиться, что это правильно.
Комментарии:
1. Привет @rayryeng спасибо за ваш ответ. Как вы упомянули, координата начинается с 0, а индексы пикселей представлены от 0 до 239999. Я проверю с помощью y * width x и свяжусь с вами. Спасибо