How to create custom color wheel for velocity data stored as RGB and only using R/G channels?

1 visualización (últimos 30 días)
I have velocity field data stored in RGB format where R = angle and G = amplitude/magnitude. I am wanting to create a custom color wheel with the following:
R: [0 1] where 0.5 = 0 degrees
G: [0 1] where the values increase going from the center to edge of circle
B: unused / zero
Does anyone have any suggestions on how to go about this? I would like it to be cyclic (i.e. smooth transition in colors at -pi and pi). Thank you in advance.

Respuesta aceptada

darova
darova el 2 de Abr. de 2021
What about this?
[R,G] = ndgrid(0:10:360,0:1); % polar coordinates
[X,Y] = pol2cart(R*pi/180,G); % convefrt o cartesian
Z = sind(R/2);
pcolor(X,Y,Z)
  3 comentarios
darova
darova el 3 de Abr. de 2021
Create your own color map
[T,R] = ndgrid(0:10:360,0:5); % polar coordinates
[X,Y] = pol2cart(T*pi/180,R); % convefrt o cartesian
[m,n] = size(R);
[r1,g1] = ndgrid((1:m)/m,(1:n)/n); % red and green channels
surf(X,Y,X*0,cat(3,r1,g1,r1*0)) % surf with user colormap
view(0,90)
Mat576
Mat576 el 8 de Abr. de 2021
Thank you! A few small tweaks got me to what I needed:
[T,R] = ndgrid(-180:180,0:(Vmax/256):Vmax);
[X,Y] = pol2cart(T*pi/180,R);
[m,n] = size(R);
[r1,g1] = ndgrid((1:m)/m,(1:n)/n);
wheel = surf(X,Y,X*0,cat(3,r1,g1,r1*0));
axis off
wheel.EdgeColor = 'none';
view(0,90)
Now to get this plotted on the corner of the velocity-field image, haha!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Colormaps en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by