二维图像的三维化

  • A+
所属分类:美丽的图像
摘要这篇文章会讲一个好玩的东西,将二维的图像变成三维的,文章会叙述具体的原理以及如何使用mathematica代码来实现。

就是讲一个比较有意思的吧,好玩一下。

原理介绍

首先我们把图像进行二值化,这样我们使用ImageData得到的图像的矩阵的值,就只有0和1两个值了,其中0就是代表黑色,1就是代表白色。

接着我们考虑使用1-矩阵的值,来获得一个新的矩阵,这样我们就可以将这个矩阵上的值看成高度,此时黑色是1,则使用ListPlot3D就是那一点处的高度是1,就是凸起的部分,白色是0,就是高度为0,就是平的部分,于是就可以把二维图像转三维化了。

代码实现

好了,根据上面的想法,我们来写出代码,代码如下:

ListPlot3D[(1 - ImageData[Binarize[importPic]])/5, ColorFunction -> "SouthwestColors"]

我们需要先导入一张图片,存入上面代码中的变量importPic,我在这里就不细说如何导入图片了。

原图我找的是一张机器猫的图,于是就画出如下的图来:

文艺数学君

这样就完成了二维图像转三维。

  • 微信公众号
  • 关注微信公众号
  • weinxin
  • QQ群
  • 我们的QQ群号
  • weinxin
王 茂南

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: