teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

注釈修正

2021/10/18 04:43

投稿

fana
fana

スコア12229

answer CHANGED
@@ -15,7 +15,7 @@
15
15
  for( int xmin=0; xmin<hW; xmin+=N ) //xmin : 小領域の左端
16
16
  {
17
17
  int xmax = xmin+N-1; //xmax : 小領域の右端
18
- if( xmax >= hW )xmax = hW-1; //※「画像サイズがNの倍数」みたいな前提があるなら不要
18
+ if( xmax >= hW )xmax = hW-1; //※「画像横幅の半分がNの倍数」みたいな前提があるなら不要
19
19
 
20
20
  //小領域内の合計を求む
21
21
  int R=0, G=0, B=0;

1

記述微修正

2021/10/18 04:43

投稿

fana
fana

スコア12229

answer CHANGED
@@ -1,5 +1,5 @@
1
- 16x16 の領域毎に平均値に置き換えたいという話なのであれば,その話を素直に実装すればよいのではないでしょうか.
1
+ 16x16 の領域毎に平均値に置き換えたいという話なのであれば,その話を素直に実装すればよいのではないでしょうか.
2
- (配列 `a` とかいう謎の物を持ち出したりせずに,16x16毎に愚直に処理をするコードを書けばよいのでは?)
2
+ (配列 `a` とかいう謎の物を持ち出したりせずに,16x16の小領域毎に愚直に処理をするコードを書けばよいのでは?)
3
3
 
4
4
  ```C
5
5
  #define N 16
@@ -7,17 +7,17 @@
7
7
  void bmp_cool( int W, int H, pixel_t img[MAX_Y][MAX_X])
8
8
  {
9
9
  const int hW = W/2;
10
- for( int ymin=0; ymin<H; ymin+=N )
10
+ for( int ymin=0; ymin<H; ymin+=N ) //ymin : 小領域の上端
11
11
  {
12
- int ymax = ymin+N-1;
12
+ int ymax = ymin+N-1; //ymax : 小領域の下端
13
13
  if( ymax >= H )ymax = H-1; //※「画像サイズがNの倍数」みたいな前提があるなら不要
14
14
 
15
- for( int xmin=0; xmin<hW; xmin+=N )
15
+ for( int xmin=0; xmin<hW; xmin+=N ) //xmin : 小領域の左端
16
16
  {
17
- int xmax = xmin+N-1;
17
+ int xmax = xmin+N-1; //xmax : 小領域の右端
18
18
  if( xmax >= hW )xmax = hW-1; //※「画像サイズがNの倍数」みたいな前提があるなら不要
19
19
 
20
- //範囲内の合計を求む
20
+ //小領域内の合計を求む
21
21
  int R=0, G=0, B=0;
22
22
  for( int y=ymin; y<=ymax; ++y )
23
23
  {