Преобразование координат x и y изображения в строку-основной линейный индекс

#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 и свяжусь с вами. Спасибо