当前位置: 首页 > 科技观察

编码的艺术:用数字技术绘画

时间:2023-03-19 21:32:35 科技观察

给你一张真彩色的图,你的任务是创建另一个版本的图像,看起来像是用数字标记画的(孩子们经常这样玩)。当您开始绘图时,您可以设置两个参数:P,调色板的最大大小(即要使用的不同颜色的最大数量),以及N,要使用的最大单元格数。您的算法不必使用所有P种颜色和N个单元格,但不得使用任何其他颜色。输出图像应与输入图像具有相同的尺寸。单元格定义为相同颜色像素的连续区域。仅靠近一个角的像素不被认为是连续的。细胞可能是空心的。简而言之,您只能粗略估计具有N个平坦阴影或纯色区域和P个不同颜色的输入图像。为了可视化参数,这里有一个非常简单的示例(展示我对没有特定输入的图像的出色绘图技巧嘿嘿)。下图的参数是P=6,N=11。这里有一些图像可以测试你的算法。请包括具有一些不同参数的一系列结果。如果要显示大量结果,可以在imgur.com上创建一个图库,以保持响应式图像大小合理。此外,在您的文章中放置缩略图并将它们链接到更大的图像,如上图,也是一个好主意。另外,如果您发现更好的图像,请随意使用其他测试图像。我认为在大约N>=500,P~30时,输出将类似于真正的数字水彩模板。这是一场人气竞赛,因此得票最多的回复获胜。投票者可以通过以下几个方面来判断作品的好坏:1.对原始图像的估计有多好2.算法对不同种类图像的应用有多好(绘画通常可能比照片更容易)3.算法在估计上有多好它使用非常严格的参数4.细胞形状看起来自然/光滑吗?我将使用以下Mathemaica脚本来验证结果:image=//ImageData;palette=Union[Join@@image];Print["P=",Length@palette];grid=GridGraph[Reverse@Most@Dimensions@image];image=Flatten[image/.Thread[palette->Range@Length@palette]];Print["N=",Length@ConnectedComponents[Graph[Cases[EdgeList[grid],m_<->n_/;image[[m]]==image[[n]]]]]]原文:PaintbyNumbers翻译:http://www.php100.com/html/it/focus/2014/1209/8012.html(翻译:PHP100_Alex)