c# pdf reader text : Delete page pdf online software application dll windows winforms .net web forms SzeliskiBook_20100903_draft6-part636

2.1 Geometric primitives andtransformations
39
Transformation
Matrix
#DoF
Preserves
Icon
translation
h
I
t
i
34
3
orientation
rigid (Euclidean)
h
R
t
i
34
6
lengths
S
S
S
S
similarity
h
sR
t
i
34
7
angles
S
S
affine
h
A
i
34
12
parallelism
projective
h
~
H
i
44
15
straight lines
Table 2.2 Hierarchy of 3D coordinate transformations. Each transformation also preserves
the properties listed in the rows below it, i.e., similarity preserves not only angles but also
parallelism and straight lines. The 3  4 matrices are extended with a fourth [0
T
1] row to
form a full 4  4 matrix for homogeneous coordinate transformations. The mnemonic icons
are drawn in 2D but are meant to suggest transformations occurring in a full 3D cube.
Bilinear interpolant. Thiseight-parametertransform(Wolberg1990),
x
0
= a
0
+a
1
x+ a
2
y+ a
6
xy
y
0
= a
3
+a
4
x+ a
5
y+ a
7
xy;
can be used to interpolate the deformation due to the motion of the four corner points of
asquare. (In fact, it can interpolate the motion of any four non-collinear points.) While
the deformation is linear in the motion parameters, it does not generally preserve straight
lines (only lines parallel to the square axes). However, it is often quite useful, e.g., in the
interpolation of sparse grids using splines (Section8.3).
2.1.3 3D transformations
The set of three-dimensional coordinate transformations is very similar to that available for
2D transformations and is summarized in Table2.2. As in 2D, these transformations form a
nested set of groups.HartleyandZisserman(2004, Section 2.4) give a more detaileddescrip-
tion of this hierarchy.
Translation. 3Dtranslationscanbewrittenasx
0
=x + t or
x
0
=
h
I t
i
x
(2.23)
Delete page pdf online - remove PDF pages in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Provides Users with Mature Document Manipulating Function for Deleting PDF Pages
delete pdf pages in preview; delete page from pdf preview
Delete page pdf online - VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Visual Basic Sample Codes to Delete PDF Document Page in .NET
delete page on pdf document; delete page pdf file reader
40
Computer Vision: Algorithms and Applications (September 3, 2010 draft)
where I is the (3  3) identity matrix and 0 is the zero vector.
Rotation + translation. Alsoknownas3Drigidbodymotionorthe3DEuclideantrans-
formation, it can be written as x0 = Rx+ tor
x
0
=
h
R
t
i
x
(2.24)
where R is a 3  3 orthonormal rotation matrix with RR
T
= I and jRj = 1. Note that
sometimes it is more convenient to describe a rigid motion using
x
0
=R(x  c) = Rx   Rc;
(2.25)
where c is the center of rotation (often the camera center).
Compactly parameterizing a 3D rotation is a non-trivial task, which we describe in more
detail below.
Scaled rotation. The3Dsimilaritytransformcanbeexpressedasx
0
=sRx + t where s
is an arbitrary scale factor. It can also be written as
x
0
=
h
sR
t
i
x:
(2.26)
This transformationpreserves angles between lines and planes.
Affine. Theaffinetransformiswrittenasx
0
=Ax, where A is an arbitrary 3  4 matrix,
i.e.,
x
0
=
2
6
4
a
00
a
01
a
02
a
03
a
10
a
11
a
12
a
13
a
20
a
21
a
22
a
23
3
7
5
x:
(2.27)
Parallel lines and planes remain parallel under affine transformations.
Projective. Thistransformation,variouslyknownasa3Dperspectivetransform,homogra-
phy, or collineation, operates on homogeneous coordinates,
~x
0
=
~
H~x;
(2.28)
where
~
H is an arbitrary 4  4 homogeneous matrix. As in 2D, the resulting homogeneous
coordinate ~x
0
must be normalized in order to obtain an inhomogeneous result x. Perspective
transformations preserve straight lines (i.e., they remain straight after the transformation).
C# PDF File & Page Process Library SDK for C#.net, ASP.NET, MVC
Provides you with examples for adding an (empty) page to a PDF and adding empty pages You may feel free to define some continuous PDF pages and delete.
delete pages from pdf; delete pages pdf document
C# HTML5 PDF Viewer SDK to view PDF document online in C#.NET
RasterEdge. PRODUCTS: ONLINE DEMOS: Online HTML5 Document Viewer; Online XDoc.PDF C# File: Split PDF; C# Page: Insert PDF pages; C# Page: Delete PDF pages;
copy pages from pdf to word; delete pdf page acrobat
2.1 Geometric primitives andtransformations
41
v
v
n
^
v
×
v
v
××
C# PDF Page Insert Library: insert pages into PDF file in C#.net
Free components and online source codes for .NET framework 2.0+. PDF document files by C# code, how to rotate PDF document page, how to delete PDF page using C#
delete blank pages in pdf; delete pages from a pdf file
VB.NET PDF- View PDF Online with VB.NET HTML5 PDF Viewer
RasterEdge. PRODUCTS: ONLINE DEMOS: Online HTML5 Document Viewer; Online XDoc.PDF C# File: Split PDF; C# Page: Insert PDF pages; C# Page: Delete PDF pages;
delete pages from pdf file online; delete page on pdf
42
Computer Vision: Algorithms and Applications (September 3, 2010 draft)
We can rotate this vector by90
using the cross product,
v
=^n  v = [^n]
v;
(2.31)
where[^n]
is the matrixform of the cross product operator withthevector ^n = (^n
x
;^n
y
;^n
z
),
[^n]
=
2
6
4
0
^n
z
^n
y
^n
z
0
^n
x
^n
y
^n
x
0
3
7
5
:
(2.32)
Note that rotating this vector byanother 90
is equivalent to taking the cross product again,
v

