Changes between Version 82 and Version 83 of UvmatHelp
- Timestamp:
- Jul 5, 2013, 7:46:32 AM (11 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
UvmatHelp
v82 v83 184 184 * '''.fig''' Matlab figures represent plots but also Graphic User Interfaces (GUI). In that case Matlab functions (callbacks) are attached to the graphic objects in the figure and can be activated by the mouse. Matlab figures can be directly opened by the browser of '''uvmat.fig'''. 185 185 186 * ''''.civ' ''' (obsolete) ascii text file containing the list of image times and the scaling in pixels/cm. This is an obsolete version of the xml image documentation file. It is stored in the same directory as the corresponding series of images, with name ''root .civ''. It is automatically sought by '''uvmat.fig''' and '''series.fig''', in the absence of an xml file !ImaDoc. (it is read by the function ''read_imatext.m''). The following example is from an experience with 19 bursts of 4 images, named aa001a,aa001b,aa001c,aa001d,aa002a,aa002b,...,aa019c,aa019d, with an extension .png. The corresponding .civ file is named aa.civ. Comments (not included in the file) are indicated with %...186 * ''''.civ' ''' (obsolete) ascii text file containing the list of image times and the scaling in pixels/cm. This is an obsolete version of the xml image documentation file. It is stored in the same directory as the corresponding series of images, with name ''root .civ''. It is automatically sought by '''uvmat.fig''' and '''series.fig''', in the absence of an xml file <!ImaDoc>. (it is read by the function ''read_imatext.m''). The following example is from an experience with 19 bursts of 4 images, named aa001a,aa001b,aa001c,aa001d,aa002a,aa002b,...,aa019c,aa019d, with an extension .png. The corresponding .civ file is named aa.civ. Comments (not included in the file) are indicated with %... 187 187 188 188 {{{ … … 555 555 Transforming image to physical coordinates is a prerequisit for measuring techniques based on imaging. 556 556 557 The ''image coordinates'', expressed in pixels, represent the two cartesian axis X,Y of the image, with origin taken at the lower left corner. The coordinate of the first lower left pixel centre is therefore (1/2,1/2). Note that the Yaxis is directed upward, while the corresponding image index j increases downward. Therefore, denoting ''npy'' the number of pixels along ''Y'', the (''X,Y'') coordinates of a pixel indexed (''i,j'') are ''X''=''i''-1/2, ''Y''=''npy''-''j''+1/2.557 The ''image coordinates'', expressed in pixels, represent the two cartesian axis ''X,Y'' of the image, with origin taken at the lower left corner. The coordinate of the first lower left pixel centre is therefore (1/2,1/2). Note that the ''Y'' axis is directed upward, while the corresponding image index j increases downward. Therefore, denoting ''npy'' the number of pixels along ''Y'', the (''X,Y'') coordinates of a pixel indexed (''i,j'') are ''X''=''i''-1/2, ''Y''=''npy''-''j''+1/2. 558 558 559 559 The ''physical coordinates'' are defined from the experimental set-up. The correspondance with images is obtained by identifying a set of calibration points whose positions are known in the physical coordinate system. A cartesian calibration grid covering the whole image is the best option, but any set of calibration points can be used. We handle three kinds of transforms: 560 560 561 -'''rescale''': linear rescaling along x and y+ translation (no rotation nor deformation)562 563 -'''linear''': general linear transform, including translation and rotation (but no p erspectiveeffects)561 -'''rescale''': linear rescaling along ''x'' and ''y'' + translation (no rotation nor deformation) 562 563 -'''linear''': general linear transform, including translation and rotation (but no projection effects) 564 564 565 565 -'''3D projection:''' this transforms handles projection effects, as needed for stereoscopic view, as well as quadratic distortion, according to the pinhole camera model ( R.Y. Tsai, 'An Efficient and Accurate Camera Calibration Technique for 3D Machine Vision'. Proceedings of IEEE Conference on Computer Vision and Pattern Recognition, Miami Beach, FL, pp. 364-374, 1986). We use a more recent version, with the toolbox [->http://www.vision.caltech.edu/bouguetj/calib_doc/] . To use this option, the number of calibration points should be large enough and well spread over the whole image. 566 566 567 To deduce the 3D physical coordinates from the 2D image coordinates, the z position, or more generally a plane of cut, defined generally by a laser sheet, must be given as part of the calibration parameters. It is possible to introduce a set of planes obtained by volume scanning.568 569 The transform coefficients for each image series are stored under the tag <!GeometryCalib> in the corresponding xml documentation file <!ImaDoc>, see [#a3.5Imagedocumentationfiles.xml section 3.5]. Calibration coefficients can be obtained and dispalyed with the GUI '''geometry_calib.fig'''.567 To deduce the 3D physical coordinates from the 2D image coordinates, the ''z'' position, or a plane of cut, defined generally by a laser sheet, must be given as part of the calibration parameters. In uvmat, it is possible to introduce a set of planes obtained by volume scanning. 568 569 The transform coefficients for each image series are stored under the tag <!GeometryCalib> in the corresponding xml documentation file <!ImaDoc>, described in [#a3.5Imagedocumentationfiles.xml section 3.5]. Calibration coefficients can be obtained and displayed with the GUI '''geometry_calib.fig'''. 570 570 571 571 572 572 === 8.2 The GUI geometry_calib.fig === 573 -''' Opening the GUI: ''' it is made visible from the GUI '''uvmat.fig''' by the menu bar command '''[!Tools/Geometric calibration] '''. If calibration data already exist in the current file !ImaDoc, the corresponding parameters and the list of reference points are displayed. The three first columns indicate the physical coordinates and the two last ones the corresponding image coordinates. Calibration points can be alternatively introduced by opening any ImaDoc xml filewith the menu bar command''' [Open] ''' of '''geometry_calib.fig'''.574 575 -''' Plotting calibration points: ''' press the button '''[Plot] ''' to visualise the list of calibration points. The physical or image coordinates will be used in the list '''[!ListCoord]''', depending on the option 'phys' or 'px' in the menu '''[transform_fct]''' of ''' uvmat.fig''' .573 -''' Opening the GUI: ''' it is made visible from the GUI '''uvmat.fig''' by the menu bar command '''[!Tools/Geometric calibration] '''. If calibration data already exist in the current file <!ImaDoc>, the corresponding parameters and the list of reference points are displayed. The three first columns indicate the physical coordinates and the two last ones the corresponding image coordinates. Calibration points can be alternatively introduced by opening any xml file <!ImaDoc> with the menu bar command''' [Open] ''' of '''geometry_calib.fig'''. 574 575 -''' Plotting calibration points: ''' press the button '''[Plot] ''' to visualise the current list of calibration points. The physical or image coordinates will be used in the list '''[!ListCoord]''', depending on the option blank or 'phys' in the menu '''[transform_fct]''' of ''' uvmat.fig''' . 576 576 577 577 -''' Appending calibration points with the mouse: ''' Calibration points can be manually picked out by the mouse (left button click) after a calibration image has been opened by '''uvmat.fig''' (with the option 'blank' in the popup menu '''[transform_fct]'''), and the option '''[mouse_active]''' (at the very bottom) has been selected. Zoom can be used to improve the precision, but must be desactivated for mouse selection (then move across the image by the key board directional arrows). The coordinates in pixel of the selected points get listed in the box '''[!ListCoord]''' of '''geometry_calib.fig'''. A calibration point can be later adjusted by selecting it with the mouse and moving it while pressing the left mouse button. Points can be accumulated from several images (use the key board short cuts 'p' and 'm' to move in the image series without monopolising the mouse).''''''' … … 591 591 -''' Recording calibration parameters: ''' 592 592 593 Once the list of calibration points has been completed, press '''[APPLY]''', after selecting the appropriate option in '''[calib_type]'''. (see the previous sub-section 7.1). Note that the more advanced Tsai options require a sufficient number of calibration points (typically > 10) spread over the image. Calibration coefficients are recorded in the xml file < code><ImaDoc> </code> associated with the image currently opened by uvmat. If previous calibration data already exist, the previous xml file is updated, but the original one is preserved with the extension .xml~. If no xml file already exists, it is created. The image transformation to phys coordinates can be directly seen on the '''uvmat.fig''' interface after completion of the command '''[APPLY]'''.593 Once the list of calibration points has been completed, press '''[APPLY]''', after selecting the appropriate option in '''[calib_type]'''. (see the previous sub-section 7.1). Note that the more advanced Tsai options require a sufficient number of calibration points (typically > 10) spread over the image. Calibration coefficients are recorded in the xml file <!ImaDoc> associated with the image currently opened by uvmat. If previous calibration data already exist, the previous xml file is updated, but the original one is preserved with the extension .xml~. If no xml file already exists, it is created. The image transformation to phys coordinates can be directly seen on the '''uvmat.fig''' interface after completion of the command '''[APPLY]'''. 594 594 595 595 To reproduce the same calibrationn for image series, open one of the image in the series, and apply again the calibration with the same points, or copy-paste the section GeometryCalib of the xml documentation file with a text editor. … … 598 598 599 599 === 8.3 Structure of the xml file === 600 The coefficients are recorded in the xml element < code><ImaDoc/GeometryCalib></code> as follows:600 The coefficients are recorded in the xml element <!ImaDoc/GeometryCalib> as follows: 601 601 602 602 * <!CalibrationType>: type of calibration ('rescale', 'linear', '3D...') … … 719 719 720 720 * '''PIV''': makes image comparisons on sliding index pairs, as usual for measuring velocities by particle displacements. A second menu '''[ListPairMode]''' in the panel '''[PairIndices]''' then selects one among three possibilities (not always available depending on the file indexing): 721 * ''pair j1-j2:'' selects a given j index pair (sometimes denoted by letter index) for the whole time series. This is the most common case for PIV. Pair selection is performed in the menu '''[ListPairCiv1]''' and '''[ListPairCiv2]''' for the second iteration Civ2, see below. If timing from an xml file [#a3.5Imagedocumentationfiles.xml ImaDoc] has been detected, this is indicated in the edit box '''[ImaDoc]''' and the corresponding time intervals are indicated (in ms). For some applications, this time interval may evolve in time, so that reference indices ref_i and ref_j are chosen for the display.721 * ''pair j1-j2:'' selects a given j index pair (sometimes denoted by letter index) for the whole time series. This is the most common case for PIV. Pair selection is performed in the menu '''[ListPairCiv1]''' and '''[ListPairCiv2]''' for the second iteration Civ2, see below. If timing from an xml file [#a3.5Imagedocumentationfiles.xml <!ImaDoc>] has been detected, this is indicated in the edit box '''[ImaDoc]''' and the corresponding time intervals are indicated (in ms). For some applications, this time interval may evolve in time, so that reference indices ref_i and ref_j are chosen for the display. 722 722 * series (Di): selects a given index interval for the i index, around a set of reference i indices. The intervals are denoted Di=0|1, -1|1, -1|2, -2|2 ... , corresponding to the index pairs i|i+1, i-1|i+1, i-1|i+2, i-2|i+2 ...around each reference index i. Pair selection is then performed in the menu '''[ListPairCiv1]''' and '''[ListPairCiv2]''' like for 'pair j1-j2'. 723 723 * series (Dj): same as series (Di) but with the j index. … … 928 928 This GUI '''editxml.fig''' visualises and edits xml files. It is automatically called by the browser of '''uvmat.fig''' when a file with extension .xml is opened. 929 929 930 When an input file is opened, editxml detects the title key, e.g. < ImaDoc>, and looks for the corresponding xml schema (e.g. {ImaDoc.xsd} ). This schema is sought in the directory defined by <SchemaPath> in the installation file {PARAM.xml} of uvmat. If the schema is found, the hierarchical structure and keys given by the schema are diplayed. Otherwise the keys of the xml file are displayed.930 When an input file is opened, editxml detects the title key, e.g. <!ImaDoc>, and looks for the corresponding xml schema (e.g. {ImaDoc.xsd} ). This schema is sought in the directory defined by <SchemaPath> in the installation file {PARAM.xml} of uvmat. If the schema is found, the hierarchical structure and keys given by the schema are diplayed. Otherwise the keys of the xml file are displayed. 931 931 932 932 Simple elements in the xml file are listed in the forme 'key'='value', and the corresponding attributes are shown in green. Comments from the schema are dispalyed in blue. Complex elements are indicated by '+'. Selecting them on the list gives access to the lower hierarchical level. Press the arrow '''[<---]''' to move back upward in the hierarchy. … … 971 971 * 'cell2tab';... % transform a Matlab cell in a character array suitable for display in a table 972 972 * 'fill_GUI';... % fill a GUI with handles 'handles' from input data Param 973 * 'imadoc2struct';...% convert the image documentation file !ImaDocinto a Matlab structure973 * 'imadoc2struct';...% convert the image documentation file <!ImaDoc> into a Matlab structure 974 974 * 'nomtype2pair';... creates nomenclature for index pairs knowing the image nomenclature, used by series fct 975 975 * 'nc2struct';...% transform a netcdf file in a corresponding matlab structure … … 1000 1000 * find_field_cells': test field structure for input in proj_field and plot_field, group the variables into 'fields' with common dimensions 1001 1001 * 'find_file_series';...%check the content of an input file and find the corresponding file series 1002 * 'find_imadoc';...% find the !ImaDocxml file associated with a given input file1002 * 'find_imadoc';...% find the <!ImaDoc> xml file associated with a given input file 1003 1003 * 'fullfile_uvmat';...%creates a file name from a root name and indices. 1004 1004 * 'get_file_series';...% determine the list of file names and file indices for functions called by 'series'. … … 1006 1006 * 'griddata_uvmat';...%make 2D linear interpolation using griddata, with input appropriate for both Matlab 6.5 and 7 1007 1007 * 'hist_update';...% update of a current global histogram by inclusion of a new field 1008 * 'imadoc2struct';...%convert the image documentation file [wiki:ImaDoc !ImaDoc]into a Matlab structure1008 * 'imadoc2struct';...%convert the image documentation file <!ImaDoc> into a Matlab structure 1009 1009 * 'interp2_uvmat';...% linearly interpolate an image or scalar defined on a regular grid 1010 1010 * '!ListDir';... scan the structure of the directory tree (for dataview.m) … … 1026 1026 * 'tps_eval_dxy';...% calculate the derivatives of thin plate spline (tps) interpolation at a set of points (limited to the 2D case) 1027 1027 * 'uigetfile_uvmat';... browser, and display of directories, faster than the Matlab fct uigetfile 1028 * 'update_imadoc';... %update the !ImaDoc xml file1028 * 'update_imadoc';... %update the xml file <!ImaDoc>. 1029 1029 * 'update_waitbar';... update the waitbar display, used for ACTION functions in the GUI 'series' 1030 1030