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

回答編集履歴

1

サンプルデータを追加

2020/06/28 11:46

投稿

e-watt
e-watt

スコア84

answer CHANGED
@@ -2,12 +2,22 @@
2
2
  (※以下をもっと簡単にやってしまう方法はあるかもしれません。)
3
3
 
4
4
  コードは先の回答のものを参照してください。
5
+ 以下では4連結で走査する場合を説明するので、NEIGHBORを4として(回答に貼ったまま)コンパイルし実行すれば下記の結果を得られるはずです。
5
6
 
6
7
  入力画像がシンプルすぎると詰め直す必要が生じないので、参照ページの画像を
7
8
  説明にある8連結ではなく4連結で走査した結果で説明します。
8
9
  (質問の画像や参照ページの8連結だと走査直後のDstがきれいな昇順となり、
9
10
   私のコードの「番号を圧縮」の部分だけで足りてしまう。)
10
11
 
12
+ 念のため、サンプル画像をのソースも記載します。適当なテキストエディタで下記内容のファイルを作成し、test.pgmと名付けてプログラムに食わせてください。
13
+ テキストファイルに見えるかもしれませんが、バイナリファイルだと思えば(輝度値90と33の画素が並んだ)立派なバイナリファイルです
14
+ ```txt
15
+ P5
16
+ 16 15
17
+ 90
18
+ ZZZZZZZZZZZZZZZZZZZZ!ZZZZZZZZZZZZZZ!!!ZZZZZZZZZZZZZ!!!ZZZZZ!ZZZZZZZ!!!!ZZZZ!!ZZZZ!!!!!!ZZZ!!!ZZZZZ!!!!!ZZZ!!!ZZZZZZ!!!!ZZ!!!ZZZZZZZ!ZZZ!!!!ZZZZZZZZZZ!ZZ!!ZZZZZZZZZZ!!!ZZZZ!ZZZZZZZ!!!!!Z!!!!ZZZZZZZ!!!ZZ!!!!ZZZZZZZZ!ZZZ!ZZZZZZZZZZZZZZZZZZZZZZ
19
+ ```
20
+
11
21
  さて、参照ページの画像を4連結で走査した結果は次の通り(ラベル番号は16進数で表示)
12
22
  ```console
13
23
  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _