数字绘画
您会得到一个真实的彩色图像。您的任务是生成此图像的一个版本,该版本看起来像是使用数字绘画(孩子们的活动,而不是非图表)绘制的。除了图像外,还提供了两个参数:P(调色板的最大大小(即,要使用的最大不同颜色的数量))和N(要使用的最大单元数)。您的算法并没有必须使用所有P的颜色和ñ细胞,但它不能使用不止于此。输出图像应具有与输入相同的尺寸。 甲细胞被定义为全部具有相同的颜色的像素的连续区域。仅在某个角触摸的像素不被视为连续的。细胞可能有孔。 简而言之,您只能使用N个阴影/纯色区域和P个不同的颜色来近似输入图像。 只是为了可视化参数,这是一个非常简单的示例(没有特定的输入图像;展示了我疯狂的Paint技能)。下图具有P = 6和N = 11: 这是一些测试您的算法的图像(大多数是我们通常的怀疑者)。单击图片查看大图。 请提供一些不同参数的结果。如果要显示大量结果,可以在imgur.com上创建一个图库,以使答案的大小合理。另外,也可以像上面一样,将缩略图放在您的帖子中,并使其链接到较大的图像。另外,如果发现不错的东西,请随时使用其他测试图像。 我假设参数N≥500,P〜30与真实的按数字绘制模板相似。 这是一次人气竞赛,因此以最多净票数赢得答案。鼓励选民通过以下方式判断答案 原始图像的近似程度。 该算法在不同类型的图像上的效果如何(绘画通常比照片容易)。 该算法在非常严格的参数下的效果如何。 单元格形状的有机/平滑外观。 我将使用以下Mathematica脚本来验证结果: image = <pastedimagehere> // 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_ /; …