Skip to content

Commit 360e425

Browse files
committed
warpAffine
1 parent 5f04192 commit 360e425

File tree

7 files changed

+6269
-4944
lines changed

7 files changed

+6269
-4944
lines changed
+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
program WarpAffine_Test;
2+
3+
{$APPTYPE CONSOLE}
4+
{$R *.res}
5+
6+
uses
7+
System.SysUtils,
8+
cv.opencv,
9+
cv.resource;
10+
11+
const
12+
intput_file = OpenCVData + 'lena.jpg';
13+
14+
var
15+
srcTri: TAffineTransformPoints;
16+
dstTri: TAffineTransformPoints;
17+
18+
begin
19+
try
20+
if not FileExists(intput_file) then
21+
begin
22+
Writeln('Could not open or find the image <' + intput_file + '>');
23+
Halt;
24+
end;
25+
var
26+
src: TMat := imread(intput_file);
27+
28+
srcTri[0] := Point2f(0, 0);
29+
srcTri[1] := Point2f(src.cols - 1, 0);
30+
srcTri[2] := Point2f(0, src.rows - 1);
31+
32+
dstTri[0] := Point2f(0, src.rows * 0.33);
33+
dstTri[1] := Point2f(src.cols * 0.85, src.rows * 0.25);
34+
dstTri[2] := Point2f(src.cols * 0.15, src.rows * 0.7);
35+
var
36+
warp_mat: TMat := getAffineTransform(srcTri, dstTri);
37+
var
38+
warp_dst: TMat := TMat.zeros(src.rows, src.cols, src.&type());
39+
warpAffine(src, warp_dst, warp_mat, warp_dst.size);
40+
var
41+
center: TPoint := Point(warp_dst.cols div 2, warp_dst.rows div 2);
42+
var
43+
angle: double := -50.0;
44+
var
45+
scale: double := 0.6;
46+
var
47+
center2f: TPoint2f;
48+
center2f.x := center.x;
49+
center2f.y := center.y;
50+
var
51+
rot_mat: TMat := getRotationMatrix2D(center2f, angle, scale);
52+
var
53+
warp_rotate_dst: TMat;
54+
warpAffine(warp_dst, warp_rotate_dst, rot_mat, warp_dst.size);
55+
imshow('Source image', src);
56+
imshow('Warp', warp_dst);
57+
imshow('Warp + Rotate', warp_rotate_dst);
58+
waitKey();
59+
except
60+
on E: Exception do
61+
Writeln(E.ClassName, ': ', E.Message);
62+
end;
63+
64+
end.

samples/warpAffine/WarpAffine_Test.dproj

+1,203
Large diffs are not rendered by default.
96 Bytes
Binary file not shown.

source/core.inc

+4,312-4,312
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)