Построение спектра RGB как 2-D цвета матрицы?
-
08-10-2019 - |
Вопрос
Любые предложения о том, как я могу пойти построению цветового пространства RGB как 2-D Matrix? Мне нужно теоретическое описание того, что происходит; Образец кода или псевдокод будет полезен, но не требуется. Спасибо!
Решение
Если вы хотите представлять каждый цвет в пространстве RGB в 2D сетке, в результате в результате невозможно избежать разрывов / резких границ. Но некоторые методы сопоставления будут выглядеть лучше, чем другие.
Примеры от возможностиwrong.wordpress.com ALLRGB: Гильбертные кривые и случайные охватывающие деревья:
Пересекайте пиксели изображения с помощью двухмерного (порядка 12) кривой Гильберта, в то же время, проходящие куб RGB COBE с помощью трехмерного (порядка 8) кривой Гильберта, присваивая каждый пиксель в свою очередь. 2D">
«Широчная обход случайного охватывающего дерева пикселей, присвоение цвета в порядке кривой Гильберта».
Также проверьте allrgb.com., «Цель ALLRGB проста: создать изображения с одним пикселем для каждого цвета RGB (16777216); не один цвет отсутствует, а не один цвет.
Другие советы
Если вы не хотите терять информацию, вам нужно будет использовать три измерения. Если вы можете потерять некоторую мерную информацию, то это легко. Просто делай это:
// or HSV
int [256*256][256] colorMatrix;
for (int r = 0; r < 256; r++) {
for (int r = 0; r < 256; r++) {
for (int r = 0; r < 256; r++) {
colorMatrix[256*r+g][b] = color(r, g, b);
}
}
}
На самом деле нет хорошего ответа на 2D, потому что вам действительно нужно 3 измерения. Конечно, вы можете проецировать 3D-пространство на 2D, но чтобы сохранить значимое количество информации, которую вам почти нужно предоставить обычные 3D-манипулирования, поэтому вы можете увидеть проекцию, просмотренную из различных разных углов и такого.