source: an2_rotateflip.m @ 44

Last change on this file since 44 was 39, checked in by tjniskan, 11 years ago
  • Added "Recent Files" quick access menu in File-menu
  • Fixed a bug in plugins/copy_data_to_workspace.m that made writing a

new name for a variable difficult

  • Fixed a bug in the file prefix editbox in an2_export_gui.m
  • Changed references to Analyze 2.0 in all license notices to Aedes.

The name change should now be complete...

M an2_export_gui.m
M an2_cellsprintf.m
M an2_calc_wait.m
M an2_check_file_exist.m
M an2_iseven.m
M an2_cellwrite.m
M an2_wbar.m
M an2_rot3d.m
M an2_readfdf.m
M an2_revision.m
M an2_viewprocpar.m
M an2_checkcthdr.m
M an2_readprocpar.m
M an2_fitmaps.m
M an2_read_nifti.m
M an2_data_read.m
M an2_resviewer.m
M an2_maptool.m
M aedes.m
M an2_res2table.m
M an2_copy_roi.m
M plugins/save_roi_as_mask.m
M plugins/write_difference_images.m
M plugins/plot_profile.m
M plugins/calculate_t2_map.m
M plugins/calculate_t1r_map.m
M plugins/view_kspace.m
M plugins/copy_data_to_workspace.m
M plugins/take_snapshot.m
M an2_inputdlg.m
M an2_roi_copy_gui.m
M an2_readctdata.m
M an2_readfid.m
M an2_readfidprefs.m
M an2_readtab.m
M an2_check_updates.m
M an2_killfigs.m
M an2_roi_stats.m
M an2_saveres.m
M an2_rotateflip.m
M an2_juigetfiles.m
M an2_gui_defaults.m
M an2_editstack.m
M an2_update.m
M an2_write_nifti.m

