matlab 三維高程對應點賦予顏色
阿新 • • 發佈:2018-12-10
用到mesh函式就可以了,mesh(_,C);其中C表示顏色矩陣
程式碼如下:
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
結果如下:
顏色圖(灰度圖)
三維圖(不帶顏色的)
三維圖(帶有顏色渲染的)
最後給一張我的顏色圖,是我隨意找的,擷取的,畫素轉化為600*1000的矩陣
最後需要說明的是:彩圖也可以直接渲染,只不過效果不好,就沒有展示。可以直接將rgb2gray()那一行程式碼註釋掉就能實現。
給學matlab的人,包括我自己一個勉勵:路漫漫其修遠兮,吾將上下而求索