displaying RGB colours using SURF.

I am trying to display a rgb colour map on a gridded surface using surf.
I have grids of each rgb colour. How do I combine to give the surf(x,y,z,C)?
thanks

6 comentarios

Sian Allerton
Sian Allerton el 28 de Dic. de 2020
thanks all, solved. Created C as nx,ny,3(rgb) matrix.
Image Analyst
Image Analyst el 28 de Dic. de 2020
For the benefit of others, could you provide a small demo?
I'm attaching mine (which is based Bruno's method below).
Ameer Hamza
Ameer Hamza el 29 de Dic. de 2020
It should be "based on Ameer's method" :P
the issue was how to structure an image variable. i wasn't starting from an image, but a set of rgb points.
% x,y,z point cloud poitions in temp(:,1:3)
% rgb levels for points in temp(:,4:6)
% first grid the point data and the colour data.
x = temp(:,1);
y = temp(:,2);
z = temp(:,3);
%define grid
xmax = max(x);
xmin = min(x);
ymax = max(y);
ymin = min(y);
n = 1000;
m = 1000;
xs = (xmax-xmin)/n;
ys = (ymax-ymin)/m;
[gx,gy]= meshgrid(xmin:xs:xmax,ymin:ys:ymax);
gz = griddata(x,y,z,gx,gy);
gr = griddata(x,y,temp(:,4),gx,gy, "nearest");% red
gg = griddata(x,y,temp(:,5),gx,gy, "nearest");% green
gb = griddata(x,y,temp(:,6),gx,gy, "nearest");% blue
gc(:,:,1) = gr; % red
gc(:,:,2) = gg; % green
gc(:,:,3) = gb; % blue
%normalise colours
gcc= gc/256;
surf(gx,gy,gz,gcc);
Thanks for everyone's comments. The image is of a Scottish hill fort from drone data btw.
Walter Roberson
Walter Roberson el 29 de Dic. de 2020
I suggest using warp()
Image Analyst
Image Analyst el 29 de Dic. de 2020
Sorry Ameer, you're absolutely right. Sometimes I work on too many problems too close together. I must have gotten confused.

Iniciar sesión para comentar.

Respuestas (1)

Ameer Hamza
Ameer Hamza el 27 de Dic. de 2020
You can use texture mapping to display an RGB image on a surface(). See here: https://www.mathworks.com/matlabcentral/answers/91858-is-it-possible-to-perform-texture-mapping-within-matlab. For example
img = imread('pears.png');
z = peaks(100);
surf(z, ...
'FaceColor','texturemap',...
'EdgeColor','none',...
'Cdata',img)
view(3)

Categorías

Más información sobre Read, Write, and Modify Image en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 27 de Dic. de 2020

Comentada:

el 29 de Dic. de 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by