Wolfram的Blog上更新了一段非常牛的Mathematica代码,真的让我大开眼界。只需要三行代码,你就可以自己做一个马赛克拼图。
imagePool = Map[With[{i = Import[#]}, {i, Mean[Flatten[N[i[[1, 1]]], 1]]}] &, FileNames["Pool/*.jpg"]];
closeMatch[c_] := RandomChoice[Take[SortBy[imagePool, Norm[c - #[[2]]] &], 20]][[1]];
Grid[Reverse[Map[closeMatch, Import["MasterImage.tif"][[1, 1]], {2}]], Spacings -> {0, 0}]
其中,”Pool/*.jpg”是你的图库,我估计最少也得有几百张吧。我用Photoshop把我的collection全部处理成了35×35的小图;为了让最终效果更佳,我特地把它们全部处理成单色的,并且减小了对比度。”MasterImage.tif”是你的目标图片,Mathematica会把这个图片中的每一个像素用图库中一个合适的图来代替。我把我的照片剪裁了一下,然后压成19×22的大小。Mathematica首先把所有照片以及每个照片的RGB值的中位数存成一个list,函数closeMatch将图片按照RGB值的均方根排序,然后随机从头20个中选出一个。第三行用Grid函数输出我们所要的马赛克拼图。最后我们就得到了——由众MM图所组成的Matrix67的肖像画!!如果你还看不出来的话,站远点儿眯着眼睛就能看出来了。
Mathematica 5.0貌似没有SortBy和Grid等函数,因此这段代码在5.0下面不能用。为此我专门把Mathematica升到了6.0,改进不小,建议还在用5.x的朋友都去试一试。起初在网上找Mathematica 6.0的下载找了半天,结果在北大数院的FTP里找到了,下载速度贼快。
很黄很暴力的沙发。
板凳一个!
美图!
拼的是什么 小狼狗吗
说实话 我想要你的collection
似乎是他本人……
强烈要求重开留言板……
看了半天,到是很养眼.
全了..
交图不杀
代码没看懂,MatheMatica和MM都很黄很好。。
RandomChoice[Take[SortBy[imagePool, Norm[c – #[[2]]] &], 20]][[1]];
Grid[Reverse[Map[closeMatch, Import[“MasterImage.tif”][[1, 1]], {2}]], Spacings -> {0, 0}]真简短啊。
搜狐网友 在上文中提到:
一个唐山人的建议: 我曾亲历过唐山大地震,我现在发现汶川的救人方式有点问题,请大家帮着转:急!!!急!!!急!!!急!!!急!!! 救灾技巧1、希望尽快组织大量生理盐水到救援现场! 女孩被救出10分钟去世,是可以避免的. 肢体被挤压超过24小时后开始出现肌肉坏死.一旦移开重压,坏死肌肉会释放大量的肌红素,蛋白,钾等电解质.迅速引起心肾衰竭而死.这就是很多被救人员在被挤压中还能说话,而救出几分钟后死亡的原因. 因此在移开重物前就要为伤者滴注生理盐水,让伤者进行有效代谢,把血液中这些东西排出后再移开重物.否则一旦移开重物,死亡的机率很高. 希望尽快组织大量生理盐水到救援现场! 如果采用我的建议会有更多的人挽回生命: 从废墟中救出的人有些好像已经死亡,但其实是长时间埋在地下造成的窒息.如果抬出来后先不用布盖住,让其置于室外并洒些水淋一淋有可能会复活.唐山大地震时我的哥哥被挖出来后就已经没有一点气了,我们都以为他已经死了,就放在地上,但由于震后下了雨,被雨水淋过以后,过了十多分钟,我哥哥奇迹般地的有了呼吸.这几天我一直在打红十字会的电话想把这个建议转达灾区救援队,但一直占线,请相信我,我是唐山人,是亲历者. 请大家帮忙转发! 希望这条建议发出去后,能够通过专家和重要媒体的核实、关注和行动,如果能起到作用,不让那些本可以救活的无辜的同胞死去的话,也算是尽了一份本人的力
又忍不住从Google Reader里面跳过来留言了……
居然收集了这么多图片…大赞
为什么自己弄就一直running然后没有下文了呢?
我也是忍不住从reader跳过来的……
Matrix67牛,我觉得不应该在这个时候发篇文章,因为组成图片的图片太不严肃了,不管你最后组成的是肖像还是汶川,都很不严肃……
还是关心地震赈灾情况吧。
Ai,我和BillyLinux都觉得你因该说 “交图不和”…hexie…
不要这样子
我是很纯洁的……
果然是色狼~~~~
。。Mathematica 6.0。。
67牛你有直接安装的程序吗,本人目前只有5.0的
5.0比6.0差太多了
最后一行第二张…
Matrix67的MM真多- –
一张一张的看……
No more memory available.
Mathematica kernel has shut down.
我用就出现这个 ???
我把Import[“face.tif”][[1, 1]]改成了Import[“face.tif”][[1, 1]][[All, All, 1 ;; 3]],不然就是一直运行。
详见,http://gsong.net/?p=68&lang=zh
您不收集其他图片?
真的很黄很暴力,好多图片我都没有…
看来高智商的人也是人
同意31楼
见过一个冠希的 那个强大
Matrix67 给你留一个你喜欢的网站。呵呵~~~http://down.98dz.info/bbs/
我喜欢这里留言
比陈冠希还厉害呢
高手,呵呵。。。
有眼福了。。。
你在校园里当然下载速度巨快。我们这些在公众网上的人估计就没那么快了吧。
求大图
67兄你实在是太奔放了
一直有写这个东西的念头啊
为什么我用一模一样的代码,会出现如下错误信息呢?Mathematica的版本是8.0:
Flatten::normal: Nonatomic expression expected at position 1 in Flatten[Byte],1,1]
我就记得matrix67有写这么一个。。。2011年中国流行了个网站人人有一个头像拼图,就是酱紫的。。。唉。。。
顶一个,不错有创意
回答44楼 “为什么我用一模一样的代码,会出现如下错误信息呢?Mathematica的版本是8.0:
Flatten::normal: Nonatomic expression expected at position 1 in Flatten[Byte],1,1]” 不然我打死你
既然你披肝沥胆地发贴了,那我就大发慈善地回你一贴。为了避免贴吧被损坏,为了维 护此楼的跟平!贯彻爱与实在的邪恶可恶又迷人的顶贴角色!—穿梭在河汉之间的顶贴 队
◆轻体饮食营养素 减肥瘦身 推举 ★膳食纤维 在轻体饮食养分素排行榜上,膳食纤维是相对的第一!膳食纤维重要存在于蔬菜跟粗加工的谷类中,不仅有助于胃 怎么才能快速减肥 肠道蠕动,利于毒素排出,还能减慢糖的接收,利于减肥瘦身。
怎么才能快速减肥
快速减肥的最佳方法
健康减肥方法大全
健身能减肥 快速减肥的最佳方法 吗
很贊哦!