Changes between Version 215 and Version 216 of UvmatHelp


Ignore:
Timestamp:
Dec 15, 2022, 7:50:25 PM (2 years ago)
Author:
sommeria
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • UvmatHelp

    v215 v216  
    603603-''' Flipping coordinates: ''' a flip (inversion of coordinates) along $x$ or $y$ is performed by the menu bar command '''[!Tools/flip x]''' or '''[!Tools/flip x]''' respectively.
    604604
    605 -''' Recording calibration parameters: ''' Once the list of calibration points has been completed, press '''[APPLY]''', after selecting the appropriate option in '''[calib_type]''' (see the previous [#a8.1Generalities sub-section 8.1]). Note that the 3D options  require a sufficient number of calibration points (typically > 10) spread over the image with different values of z, or a tilted grid, see below. 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]'''.
    606 
    607 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, keeping the GUI geometry_calib opened.
    608 
    609 To calibrate at once a set of experiments, a better alternative is the command '''[REPLICATE]'''. Open a folder  '''Campaign''', parent of the folders '''Experiment''' to treat. The GUI '''data_browser.fig''', also described in [#a3.7Dataorganisationinaproject section 3.7], then pops up. A two-column display appears, with the list of '''Experiments''' on the left and the list of corresponding '''[!DataSeries]''' on the right. Select the list of experiments to calibrate, and a single camera name in '''[!DataSeries]''', then validate by pressing '''[OK]'''.
    610 
    611 -''' 3D calibration''': 3D projection is handled by the options in '''[calib_type]''' '3D_lin' or '3D_quad' (if non-linear distortion is significant). By default, the set of calibration points is assumed to be contained in a single plane ''z''=0. For a correct determination of the 3D features, the normal to this plane must be tilted with respect to the line of view. Otherwise this problem of indetermination can be resolved by using a set of (typically 5-10) calibrations images using a plane grid with different tilting angles (for precision the grid must cover a large area of the view field). On each image, get calibration points with the tool '''[!Tools/Detect grid]''', introducing the appropriate grid mesh. Do not fill info on ''z'' coordinates. Store the points each time (without applying calibration at this stage), which fills the list [!ListCoordFiles] of file names. Then introduce a last grid image which will be considered as defining the orientation of the ''z'' axis, perpendicular to the grid. Detect points on this last image, but instead of storing them, apply the calibration with the option 3D_linear or 3D_quadr. A non-zero ''z'' position of this grid can be introduced by a z translation performed with '''[!Tools/Translate points]'''. It is generally convenient to do all these calibrations in air. Then transposition to water is done by the tool 'set_slice', see section 8.3.
     605-''' 3D calibration''': 3D projection is handled by the options in '''[calib_type]''' '3D_lin','3D_quad' (if non-linear distortion is significant) or '3D_order4' (for strong distortion). Note that these 3D options require a sufficient number of calibration  points (typically > 10) spread over the image with different values  of z, or a tilted grid 9otherwise the algorithm may not converge). By default, the set of calibration points is assumed to be contained in a single plane ''z''=0. For a correct determination of the 3D features, the normal to this plane must be tilted with respect to the line of view. Otherwise this problem of indetermination can be resolved by using a few calibrations images using a plane grid with different tilting angles (for precision the grid must cover a large area of the view field). On each image, get calibration points with the tool '''[!Tools/Detect grid]''', introducing the appropriate grid mesh. Do not fill info on ''z'' coordinates. Store the points each time (without applying calibration at this stage), which fills the list [!ListCoordFiles] of file names. Then introduce a last grid image which will be considered as defining the orientation of the ''z'' axis, perpendicular to the grid. Detect points on this last image, but instead of storing them, apply the calibration with the option 3D_linear or 3D_quadr. A non-zero ''z'' position of this grid can be introduced by a z translation performed with '''[!Tools/Translate points]'''. It is generally convenient to do all these calibrations in air. Then transposition to water is done by the tool 'set_slice', see section 8.3.
    612606
    613607-''' Intrinsic parameters''': the previous procedure first determines the extrinsic parameters which characterize the camera optics (focal lengths and nonlinear deformation parameter). Then the extrinsic parameters, translation and rotation of the camera with respect to the reference grid, are determined on the last grid image. If the same optics is used in a new experiment, it is possible to skip the multiplane detection, importing the intrinsic parameters from a previous <!ImaDoc> file by the menu bar tool '''[Import.../Intrinsic parameters]''', then applying the calibration with the option '3D_extrinsic' with the reference grid image only.
     
    622616
    623617 * '''Grid file''':imports the <!ImaDoc> file in '''Point Lists''' in '''geometry_calib''' but none of the data appears in the coordinate table or the intrinsic parameter frame.
     618 
     619* Recording calibration parameters: ''' Once the calibration option and the list of calibration points have been obtained, press '''[APPLY]'''. 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]'''.
     620
     621To  reproduce the same calibration for another image series, open one of the image  in the series, and apply again the calibration with the same points,  keeping the GUI geometry_calib opened.
     622
     623To calibrate at once a set of experiments, a better alternative is to select the check box '''[REPLICATE]'''. Open a folder  '''Campaign''', parent of the folders '''Experiment''' to treat. The GUI '''data_browser.fig''', also described in [#a3.7Dataorganisationinaproject section 3.7], then pops up. A two-column display appears, with the list of '''Experiments''' on the left and the list of corresponding '''[!DataSeries]''' on the right. Select the list of experiments to calibrate, and a single camera name in '''[!DataSeries]''', then validate by pressing '''[OK]'''.
     624
     625[[Image(browse_data_small.jpg)]]
    624626
    625627=== 8.3 Setting the reference plane(s) ===
    626 [[Image(set_slice.png)]]
     628[[Image(set_slice.png)]]
     629
    627630Deducing the physical coordinates from image coordinates requires information on the illumination plane. The default assumption is that the objects in the image are in the plane used for calibration (assumed horizontal with x,y coordinates), but '''uvmat''' can handle volume scanning by a laser plane. A set of section planes can be defined by their origin positions and rotation angle vectors. Theses planes are labelled by a ''z index'', assumed to be the frame index j (case of volume scan), or the index i modulo the number of slices !NbSlice (case of 'multilevel' scan). These settings are stored in the xml file <!ImaDoc> as part of the section <Slice> and can be edited from '''uvmat.fig''' with the menu bar command '''[Tools/set slice]'''. A dialog box '''set_slices''' appears for entering the first and last section plane positions ''z'', as well as the number of slices and the option 'volume_scan' ('multilevel' otherwise). In the absence of 3D scan put twice the same value for first and last z.  Finally a tilt angle of the laser sheet, around the ''x'' and ''y'' axis, can be introduced, with a possible angular scanning from first to last section planes. After introduction of the plane position information, the z-index is displayed in the frame '''[!FileIndices]''' of '''uvmat.fig'''. The local ''z'' position of the mouse pointer, assumed to lay on the current section plane, is then displayed in '''[text_display]'''.
    628631
    629632-''' Refraction effect:''' refraction effect can be accounted for if calibration was done in air by selecting the check box refraction, and introducing the water height (assumed at ''z''=cte) and refraction index. The apparent distance reduction for objects below the water height will be then taken into account.
    630 
    631 [[Image(browse_data_small.jpg)]] [[Image(set_slices_small.jpg)]]
    632633
    633634=== 8.4 Structure of the XML file ===
     
    843844The button '''[TEST]''' allows the user to witness the correlation as a live plot. It first opens the source image in a new figure '''view_field'''. By moving the mouse in the figure, the local correlation box and the corresponding search box are drawn in the image, and the 2D correlation result then appears in a new figure 'Figure1 Image Correlation' which automatically pops up. It is possible to freeze the current correlation plot, and get the values in the Matlab work space, by left mouse selection. The figure belows shows the correlation process and the '''[!SearchBox]''' and '''[!CorrBox]''' explained before.
    844845
    845   [[Image(civ1_test.jpg)]]     [[Image(Correlation for PIV.png)]]
     846  [[Image(civ1_test.jpg)]]      [[Image(Correlation for PIV.png)]]
    846847
    847848The grid determines the positions of measured velocity vectors: it sets the central positions of the correlation boxes (in pixels) for the first image. A default regular grid can be set by the meshes '''[num_Dx] ''' and '''[num_Dy]''' (in pixels). Alternatively a custom [#a9.2Grids grid] can be stored in a text file and selected by the check box '''get grid'''. This is convenient to limitate the processing to a subregion or to fine tune the resolution.
     
    10321033----
    10331034== 13 - Editing XML files with the GUI editxml ==
    1034   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.
     1035  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.
    10351036
    10361037When 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.