关于我如何将RGB色彩空间绘制为2D矩阵的任何建议?我需要关于正在发生的事情的理论描述;代码示例或伪代码将是有帮助的,但不需要。谢谢!

有帮助吗?

解决方案

如果您想在2D网格中代表RGB空间中的每种颜色,则可能不可能避免结果中的不连续性 /尖锐边界。但是某些映射技术看起来会比其他绘制技术更好。

示例来自可能的wordpress.com帖子 Allrgb:希尔伯特曲线和随机跨越树木:

  • 通过二维(订单12)希尔伯特曲线遍历图像的像素,同时通过3维(订单8)希尔伯特曲线穿越RGB颜色立方体,依次分配每个像素相应的颜色 hilbert RGB 3D- loading=2D">

  • “随机跨越像素树的宽度遍历,以希尔伯特曲线顺序分配颜色。” Breadth-first traversal of random spanning tree of pixels, assigning colors in Hilbert curve order.

也要结帐 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操作的有意义的信息,因此您可以从各种不同的角度等看到投影。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top