Re: correction keystone

Top Page

Reply to this message
Author: Frédéric
Date:  
To: guilde
Subject: Re: correction keystone
On mercredi 19 juin 2013, ALD wrote:

> Bonsoir,
>
> j'ai besoin de corriger le keystone (parallélisme) d'une image faite par
> un vidéo projecteur qui ne contient pas cette fonction.
>
> connaissez vous une possibilité de le faire au niveau logiciel? la
> puissance de l'ordinateur n'est pas un probleme.
>
> A+


xrandr sait faire ça ! Je suis tombé dessus il y quelques temps. Il faut utiliser l'option
--transform... Par contre, je te laisse chercher/calculer la matrice ;o)

−−transform a,b,c,d,e,f,g,h,i

Specifies a transformation matrix to apply on the output. Automatically a bilinear filter is
selected. The mathematical form corresponds to:

a b c
d e f
g h i

The transformation is based on homogeneous coordinates. The matrix multiplied by the coordinate
vector of a pixel of the output gives the transformed coordinate vector of a pixel in the
graphic buffer. More precisely, the vector (x y) of the output pixel is extended to 3 values (x
y w), with 1 as the w coordinate and multiplied against the matrix. The final device
coordinates of the pixel are then calculated with the so-called homogenic division by the
transformed w coordinate. In other words, the device coordinates (x’ y’) of the transformed
pixel are:

x’ = (ax + by + c) / w’ and
y’ = (dx + ey + f) / w’,

with w’ = (gx + hy + i).

Typically, a and e corresponds to the scaling on the X and Y axes, c and f corresponds to the
translation on those axes, and g, h, and i are respectively 0, 0 and 1. The matrix can also be
used to express more complex transformations such as keystone correction, or rotation. For a
rotation of an angle T, this formula can be used:

cos T  -sin T   0 
sin T   cos T   0 
    0       0   1


-- 
    Frédéric