Changeset 542 for trunk/src/uvmat.m


Ignore:
Timestamp:
Sep 15, 2012, 7:04:56 PM (8 years ago)
Author:
sommeria
Message:

bugs repaired for mask display in phys coord, display of circles in geometry_calib, introduction of x,y,z initial in proj_field/proj_plane

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/uvmat.m

    r541 r542  
    13321332    else
    13331333        %read mask image
    1334         Mask.AName='image';
    1335         Mask.A=imread(MaskName);
     1334        [Mask,tild,errormsg] = read_field(MaskName,'image');
     1335%         Mask.AName='image';
     1336%         Mask.A=imread(MaskName);
     1337        if ~isempty(errormsg)
     1338            return
     1339        end
    13361340        npxy=size(Mask.A);
    1337         test_error=0;
    13381341        if length(npxy)>2
    13391342            errormsg=[MaskName ' is not a grey scale image'];
     
    13431346            return
    13441347        end
    1345         Mask.AX=[0.5 npxy(2)-0.5];
    1346         Mask.AY=[npxy(1)-0.5 0.5 ];
    1347         Mask.CoordUnit='pixel';
     1348%         Mask.AX=[0.5 npxy(2)-0.5];
     1349%         Mask.AY=[npxy(1)-0.5 0.5 ];
     1350%         Mask.CoordUnit='pixel';
    13481351        if isequal(get(handles.slices,'Value'),1)
    13491352           NbSlice=str2num(get(handles.num_NbSlice,'String'));
     
    46094612    return
    46104613else
    4611 %     set(handles.ListObject,'Max',2);%allow multiple selection
    46124614    set(handles.ListObject,'Value',val);
    46134615    flag=1;
     
    46344636                        Y=ObjectData.Coord(:,2);
    46354637                        if testphys
    4636                             [X,Y]=px_XYZ(Calib,X,Y,0);% to generalise with 3D cases
     4638                            pos=[X Y zeros(size(X))];
     4639                            if isfield(Calib,'SliceCoord') && length(Calib.SliceCoord)>=3
     4640                                if isfield(Calib,'SliceAngle')&&~isequal(Calib.SliceAngle,[0 0 0])
     4641                                    om=norm(Calib.SliceAngle);%norm of rotation angle in radians
     4642                                    OmAxis=Calib.SliceAngle/om; %unit vector marking the rotation axis
     4643                                    cos_om=cos(pi*om/180);
     4644                                    sin_om=sin(pi*om/180);
     4645                                    pos=cos_om*pos+sin_om*cross(OmAxis,pos)+(1-cos_om)*(OmAxis*pos')*OmAxis;
     4646                                end
     4647                                pos(:,1)=pos(:,1)+Calib.SliceCoord(1);
     4648                                pos(:,2)=pos(:,2)+Calib.SliceCoord(2);
     4649                                pos(:,3)=pos(:,3)+Calib.SliceCoord(3);
     4650                            end                           
     4651                            [X,Y]=px_XYZ(Calib,pos(:,1),pos(:,2),pos(:,3));
    46374652                        end
    46384653                        flagobj=~inpolygon(Xi,Yi,X',Y');%=0 inside the polygon, 1 outside
     
    46714686        RootFile(1)=[];
    46724687    end
    4673    % filebase=fullfile(RootPath,RootFile);
    46744688    list=get(handles.masklevel,'String');
    46754689    masknumber=num2str(length(list));
Note: See TracChangeset for help on using the changeset viewer.