回答編集履歴
1
サンプルデータを追加
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
|
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
|