我可以在matlab中查看3D坐标系中的骨架

时间:2015-08-20 00:36:50

标签: matlab 3d visualization

我在matlab中有以下代码,它保存了骨架所在位置的图片,但它在2D坐标系中显示为骨架。

为了更好地使用数据,我想在3D坐标系中制作骨架视图。 这是我正在运行的代码,是否有人可以告诉我如何制作?

>> for j=1:size(JointLocation_3D,1)
    for jointNum=1:14
    XL(1,jointNum)= JointLocation_3D(j,jointNum*3-2);
    XL(2,jointNum)=JointLocation_3D(j,jointNum*3-1);
    XL(3,jointNum)=JointLocation_3D(j,jointNum*3);
    end

    h=figure(j);
    i=1;
    x_leg = XL(1,i*14-13:i*14-8);
    y_leg = XL(2,i*14-13:i*14-8);
    z_leg = XL(3,i*14-13:i*14-8);
    line(x_leg,y_leg,z_leg,...
        'Marker', 'o',...
        'Color','r',...
        'LineWidth',5,...
        'MarkerSize',8,...
        'MarkerEdgeColor','b',...
        'MarkerFaceColor','b');
    hold on

    %arms and shoulders
    x_arm_right = XL(1,i*14-7:i*14-5);
    y_arm_right = XL(2,i*14-7:i*14-5);
    z_arm_right = XL(3,i*14-7:i*14-5);
    line(x_arm_right,y_arm_right, z_arm_right,...
        'Marker', 'o',...
        'Color','r',...
        'LineWidth',5,...
        'MarkerSize',8,...
        'MarkerEdgeColor','b',...
        'MarkerFaceColor','b');
    hold on;

    x_arm_left = XL(1,i*14-4:i*14-2);
    y_arm_left = XL(2,i*14-4:i*14-2);
    z_arm_left = XL(3,i*14-4:i*14-2);
    line('XData',x_arm_left,'YData',y_arm_left, 'ZData',z_arm_left,...
        'Marker', 'o',...
        'Color','r',...
        'LineWidth',5,...
        'MarkerSize',8,...
        'MarkerEdgeColor','b',...
        'MarkerFaceColor','b');
    hold on;

    line('XData',[XL(1,i*14-5); XL(1,i*14-1); XL(1,i*14-4)],...
        'YData',[XL(2,i*14-5); XL(2,i*14-1); XL(2,i*14-4)],...
        'ZData',[XL(3,i*14-5); XL(3,i*14-1); XL(3,i*14-4)],...
        'Marker', 'o',...
        'Color','r',...
        'LineWidth',5,...
        'MarkerSize',8,...
        'MarkerEdgeColor','b',...
        'MarkerFaceColor','b');
    hold on;

    mid_point = [mean(XL(1,i*14-11:i*14-10));mean(XL(2,i*14-11:i*14-10));mean(XL(3,i*14-11:i*14-10))];
    line('XData', [mid_point(1); XL(1,i*14-1);  XL(1,i*14)],... 
        'YData',[mid_point(2); XL(2,i*14-1);  XL(2,i*14)],...
        'ZData', [mid_point(3); XL(3,i*14-1); XL(3,i*14)],...
        'Marker', 'o',...
        'Color','r',...
        'LineWidth',5,...
        'MarkerSize',8,...
        'MarkerEdgeColor','b',...
        'MarkerFaceColor','b');
  % hold off
   hold on
     figure();
     xlim([-50,350]);
     ylim([-350,350]);    
     zlim([1100, 1700]);
     %axis off;
     axis normal
     grid on;
     %view(3);
     %view(90,30);
     %view(-181,-90);

      set(h,'visible','off');
      str=strcat('C:\Program Files\VirtApps\MATLAB\remove',sprintf('3D_%.4d',j),'.jpg');
      saveas(h,str);
 close all
end

0 个答案:

没有答案