就是讲一个比较有意思的吧,好玩一下。
原理介绍
首先我们把图像进行二值化,这样我们使用ImageData
得到的图像的矩阵的值,就只有0和1两个值了,其中0就是代表黑色,1就是代表白色。
接着我们考虑使用1-矩阵的值
,来获得一个新的矩阵,这样我们就可以将这个矩阵上的值看成高度,此时黑色是1,则使用ListPlot3D就是那一点处的高度是1,就是凸起的部分,白色是0,就是高度为0,就是平的部分,于是就可以把二维图像转三维化了。
代码实现
好了,根据上面的想法,我们来写出代码,代码如下:
ListPlot3D[(1 - ImageData[Binarize[importPic]])/5, ColorFunction -> "SouthwestColors"]
我们需要先导入一张图片,存入上面代码中的变量importPic
,我在这里就不细说如何导入图片了。
原图我找的是一张机器猫的图,于是就画出如下的图来:
这样就完成了二维图像转三维。
- 微信公众号
- 关注微信公众号
- QQ群
- 我们的QQ群号
评论