matlab 三维高程根据图片颜色给对应点赋予颜色

目录

1. 问题分析

 2. 技术分析

3. 程序代码

4. 代码运行结果


1. 问题分析

        日常工作尤其是测绘、地质、遥感行业,需要画DEM模型,并在这个模型的基础上,进行着色、渲染。比如,地质分析地面三维地表形变之时,需要根据DEM数据画出目标区域的三维模型,然后根据地基雷达、星载雷达计算出来的形变值,并对目标点(区域)进行作色,效果如下图所示;

 2. 技术分析

        本功能需要先将DEM数据画出来,然后在所需区域(位置)进行作色渲染,其中话三维模型     用到mesh函数就,mesh(_,C);其中C表示颜色矩阵,也可以先将图片话出来,然后根据figure的color属性进行着色。

3. 程序代码

根据上述技术问题,进行编程,代码如下:

clear; close all; clc;
%% 导入光学图片

picture_data = imread('test.jpg');
picture_data = rgb2gray(picture_data);
picture_data = double(picture_data);
figure('name','颜色图像');
image(picture_data)
colormap(gray(256)); colorbar
%% 画山峰,赋予高程信息,可以看做实际的位置坐标
[x,y]=meshgrid(-4.99:0.01:5,-2.99:0.01:3);
z = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2)- 10*(x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2)- 1/3*exp(-(x+1).^2 - y.^2);
z = 100 * abs(z);
x = 100*(x+5);
y = 100*(y+3);
%% 画图
figure('name','高程图')
mesh(x, y,z);
colormap(gray(256)); 
colorbar
figure('name','带有颜色的高程图')
mesh(x, y,z, picture_data);%需要注意的是,颜色矩阵必须和z矩阵一样大。
colormap(gray(256)); 
colorbar

4. 代码运行结果

4.1  颜色图(灰度图)

4.2  三维图(不带颜色的)

4.3 三维图(带有颜色渲染的)

 最后给一张我的颜色图,是我随意找的,截取的,像素转化为600*1000的矩阵

         最后需要说明的是:彩图也可以直接渲染,我写的效果不好,就没有展示。可以直接将rgb2gray()那一行代码注释掉就能实现。最好看到一个很不错的博客,可以参考:MATLAB 制作抖音同款 立体人物文字海报_slandarer的博客-CSDN博客_matlab立体字,这个博主写的很不错

        不足之处,敬请斧正!

        转载请说明出处!

                                                                                             给学matlab的人,包括我自己一个勉励:路漫漫其修遠兮,吾將上下而求索

  • 2
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心网千结

若有所帮助,请点赞支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值