Python / opencv - повторяющееся полярное изображение - PullRequest
0 голосов
/ 27 сентября 2019

Моя проблема заключается в следующем.Сначала я делаю снимок через веб-камеру.Для целей, которые здесь не актуальны, мне нужно преобразовать изображение (которое теперь является массивом яркости пикселей) в полярные координаты, центрированные в определенной точке.Однако позже я хочу, чтобы полярное изображение было отцентрировано в другой точке.

Пока мой код выглядит так:

import cv2
import numpy as np

source = cv2.imread(0) # takes picture, which is a (100,100,3) array

# now I convert this into a (100,100) array of brightnesses
# by taking the average of the R, G and B values at each point

image = np.zeros((100,100))
for i in range(100):
    for j in range(100):
        for n in range(3):
            image[i][j] += source[i][j][n]/3

# now to convert it to polar coordinates centred at a point (x,y)

x, y = 50, 50
radius = np.sqrt(2)*50
polar_image = cv2.linearPolar(image, (x, y), radius, cv2.INTER_LINEAR)

До этого момента все работало нормально.Я не уверен, как взять массив polar_image и сказать, хорошо, я хочу новый массив, который все еще находится в полярных координатах, но центрирован в другой точке.

Да, я мог бы преобразовать polar_image обратно в декартову, используя флаг cv2.WARP_INVERSE_MAP, а затем выполнить то же преобразование, что и выше, с разными x и y, однако, по причинам, на которых я не буду останавливаться, я действительно хотел бы знатьесли есть альтернативный метод, позволяющий избежать преобразования изображения обратно в декартовы, а затем обратно в полярные.Очевидно, что интерполяция хороша, если она неизбежна.Спасибо!

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