File size: 8.6 KB
Line 
1function Out = an2_rotateflip(DATA,squareImages)
2% AN2_ROTATEFLIP - GUI for rotating and flipping files
3%   
4%
5% Synopsis:
6%
7% Description:
8%
9% Examples:
10%
11% See also:
12%
13
14% This function is a part of Aedes - A graphical tool for analyzing
15% medical images
16%
17% Copyright (C) 2006 Juha-Pekka Niskanen <Juha-Pekka.Niskanen@uku.fi>
18%
19% Department of Physics, (or Department of Neurobiology)
20% University of Kuopio, FINLAND
21%
22% This program may be used under the terms of the GNU General Public
23% License version 2.0 as published by the Free Software Foundation
24% and appearing in the file LICENSE.TXT included in the packaging of
25% this program.
26%
27% This program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
28% WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
29
30
31% Public variables
32H = [];
33Out = [];
34Dat = [];
35cancel = true;
36
37% Get file names and paths
38for ii=1:length(DATA)
39  Dat.fnames{ii} = DATA{ii}.HDR.fname;
40  Dat.fpaths{ii} = DATA{ii}.HDR.fpath;
41  Dat.fullfiles{ii} = [DATA{ii}.HDR.fpath,...
42                      DATA{ii}.HDR.fname];
43end
44H = l_DrawGUI;
45
46% Wait for quit
47waitfor(H.FH)
48if cancel
49  clear H Dat cancel
50  return
51end
52
53function H=l_DrawGUI()
54
55%% Load default font and colors
56FigColor=get(0,'DefaultUicontrolBackgroundcolor');
57GD=an2_gui_defaults;
58GD.col.mainfig = FigColor;
59fig_h = 305;
60fig_w = 500;
61scrsz = get(0,'screensize');
62fig_pos = [scrsz(3)/2-fig_w/2 scrsz(4)/2-fig_h/2 fig_w fig_h];
63
64%% The main figure
65H.FH = figure('position',fig_pos,...
66              'Units','Pixel', ...
67              'Name','Rotate/Flip images', ...
68              'Numbertitle','off', ...
69              'Tag','im_rotate_gui', ...
70              'Color',FigColor, ...
71              'Toolbar','none', ...
72              'Menubar','none', ...
73              'DoubleBuffer','on', ...
74              'DockControls','off',...
75              'renderer','painters',...
76              'KeyPressFcn','',...
77              'resize','off',...
78              'windowstyle','modal');
79
80% Options uipanel
81H.OPTUIPANEL = uipanel('parent',H.FH,...
82                       'units','pixel',...
83                       'position',[5 40 fig_w-10 fig_h-45]);
84
85% Rotation uipanel
86H.ROTUIGRP = uibuttongroup('parent',H.OPTUIPANEL,...
87                           'units','pixel',...
88                           'position',[10 135 110 105],...
89                           'title','Rotation (CCW)',...
90                           'SelectionChangeFcn',@l_SelectionChanged);
91
92% Rotation Radio buttons
93H.ROTNONE=uicontrol('parent',H.ROTUIGRP,...
94                    'units','pixel',...
95                    'style','radio',...
96                    'position',[20 70 80 15],...
97                    'string','none',...
98                    'value',1);
99tmp=get(H.ROTNONE,'position');
100H.ROT90=uicontrol('parent',H.ROTUIGRP,...
101                  'units','pixel',...
102                  'style','radio',...
103                  'position',[tmp(1) tmp(2)-20 tmp(3) tmp(4)],...
104                  'string',['90',char(186)],...
105                  'value',0);
106tmp=get(H.ROT90,'position');
107H.ROT180=uicontrol('parent',H.ROTUIGRP,...
108                   'units','pixel',...
109                   'style','radio',...
110                   'position',[tmp(1) tmp(2)-20 tmp(3) tmp(4)],...
111                   'string',['180',char(186)],...
112                   'value',0);
113tmp=get(H.ROT180,'position');
114H.ROT270=uicontrol('parent',H.ROTUIGRP,...
115                   'units','pixel',...
116                   'style','radio',...
117                   'position',[tmp(1) tmp(2)-20 tmp(3) tmp(4)],...
118                   'string',['270',char(186)],...
119                   'value',0);
120if ~squareImages
121  set([H.ROT90,H.ROT270],'enable','off')
122end
123
124% Flip uipanel
125tmp = get(H.ROTUIGRP,'position');
126H.FLIPUIGRP = uibuttongroup('parent',H.OPTUIPANEL,...
127                            'units','pixel',...
128                            'position',[tmp(1) tmp(2)-85-15 tmp(3) 85],...
129                            'title','Flipping',...
130                            'SelectionChangeFcn',@l_SelectionChanged);
131
132% Flipping radio buttons
133H.FLIPNONE=uicontrol('parent',H.FLIPUIGRP,...
134                     'units','pixel',...
135                     'style','radio',...
136                     'position',[20 50 80 15],...
137                     'string','none',...
138                     'value',1);
139tmp=get(H.FLIPNONE,'position');
140H.FLIPUD=uicontrol('parent',H.FLIPUIGRP,...
141                   'units','pixel',...
142                   'style','radio',...
143                   'position',[tmp(1) tmp(2)-20 tmp(3) tmp(4)],...
144                   'string','Up/Down',...
145                   'value',0);
146tmp=get(H.FLIPUD,'position');
147H.FLIPLR=uicontrol('parent',H.FLIPUIGRP,...
148                   'units','pixel',...
149                   'style','radio',...
150                   'position',[tmp(1) tmp(2)-20 tmp(3) tmp(4)],...
151                   'string','Left/Right',...
152                   'value',0);
153
154% File listbox
155tmp = get(H.FLIPUIGRP,'position');
156H.FILELBOX = uicontrol('parent',H.OPTUIPANEL,...
157                       'units','pixel',...
158                       'style','listbox',...
159                       'position',[tmp(1)+tmp(3)+10 tmp(2) fig_w-tmp(1)-tmp(3)-35 ...
160                   200],...
161                       'backgroundcolor','w',...
162                       'string',Dat.fullfiles,...
163                       'Min',0,'Max',2);
164tmp = get(H.FILELBOX,'position');
165files_tx = uicontrol('parent',H.OPTUIPANEL,...
166                     'units','pixel',...
167                     'style','text',...
168                     'position',[tmp(1) tmp(2)+tmp(4) 150 12],...
169                     'string','Files (slices)',...
170                     'horizontalalign','left',...
171                     'fontweig','bold');
172
173% Select all and select none buttons
174tmp = get(H.FILELBOX,'position');
175H.SELALL = uicontrol('parent',H.OPTUIPANEL,...
176                     'units','pixel',...
177                     'style','pushbutton',...
178                     'position',[tmp(1) tmp(2)-25-5 tmp(3)/2-5 25],...
179                     'string','Select All',...
180                     'callback',@l_SelectAll);
181tmp = get(H.SELALL,'position');
182H.SELNONE = uicontrol('parent',H.OPTUIPANEL,...
183                      'units','pixel',...
184                      'style','pushbutton',...
185                      'position',[tmp(1)+tmp(3)+10 tmp(2) tmp(3) 25],...
186                      'string','Select None',...
187                      'userdata',H.FILELBOX,...
188                      'callback','set(get(gcbo,''userdata''),''value'',[])');
189
190% OK button
191H.OKBTN = uicontrol('parent',H.FH,...
192                    'units','pixel',...
193                    'position',[350 5 70 30],...
194                    'string','OK',...
195                    'callback',@l_OKCallBack);
196
197% Cancel button
198tmp = get(H.OKBTN,'position');
199H.CANCELTN = uicontrol('parent',H.FH,...
200                       'units','pixel',...
201                       'position',[tmp(1)+tmp(3)+5 tmp(2) tmp(3) tmp(4)],...
202                       'string','Cancel',...
203                       'callback','delete(gcbf)');
204
205end % function l_DrawGUI()
206
207
208%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
209%
210% Select All Files
211%
212%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
213function l_SelectAll(h,evd)
214  lbox_length = length(get(H.FILELBOX,'string'));
215  set(H.FILELBOX,'value',1:lbox_length);
216end % function l_SelectAll(h,
217
218
219%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
220%
221% Selection Changed
222%
223%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
224function l_SelectionChanged(h,evd)
225
226if h==H.ROTUIGRP
227 
228  if evd.NewValue==H.ROTNONE
229    set([H.FLIPNONE,H.FLIPUD,H.FLIPLR],'enable','on')
230  else
231    set([H.FLIPNONE,H.FLIPUD,H.FLIPLR],'enable','off')
232  end
233 
234elseif h==H.FLIPUIGRP
235 
236  if evd.NewValue==H.FLIPNONE
237    if ~squareImages
238      set([H.ROTNONE,H.ROT180],'enable','on')
239    else
240      set([H.ROTNONE,H.ROT90,H.ROT180,H.ROT270],'enable','on')
241    end
242  else
243    set([H.ROTNONE,H.ROT90,H.ROT180,H.ROT270],'enable','off')
244  end
245 
246end
247
248end % function
249
250
251
252%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
253%
254% OK Selected
255%
256%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
257function l_OKCallBack(h,evd)
258
259cancel = false;
260val = get(H.FILELBOX,'value');
261str = get(H.FILELBOX,'string');
262RotSelObject = get(H.ROTUIGRP,'SelectedObject');
263FlipSelObject = get(H.FLIPUIGRP,'SelectedObject');
264
265%% Flipping vector:
266%% 0 = none
267%% 1 = Up/Down
268%% 2 = Left/Right
269Out.Flip = zeros(1,length(str));
270if ~isempty(val)
271  if FlipSelObject==H.FLIPUD
272    Out.Flip(val)=1;
273  elseif FlipSelObject==H.FLIPLR
274    Out.Flip(val)=2;
275  end
276end
277
278%% Rotate vector
279%% 0 = none
280%% 1 = 90
281%% 2 = 180
282%% 3 = 270
283Out.Rotate = zeros(1,length(str));
284if ~isempty(val)
285  if RotSelObject==H.ROT90
286    Out.Rotate(val)=1;
287  elseif RotSelObject==H.ROT180
288    Out.Rotate(val)=2;
289  elseif RotSelObject==H.ROT270
290    Out.Rotate(val)=3;
291  end
292end
293
294%% Delete figure window
295delete(H.FH)
296
297end % function l_OKCallBack(h,
298
299end
Note: See TracBrowser for help on using the repository browser.

Powered by Trac 1.0.9.Copyright © Juha-Pekka Niskanen 2008