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

2 vues (au cours des 30 derniers jours)
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.

Réponse acceptée

darova
darova le 2 Avr 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 commentaires
darova
darova le 3 Avr 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 le 8 Avr 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!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Colormaps dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by