=^n  v
=[^n]
2
v=  v
?
;
and hence
v
k
=v   v
?
=v + v

=(I + [^n]
2
)v:
We can now compute the in-plane component of the rotated vector u as
u
?
=cosv
?
+sin v
=(sin [^n]
cos[^n]
2
)v:
Putting all these terms together, we obtain the final rotated vector as
u= u
?
+v
k
=(I + sin [^n]
+(1  cos)[^n]
2
)v:
(2.33)
We can therefore write the rotation matrix corresponding to a rotation by  around an axis ^n
as
R(^n;) = I + sin [^n]
+(1  cos )[^n]
2
;
(2.34)
which is known as Rodriguez’s formula (Ayache1989).
The product of the axis ^n and angle , ! = ^n = (!
x
;!
y
;!
z
), is a minimal represen-
tation for a 3D rotation. Rotations through common angles such as multiples of 90 can be
representedexactly (and converted to exact matrices) if  is stored in degrees. Unfortunately,
this representation is not unique, since we can always add a multiple of 360
(2 radians) to
and get the same rotationmatrix. As well, (^n;) and ( ^n; ) represent the samerotation.
However, for small rotations (e.g., corrections to rotations), this is an excellent choice.
In particular, for small (infinitesimal or instantaneous) rotations and  expressed in radians,
Rodriguez’s formula simplifies to
R(!)  I + sin [^n]
I + [^n]
=
2
6
4
1
!
z
!
y
!
z
1
!
x
!
y
!
x
1
3
7
5
;
(2.35)
VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
in VB.NET. Ability to create a blank PDF page with related by using following online VB.NET source code. Support .NET WinForms, ASP
pdf delete page; delete pages from a pdf online
VB.NET PDF - Convert PDF Online with VB.NET HTML5 PDF Viewer
RasterEdge. PRODUCTS: ONLINE DEMOS: Online HTML5 Document Viewer; Online XDoc.PDF C# File: Split PDF; C# Page: Insert PDF pages; C# Page: Delete PDF pages;
delete pages of pdf online; delete pages of pdf reader
2.1 Geometric primitives andtransformations
43
which gives a nice linearized relationship between the rotation parameters ! and R. We can
also write R(!)v  v + !  v, which is handy when we want to compute the derivative of
Rv with respect to !,
@Rv
@!T
= [v]
=
2
6
4
0
z
y
z
0
x
y
x
0
3
7
5
:
(2.36)
Another way to derive a rotation through a finite angle is called the exponential twist
(Murray,Li,andSastry1994). A rotation by an angle  is equivalent to k rotations through
=k. In the limit as k ! 1, we obtain
R(^n;) = lim
k!1
(I +
1
k
[^n]
)
k
=exp[!]
:
(2.37)
If we expand the matrix exponential as a Taylor series (using the identity [^n]
k+2
= [^n]
k
,
k> 0, and again assuming  is in radians),
exp [!]
=
I+ [^n]
+
2
2
[^n]
2
+
3
3!
[^n]
3
+
=
I+ (  
3
3!
+)[^n]
+(
2
2
3
4!
+)[^n]
2
=
I+ sin[^n]
+(1   cos)[^n]
2
;
(2.38)
which yields the familiar Rodriguez’s formula.
Unit quaternions
The unit quaternion representation is closely related to the angle/axis representation. A unit
quaternion is a unit length 4-vector whose components can be written as q = (q
x
;q
y
;q
z
;q
w
)
or q = (x;y;z;w) for short. Unit quaternions live on the unit sphere kqk = 1 and antipodal
(opposite sign) quaternions, q and  q, represent the same rotation (Figure2.6). Other than
this ambiguity (dual covering), the unit quaternion representation of a rotation is unique.
Furthermore, the representation is continuous, i.e., as rotation matrices vary continuously,
one can find a continuous quaternion representation, although the path on the quaternion
sphere may wrap all the way around before returning to the “origin” q
o
=(0;0;0;1). For
these and other reasons given below, quaternions are a very popular representation for pose
and for pose interpolation in computer graphics (Shoemake1985).
Quaternions can be derived from the axis/angle representation through the formula
q= (v;w) = (sin
2
^n;cos
2
);
(2.39)
VB.NET PDF - Annotate PDF Online with VB.NET HTML5 PDF Viewer
Ability to insert a text note after selected text. Allow users to draw freehand shapes on PDF page. VB.NET HTML5 PDF Viewer: Annotate PDF Online.
delete page pdf online; best pdf editor delete pages
C# PDF remove image library: remove, delete images from PDF in C#.
Delete and remove all image objects contained in a specific to remove a specific image from PDF document page. Free .NET PDF SDK library download and online C#
delete page numbers in pdf; delete page in pdf document
44
Computer Vision: Algorithms and Applications (September 3, 2010 draft)
z
x
w
q
=1
y
2.1 Geometric primitives andtransformations
45
with the property that R(q
2
) = R(q
0
)R(q
1
). Note that quaternion multiplication is not
commutative, just as 3D rotations and matrix multiplications are not.
Taking the inverse of a quaternion is easy: Just flip the sign of v or w (but not both!).
(You can verify this has the desired effect of transposing the R matrix in (2.41).) Thus, we
can alsodefine quaternion division as
q
2
=q
0
=q
1
=q
0
q
1
1
=(v
0
v
1
+w
0
v
1
w
1
v
0
; w
0
w
1
v
0
v
1
):
(2.43)
This is useful when the incremental rotation between two rotations is desired.
In particular, if we want to determine a rotation that is partway between two given rota-
tions, we can compute the incremental rotation, take a fraction of the angle, and compute the
new rotation. This procedure is called spherical linear interpolation or slerp for short (Shoe-
make 1985)andisgiveninAlgorithm2.1.NotethatShoemakepresentstwoformulasother
than the one given here. The first exponentiates q
r
by alpha before multiplying the original
quaternion,
q
2
=q
r
q
0
;
(2.44)
while the second treats the quaternions as 4-vectors on a sphere and uses
q
2
=
sin(1  )
sin
q
0
+
sin
sin 
q
1
;
(2.45)
where  = cos
1
(q
0
q
1
)and the dot product is directly between the quaternion 4-vectors.
All of these formulas give comparable results, althoughcare should be takenwhenq
0
andq
1
are close together, which is why I prefer to use an arctangent to establish the rotation angle.
Which rotation representation is better?
The choice of representation for 3D rotations depends partly on the application.
The axis/angle representation is minimal, and hence does not require any additional con-
straints on the parameters (no need to re-normalize after each update). If the angle is ex-
pressed in degrees, it is easier to understand the pose (say, 90
twist around x-axis), and also
easier to express exact rotations. When the angle is in radians, the derivatives of R with
respect to ! can easily be computed (2.36).
Quaternions, on the other hand, are better if youwant tokeeptrack of a smoothly moving
camera, since there are no discontinuities in the representation. It is also easier to interpolate
between rotations and to chain rigid transformations (Murray,Li,andSastry1994;Bregler
and Malik 1998).
My usual preference is to use quaternions, but to update their estimates using an incre-
mental rotation, as described in Section6.2.2.
46
Computer Vision: Algorithms and Applications (September 3, 2010 draft)
procedure slerp(q
0
;q
1
;):
1. q
r
=q
1
=q
0
=(v
r
;w
r
)
2. if w
r
<0 then q
r
 q
