level 12
705733
楼主
最近找到一段代码,不过是6.0版本的,复制到现在版本出错了,想知道这里的N[i[[1, 1]]],里面的[[1,1]]是干什么用的,好像问题就出在这里,但是没有6.0版本的帮助,无奈...
代码:
imagePool =
Map[With[{i = Import[#]}, {i, Mean[Flatten[N[i[[1, 1]]], 1]]}] &,
FileNames["\\48\\*.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}]
PS按原作者描述好像是用来求图片RGB中位数的,不是很清楚,
原作者原文:Mathematica首先把所有照片以及每个照片的RGB值的中位数存成一个list,函数closeMatch将图片按照RGB值的均方根排序,然后随机从头20个中选出一个。第三行用Grid函数输出我们所要的马赛克拼图。
2017年10月06日 15点10分
1
代码:
imagePool =
Map[With[{i = Import[#]}, {i, Mean[Flatten[N[i[[1, 1]]], 1]]}] &,
FileNames["\\48\\*.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}]
PS按原作者描述好像是用来求图片RGB中位数的,不是很清楚,
原作者原文:Mathematica首先把所有照片以及每个照片的RGB值的中位数存成一个list,函数closeMatch将图片按照RGB值的均方根排序,然后随机从头20个中选出一个。第三行用Grid函数输出我们所要的马赛克拼图。