Skip to content

Rendering algorithms: Viewing screen alignmnet

Jan Hubička edited this page Jul 13, 2024 · 1 revision

Viewing screen alignment


Screen-coordinates of Paget or Finlay screen.

In this step the screen-coordinates is mapped to the scan-coordinates. This is done by several parameters:

  • Affine transformation
    • screen_shift x y specifies that screen-coordinate (0,0) is (x,y) scan-coordinate.
    • coordinate_x xx xy is the x coordinate vector of the basis of linear transformation. Screen-coordinate (1,0) maps to (x+xx,y+xy) scan-coordinate.
    • coordinate_y yx yy is the y coordinate vector of the basis of linear transformation. Screen-coordinate (0,1) maps to the coordinate (x+yx,y+yy) scan-coordinate.
  • Perspective correction
    • tilt_x txx txy specifies tilt of the scanned image in the horizontal scan-axis. The rotation is in degrees if the image was scanned screen-distance 1 of the surface of image (thus not very meaningul)
    • tilt_y tyx tyy specifies tild of the scanned image in the vertical scan-axis. For scanners with fixed lens this should always be same as tilt_x. However for scanners with moving lens only one of tilt_x and tilt_y should be non-zero and it should correspond to the axis in which the sensor is fixed.
  • Lens distortion correction
    • k1 p specifies the lens correction parameter for the Brown-Conrady lens distortion model. Other parameters are not implemented (yet?) since it seems that quality macro lenses suitable for digitization of additive color screen processes typically have relatively mild (but sometimes still important) geometric distortions.

Future plans

Parameters are specified by hand using the GUI application. This gets laborious since they needs to be specified very precisely. For this reasons we plan to implement image analysis which will detect the dot pattern in the scanned image and help to (partly) automate this process.

Legacy scanners with moving sensor suffers from additional errors caused by inprecisions of the stepping motors. This is visible in final rendering and thus we need to implement compensation for this problem. Main question is how to set an user-interface which makes it possible to specify such corrections. We hope that after implementing image analysis we will be able to make this more automatic, too.