编程的艺术:用数字技术作画

给你一副真彩画,你的任务是要完成这个图像的另一个版本,让它看起来就像是用数字彩笔画上去的一样(孩子们经常这样玩)。随着开始画图,你有两个参数可以设定:P,调色板的***尺寸(即使用不同颜色的***数量),和N,使用的单元格的***数量。你的算法不必非要使用所有的P颜色和N单元格,但它一定不能使用这之外的东西。输出的图像应该与输入的图像有相同的尺寸。

创新互联建站致力于成都网站设计、成都网站制作,成都网站设计,集团网站建设等服务标准化,推过标准化降低中小企业的建站的成本,并持续提升建站的定制化服务水平进行质量交付,让企业网站从市场竞争中脱颖而出。 选择创新互联建站,就选择了安全、稳定、美观的网站建设服务!

单元格被定义为具有相同颜色像素的连续区域。像素仅接近在一个角落不被认为是连续的。单元格可能有中空的现象。

简而言之,你只能通过N个平坦的阴影或固色区域以及P个不同的颜色来粗略估计输入的图像。

为了视觉化参数,这有一个很简单的例子(对于没有特别输入的图像时,炫耀下我牛逼的绘画技能嘿嘿)。下面这个图像的参数是P=6,N=11。

这有几个能测试你算法的图像。

[[124100]] [[124101]]  [[124102]][[124103]] [[124104]] [[124105]] [[124106]] [[124107]] [[124108]] [[124109]] [[124110]] [[124111]]

请包含一些不同参数的一系列结果。如果你想展示大量的结果,你可以在imgur.com创建一个画廊,以保持回应图像尺寸的合理性。另外,把缩略图放到你的文章里,并且把他们连接到更大的图像上面,就像上面的图像那样,也是个不错的做好。此外,随意使用其他测试图像吧,如果你找到一些比较好的图像的话。

我认为,在大约N>=500,P~30的时候,输出将类似于真正的数字水彩模板了。

这是一个人气竞赛,所以投票越多的回应作品才会获胜。投票者可以通过这几方面来判断作品的优劣:

1.原始图像被估计的有多好

2.算法在不同种类的图像上能适用多好(绘画可能通常比照片更容易)

3.算法在非常严格的参数下效果有多好

4.单元格形状看起来是不是自然/平滑

我将使用以下Mathemaica脚本来验证结果:

 
 
  1. image =  // ImageData; 
  2. palette = Union[Join @@ image]; 
  3. Print["P = ", Length@palette]; 
  4. grid = GridGraph[Reverse@Most@Dimensions@image]; 
  5. image = Flatten[image /. Thread[palette -> Range@Length@palette]]; 
  6. Print["N = ",  
  7.  Length@ConnectedComponents[ 
  8.    Graph[Cases[EdgeList[grid],  
  9.      m_ <-> n_ /; image[[m]] == image[[n]]]]]] 

原文:Paint by Numbers
译文:http://www.php100.com/html/it/focus/2014/1209/8012.html
(翻译:PHP100_Alex)

网站标题:编程的艺术:用数字技术作画
标题来源:http://www.gawzjz.com/qtweb2/news33/6583.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联