Среднее количество пикселей в цветовом пространстве HSV против RGB

Мой вопрос немного более концептуален, чем все остальное. Я представляю пространственную карту (скажем, карту столичной области) в полярной системе координат. Я записал данные о людях в пригородном районе 10х10, спрашивающих, где они хотели бы жить в этом мегаполисе. (r,theta) - r расстояние от центра, theta угол вокруг оси х, поэтому я использую полярную систему координат и HSV, чтобы раскрасить его, сохраняя V=1=constant, После получения цвета HSV для каждого дома я преобразовал эту матрицу HSV 10x10x3 в RGB и использовал image() для отображения следующего графика.

Фиг.1: [10x10 сетка, представляющая окрестности. Цвета показывают, где эти семьи хотят жить в столичном регионе. Легенда показывает столичную область в полярных координатах, цветовое пространство HSV, где V=1 всегда.]

Теперь я пытаюсь создать более наглядное представление об этом пригородном районе, чтобы увидеть, группируются ли люди в соответствии с их предпочтениями относительно того, где они хотели бы жить в столичном регионе. С помощью

Img2=imresize(Img,1000,'bilinear','colormap','original');

Это увеличивает размер матрицы RGB 10x10x3 до матрицы RGB 10000x10000x3 при использовании билинейной интерполяции между пикселями, таким образом сглаживая изображение, показанное здесь:

Fig2: [Большая сглаженная матрица с использованием билинейной интерполяции между пикселями]

Мой вопрос: допустимо ли использовать этот метод интерполяции в пространстве RGB, если мои основные интересы лежат в пространстве HSV, то есть в столичной области с полярными координатами? Другими словами, когда эта функция принимает средний цвет многих пикселей в RGB, будет ли она представлять правильный радиус и угол в столичном регионе?

Большое спасибо заранее. Я прошу прощения за долгое сложное построение до потенциально простого вопроса.

1 ответ

Решение

V определяется как максимум (R,G,B).

Если вы интерполируете из RGB(255,0,0) в RGB(0,0,255)то на полпути вы в конечном итоге RGB(128,0,128),

Вы видите, что максимум составляет 128. Таким образом, вы не можете использовать rgb интерполяция, если вы не увеличите V обратно до 1 (или 255, если вы используете 8 бит)

Кстати. Я не буду интерполировать, так как вы не можете предполагать, что базовые значения являются линейными.

Смотрите здесь для получения дополнительной информации: /questions/11070153/kak-interpolirovat-znacheniya-ottenkov-v-tsvetovom-prostranstve-hsv/11070169#11070169

Другие вопросы по тегам