質問編集履歴
2
画像の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -7,6 +7,10 @@
|
|
7
7
|
###発生している問題・エラーメッセージ
|
8
8
|
|
9
9
|
変換後の画像が変換したい四角形におさまらず、歪んだ画像になってしまいます。
|
10
|
+
|
11
|
+
元画像...256 * 256
|
12
|
+
|
13
|
+
![青い四角が変換したい位置で、Aとかかれた図形が変換後の図形です。](ba15914ae75bdf128f30e20a237387c7.png)
|
10
14
|
|
11
15
|
###該当のソースコード
|
12
16
|
|
1
指摘された通りに内容を変更しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -10,9 +10,9 @@
|
|
10
10
|
|
11
11
|
###該当のソースコード
|
12
12
|
|
13
|
+
//指摘された通りに内容を変更しました
|
13
14
|
|
14
|
-
|
15
|
-
d
|
15
|
+
void getSystem(POINTd* in,POINTd* out,double *ht) {//8個のパラメータを求める
|
16
16
|
|
17
17
|
Matrix<double, 8 , 8> dATA;
|
18
18
|
|
@@ -34,15 +34,13 @@
|
|
34
34
|
|
35
35
|
dATA = dATA.inverse();
|
36
36
|
|
37
|
-
double dATA2[8] = { 0.0 };
|
38
|
-
|
39
37
|
for (int i = 0; i < 8; i++) {
|
40
38
|
|
41
|
-
|
39
|
+
ht[i] = 0;
|
42
40
|
|
43
41
|
for (int j = 0; j < 4; j++) {
|
44
42
|
|
45
|
-
|
43
|
+
ht[i] +=
|
46
44
|
|
47
45
|
dATA(i, j) * out[j].x;
|
48
46
|
|
@@ -50,15 +48,13 @@
|
|
50
48
|
|
51
49
|
for (int j = 0; j < 4; j++) {
|
52
50
|
|
53
|
-
|
51
|
+
ht[i] +=
|
54
52
|
|
55
53
|
dATA(i, j + 4) * out[j].y;
|
56
54
|
|
57
55
|
}
|
58
56
|
|
59
57
|
}
|
60
|
-
|
61
|
-
return dATA2;
|
62
58
|
|
63
59
|
}
|
64
60
|
|
@@ -68,7 +64,9 @@
|
|
68
64
|
|
69
65
|
/* 変数の定義など */
|
70
66
|
|
67
|
+
double ht[8] = { 0 };
|
68
|
+
|
71
|
-
|
69
|
+
getSystem(pointin, pointout,ht);
|
72
70
|
|
73
71
|
for(int x = 0;x < image_src.Width;x++){
|
74
72
|
|