Calculating the area related to a specific color in colormap
조회 수: 3 (최근 30일)
이전 댓글 표시
how to calculate the area of only the grey zone (less than 0.5) of this colormap?
댓글 수: 2
DGM
2023년 6월 26일
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.
답변 (1개)
DGM
2023년 6월 26일
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
참고 항목
카테고리
Help Center 및 File Exchange에서 Colormaps에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!