Calculating the area related to a specific color in colormap
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
how to calculate the area of only the grey zone (less than 0.5) of this colormap?
2 comentarios
DGM
el 26 de Jun. de 2023
It would probably be a lot more sensible to start from the data instead of trying to disassemble a figure to get the data back again.
Respuestas (1)
DGM
el 26 de Jun. de 2023
You might want to double check this.
openfig figure1.fig;
hp = get(gca,'children');
% CData in this case is 121834x3
% that is one color for each vertex of 121834 triangles
% the rendered color is interpolated linearly from the vertices
C = hp.CData;
% for the purposes of demonstration, i'm going to just assume
% that faces with _average_ vertex CData < 0.5 are to be selected
faceinROI = mean(C,1)<0.5;
% get only those selected faces
faces = hp.Faces(faceinROI,:);
% calculate the sum of the areas of those triangles
a = hp.Vertices(faces(:,2),:) - hp.Vertices(faces(:,1),:);
b = hp.Vertices(faces(:,3),:) - hp.Vertices(faces(:,1),:);
c = cross(a,b,2);
totalarea = 1/2 * sum(sqrt(sum(c.^2, 2)))
0 comentarios
Ver también
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!