【问题标题】:how to generate such an image in Mathematica如何在 Mathematica 中生成这样的图像
【发布时间】:2011-09-10 11:13:04
【问题描述】:

鉴于 Mathematica 强大的图像处理能力,我正在考虑在 Mathematica 中处理图像以生成 。谁能给出一些关于如何做到这一点的想法?

非常感谢。

【问题讨论】:

  • 当然。你只需要编写一个小程序来跟踪离轴非近轴近似透镜。可行吗?是的。有用?我对此表示怀疑。那里有很多光线追踪软件包。
  • @belisarius 真的有必要吗?我认为这可以很好地近似为每个单元格中图像的计算偏移量。

标签: image-processing wolfram-mathematica


【解决方案1】:

这是一个版本,使用纹理。它当然不是真正的镜头,只是以重叠的方式重复图像的某些部分。

t = CurrentImage[];

(* square off the image to avoid distortion *)
t = ImageCrop[t, {240,240}];

n = 20; 
Graphics[{Texture[t], 
   Table[
     Polygon[
       Table[h*{Sqrt[3]/2, 0} + (g - h)*{Sqrt[3]/4, 3/4} + {Sin[t], Cos[t]}, 
         {t, 0., 2*Pi - Pi/3, Pi/3}
         ], 
       VertexTextureCoordinates -> Transpose[{
         Rescale[
           (1/4)*Sqrt[3]*(g - h) + (Sqrt[3]*h)/2., 
           {-n/2, n/2}, 
           {0, 1}
           ] + {0, Sqrt[3]/2, Sqrt[3]/2, 0, -(Sqrt[3]/2), -(Sqrt[3]/2)}/(n/2), 
         Rescale[
           (3.*(g - h))/4, 
           {-n/2, n/2}, 
           {0, 1}
           ] + {1, 1/2, -(1/2), -1, -(1/2), 1/2}/(n/2)
         }]
      ], 
      {h, -n, n, 2}, 
      {g, -n, n, 2}
    ]
  }, 
  PlotRange -> n/2 - 1
]

这是应用于standard image test (Lena) 的上述代码

【讨论】:

  • @Brett,+1 看起来很棒。但我只有 Mma 7.0,它没有 VertexTextureCoordinates 选项。无法试用。 Mma7.0中是否有解决方法或类似的东西?再次感谢!
  • 我可以不由自主地想到两种可能性。首先,使用ParametricPlotColorFunction 之类的东西将六边形绘制为一堆从纹理图像中着色的小多边形。 (如果您想要一个不错的分辨率,这将是缓慢且占用大量内存的。)其次,找出从六边形到Image 的映射,并以某种分辨率进行自己的离散化。任何一种方法都应该有效;基本上,您将编写一个函数来转换单个Polygon,给出有关结果整体大小的信息,这需要一些努力。祝你好运!
  • 如果有人不知道,从 IIRC 版本 6 开始,Lena 可以直接在 Mathematica 中以 ExampleData[{"TestImage", "Lena"}] 的身份使用。 ExampleData["TestImage"] 将列出其他测试图像,ExampleData[] 所有可用类型...示例数据 =)
  • @Michael Lena 的原始照片比 Mma 提供的示例更具启发性...
【解决方案2】:

“我认为这可以很好地近似为每个单元格中图像的计算偏移量” - Mr.Wizard

没错!正如您从重建图像中看到的那样,没有镜头效果,瓷砖只是位移。

您需要一个Hexagonal_tessellation 和一个简单的算法来计算每个六边形从某个选定中心点(重量/2,高度/2)的位移。

【讨论】:

  • +1 重建不错!六边形镶嵌正是布雷特在他的回答中所做的。顺便说一句 - 你是如何获得重建图像的?
  • @Ross 是的,你是如何重建它的?
  • @Simon @acl - Gimp + 手选。
  • 更科学的方法是在瓦片上进行分割,并使用一些特征匹配。
  • 我已经在评论“Gimp + Hand selection”中解释了这一点
猜你喜欢
  • 2011-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-19
  • 2012-03-22
  • 2012-08-11
相关资源
最近更新 更多