将图像像素从正方形转换为六边形

问题描述 投票:0回答:4

如何将图像的像素从正方形转换为六边形?这样做我需要从每个十六进制像素中提取 RGB 值。有没有任何库或函数可以简化这个过程?

示例:蒙娜丽莎六角形像素形状

enter image description here 什么也没尝试。 谢谢

python opencv numpy image-processing
4个回答
2
投票

这是一种可能的方法,尽管我确信如果您能够编写代码来读取、操作和使用尚未发明的文件格式中的像素,您应该能够自己创建该文件;-)

您可以使用 ImageMagick 生成六边形网格,它安装在大多数 Linux 发行版上,并且适用于 OSX 和 Windows。在这里,我只是在终端的命令行上执行操作,但也有 Python、Perl、PHP、.Net、C/C++ 和其他绑定 - 所以您可以选择。

首先制作一个六边形网格 - 你必须计算出你需要的尺寸,我的是任意的:

convert -size 512x256 pattern:hexagons hexagons.png

enter image description here

现在,填充六边形,每个六边形都具有不同的颜色,我只是在这里做了一些洪水填充的示例来给您提供想法。理想情况下,您可以使用颜色

#000
为第一个(左上角)六边形着色,并使用
#001
为下一个六边形着色,以便您可以将输出图像的坐标作为连续颜色进行迭代。此外,根据您的输出图像大小,您可能需要使用 32 位 PNG 来容纳 hexels(六边形像素)的数量。

convert hexagons.png                          \
   -fill red - draw "color 100,100 floodfill" \
   -fill blue -draw "color 200,200 floodfill" \
   colouredmask.png

enter image description here

现在迭代所有颜色,使每种颜色除了该颜色透明。请注意,我添加了黑色边框,以便您可以在 StackOverflow 的白色背景上看到上下文:

convert colouredmask.png -fill none +opaque red onecell.png

enter image description here

现在用该蒙版遮盖原始图像,获取该单元格的平均颜色,并将其写入您尚未发明的文件格式。对所有单元格/颜色重复此操作。

请注意,基本六边形图案为 30x18,因此您应该将网格大小设置为其倍数,以使其正确镶嵌。

请注意,如果您有很多要处理的数据,您应该考虑使用诸如 GNU Parallel 之类的工具来利用多核。因此,如果您制作一个名为

ProcessOneImage
的脚本并且您有 2,000 张图像要做,您将使用:

parallel ProcessOneImage ::: *.png

如果您的 PC 有 8 个内核,它会保持(比如说 8)个作业一直运行。还有很多选择,试试

man parallel


2
投票

Fred 在他的网站上有一个 Imagemagick 脚本,可以执行您想要的操作:STAINEDGLASS


0
投票

对于那些来这里寻找将方形像素转换为六边形像素(或其他方式)的人,这里有一些你可能更感兴趣的东西。

转换是双向的,一种是另一种的逆。 这里我看一下六边形->正方形像素的过程。我正在寻找一个面向“平顶”的六角像素系统。它与“点顶”一样有效 - 通过将过程定向 90 度。 六角像素与方形像素的比例使得方形像素的边长等于六角像素的高度(如果R是六角像素的边长,则方形像素将是R√3。因此,对于边长为 1.0 的六角形像素,方形像素的比例宽度将为 1.7320)
现在我们可以对每行方形像素使用相同的计算。 每个方形像素颜色将有三到五个六角形像素的贡献。 (反之亦然)。重复将在每个83正方形像素上进行,这也是十六进制点96。 (在该方法中,每个六角形点的测量值为六角形的 1.5 边长,因为每个六角形柱与其相邻柱共享其边缘)。 这个重复的要点是 83
√3 ≅ 1.5*96.

因此,需要考虑每个正方形像素的每个六角像素的贡献,并且可以轻松地为此目的构建一个查找表。如果我有时间的话,我将添加一个 python 片段来演示这一点。

hexpix-sqpix chart


-1
投票

首先,我认为没有这样的函数可以让你执行点阵转换,因此你可能需要自己实现转换过程。

点阵转换是一个重采样的过程,同时也是一个插值的过程。六边形图像处理论文中已经开发了很多算法。

请参阅示例: enter image description here enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.