r
3. 
r
=2tan
1
(kv
r
k=w
r
)
4. ^n
r
=N(v
r
)= v
r
=kv
r
k
5. 
=
r
6. q
=(sin
2
^n
r
;cos
2
)
7. return q
2
=q
q
0
Algorithm 2.1 Spherical linear interpolation (slerp). The axis and total angle are first com-
puted from the quaternion ratio. (This computation can be lifted outside an inner loop that
generates a set of interpolated position for animation.) An incremental quaternion is then
computed and multiplied by the startingrotation quaternion.
2.1.5 3D to 2D projections
Now that we know how to represent 2D and 3D geometric primitives and how to transform
them spatially, we needto specify how3D primitives are projected onto the image plane. We
can do this using a linear 3D to 2D projection matrix. The simplest model is orthography,
whichrequires nodivision togetthe final(inhomogeneous) result. The more commonly used
model is perspective, since this more accurately models the behavior of real cameras.
Orthography and para-perspective
An orthographic projection simply drops the z component of the three-dimensional coordi-
nate p toobtainthe 2Dpoint x. (In this section, weuse p to denote 3Dpoints and xto denote
2D points.) This can be written as
x= [I
22
j0] p:
(2.46)
If we are using homogeneous (projective) coordinates, we can write
~x =
2
6
4
1 0 0 0
0 1 0 0
0 0 0 1
3
7
5
~p;
(2.47)
2.1 Geometric primitives andtransformations
47
(a) 3D view
(b) orthography
(c) scaled orthography
(d) para-perspective
(e) perspective
(f) object-centered
Figure 2.7 Commonly used projection models: (a) 3D view of world, (b) orthography, (c)
scaled orthography, (d) para-perspective, (e) perspective, (f) object-centered. Each diagram
shows a top-down view of the projection. Note how parallel lines on the ground plane and
box sides remain parallel in the non-perspective projections.
48
Computer Vision: Algorithms and Applications (September 3, 2010 draft)
i.e., we drop the z component but keep the w component. Orthography is an approximate
model for long focal length (telephoto) lenses and objects whose depth is shallow relative
to their distance to the camera (SawhneyandHanson1991). It is exact only for telecentric
lenses (BakerandNayar1999,2001).
In practice, world coordinates (which may measure dimensions in meters) need to be
scaled to fit onto an image sensor (physically measured in millimeters, but ultimately mea-
sured in pixels). For this reason, scaled orthography is actually more commonly used,
x= [sI
22
j0] p:
(2.48)
This model is equivalent to first projecting the world points onto a local fronto-parallel image
plane and then scalingthis image using regular perspective projection. The scaling canbe the
same for all parts of the scene (Figure2.7b) or it can be different for objects that are being
modeled independently (Figure2.7c). More importantly, the scaling can vary from frame to
frame when estimating structure from motion, which can better model the scale change that
occurs as an object approaches the camera.
Scaledorthography is a popular modelfor reconstructingthe 3Dshape of objects far away
from the camera, since it greatly simplifies certain computations. For example, pose (camera
orientation) can be estimated using simple least squares (Section6.2.1). Under orthography,
structure and motion can simultaneously be estimated using factorization (singular value de-
composition), as discussed in Section7.3 (TomasiandKanade1992).
Aclosely related projection model is para-perspective (Aloimonos1990;Poelmanand
Kanade 1997). Inthismodel,objectpointsareagainfirstprojectedontoalocalreference
parallel to the image plane. However, rather than being projected orthogonally to this plane,
they are projected parallel to the line of sight to the object center (Figure2.7d). This is
followed by the usual projectiononto the finalimage plane, which againamounts toa scaling.
The combination of these two projections is therefore affine and canbe written as
~x =
2
6
4
a
00
a
01
a
02
a
03
a
10
a
11
a
12
a
13
0
0
0
1
3
7
5
~p:
(2.49)
Notehowparallellinesin3Dremainparallelafter projectioninFigure2.7b–d. Para-perspective
provides a more accurate projection model than scaled orthography, without incurring the
added complexity of per-pixel perspective division, which invalidates traditional factoriza-
tion methods (PoelmanandKanade1997).
Perspective
The most commonly used projection in computer graphics and computer vision is true 3D
perspective (Figure2.7e). Here, points are projected onto the image plane by dividing them
Documents you may be interested
Documents you may be interested