回答編集履歴
2
バグの修正
test
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
int i, j;
|
10
10
|
|
11
|
-
|
11
|
+
struct{int r, g, b;} a[CEIL(MAX_Y,N)][CEIL(MAX_X,N)] = {0};
|
12
12
|
|
13
13
|
for(i=0; i< hd->biHeight; i++){
|
14
14
|
|
@@ -28,11 +28,11 @@
|
|
28
28
|
|
29
29
|
for(j=0; j<CEIL(hd->biWidth/2,N); j++){
|
30
30
|
|
31
|
-
a[i
|
31
|
+
a[i][j].r /= N*N; // 修正
|
32
32
|
|
33
|
-
a[i
|
33
|
+
a[i][j].g /= N*N; // 修正
|
34
34
|
|
35
|
-
a[i
|
35
|
+
a[i][j].b /= N*N; // 修正
|
36
36
|
|
37
37
|
}
|
38
38
|
|
@@ -59,3 +59,7 @@
|
|
59
59
|
(スマホからの投稿のため、動作未確認です)
|
60
60
|
|
61
61
|
こんな感じで、サンプリング、平均化、結果の格納を分離してみては?
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
追記:オーバーフローに関するバグと、2つ目の平均化のループにバグがあった(インデックスがiではなくi/Nになっていた、jも同様)ので修正しました。
|
1
画面の左半分という要素が抜けていたため補正
test
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
|
13
13
|
for(i=0; i< hd->biHeight; i++){
|
14
14
|
|
15
|
-
for(j=0; j< hd->biWidth; j++){
|
15
|
+
for(j=0; j< hd->biWidth/2; j++){
|
16
16
|
|
17
17
|
a[i/N][j/N].r += img[i][j].r;
|
18
18
|
|
@@ -26,7 +26,7 @@
|
|
26
26
|
|
27
27
|
for(i=0; i<CEIL(hd->biHeight,N); i++){
|
28
28
|
|
29
|
-
for(j=0; j<CEIL(hd->biWidth,N); j++){
|
29
|
+
for(j=0; j<CEIL(hd->biWidth/2,N); j++){
|
30
30
|
|
31
31
|
a[i/N][j/N].r /= N*N;
|
32
32
|
|
@@ -40,7 +40,7 @@
|
|
40
40
|
|
41
41
|
for(i=0; i< hd->biHeight; i++){
|
42
42
|
|
43
|
-
for(j=0; j< hd->biWidth; j++){
|
43
|
+
for(j=0; j< hd->biWidth/2; j++){
|
44
44
|
|
45
45
|
img[i][j].r = a[i/N][j/N].r;
|
46
46
|
|