前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Image Synthesis

Image Synthesis

作者头像
WolframChina
发布2018-05-31 17:19:07
6740
发布2018-05-31 17:19:07
举报
文章被收录于专栏:WOLFRAMWOLFRAM

mountain =

;hut =

indexFunc[s_, w_] := {Quotient[s, w, 1] + 1, Mod[s, w, 1]};

edgeWeight[_[s_, t_], data_, w_] :=

Block[{sindex, tindex}, sindex = indexFunc[s, w];

tindex = indexFunc[t, w];

Norm[Extract[data, sindex]] + Norm[Extract[data, tindex]]];

weightImageGraph[hut_, mountain_] :=

Block[{g, dimx, dimy, data, elist, vcount, eweights}, {dimx, dimy} =

ImageDimensions[mountain];

g = GridGraph[{dimx, dimy}];

elist = EdgeList[g];

vcount = VertexCount[g];

data = ImageData[hut][[;; dimy]] - ImageData[mountain];

eweights = edgeWeight[#, data, dimx] & /@ elist;

Graph[Join[Table[UndirectedEdge["s", i], {i, 1, dimx}], elist,

Table[UndirectedEdge[vcount - i, "t"], {i, 0, dimx - 1}]],

EdgeCapacity -> (Join[#, eweights, #] &[

Table[Total[eweights], {dimx}]])]];

graph = weightImageGraph[hut, mountain];

edgecut = FindEdgeCut[graph, "s", "t"];

synthesis[hut_, mountain_, edgecut_, graph_] :=

Block[{dimx, dimy, comp, newpart, mountaindata,

hutdata}, {dimx, dimy} = ImageDimensions[mountain];

mountaindata = ImageData[hut];

hutdata = ImageData[mountain];

comp = Select[ConnectedComponents[EdgeDelete[graph, edgecut]],

MemberQ[#, "s"] &] // First;

newpart = indexFunc[#, dimx] & /@ DeleteCases[comp, "s"];

ReplacePart[

mountaindata, ({#1, #2} -> hutdata[[#1, #2]]) & @@@ newpart]]

newdata = synthesis[hut, mountain, edgecut, graph];

Image[newdata, ColorSpace -> "RGB"]

--------By 官网(原谅小编不放链接,因为俺觉得不去官网混一圈的人,是很难理解Mathematica 与 Wolfram 本人是多么的伟大)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-02-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 WOLFRAM 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库一体机 TData
数据库一体机 TData 是融合了高性能计算、热插拔闪存、Infiniband 网络、RDMA 远程直接存取数据的数据库解决方案,为用户提供高可用、易扩展、高性能的数据库服务,适用于 OLAP、 OLTP 以及混合负载等各种应用场景下的极限性能需求,支持 Oracle、SQL Server、MySQL 和 PostgreSQL 等各种主流数据库。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档