Построение спектра RGB в виде двумерной цветовой матрицы? - PullRequest
2 голосов
/ 17 октября 2010

Любые предложения о том, как я мог бы пойти о построении цветового пространства RGB в виде 2-D матрицы? Мне нужно теоретическое описание того, что происходит; пример кода или псевдокод был бы полезен, но не обязателен. Спасибо!

Ответы [ 3 ]

4 голосов
/ 10 сентября 2014

Если вы хотите представить каждый цвет в пространстве RGB в двумерной сетке, может быть невозможно избежать разрывов / резких границ в результате. Но некоторые методы отображения будут выглядеть лучше, чем другие.

Примеры из сообщения Possiblewrong.wordpress.com allRGB: кривые Гильберта и случайные остовные деревья :

  • Обход пикселей изображения с помощью 2-мерной кривой Гильберта (порядка 12) и одновременное прохождение цветового куба RGB с помощью 3-мерной кривой Гильберта (порядка 8) с назначением каждому пикселю по очереди соответствует цвет image2D">

  • "Обход в ширину случайного остовного дерева пикселей, назначение цветов в порядке кривой Гильберта." Breadth-first traversal of random spanning tree of pixels, assigning colors in Hilbert curve order.

Также ознакомьтесь с allrgb.com , "Цель allRGB проста: создать изображения с одним пикселем для каждого цвета RGB (16777216); не пропало ни одного цвета и не один цвет дважды".

2 голосов
/ 17 октября 2010

Если вы не хотите потерять какую-либо информацию, вам нужно использовать три измерения. Если вы можете потерять некоторую информацию о размерах, то это легко. Просто сделай это:

// 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);
        }
    }
}
1 голос
/ 17 октября 2010

Не совсем хороший ответ для 2D, потому что вам действительно нужно 3 измерения. Конечно, вы можете проецировать трехмерное пространство на 2D, но для того, чтобы сохранить значительный объем информации, вам почти необходимо обеспечить нормальное трехмерное манипулирование, чтобы вы могли видеть проекцию, видимую под разными углами и тому подобное.

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