1 / 6 Date: Tue, 08 Apr 2008 11:57:49 +0900 From: Tsukasa NAKANO To: Junji Torii Cc: Shunji KASAMA Subject: t_pvr+si_pvr とりいさま なかのです そう 言 えば slice シリーズで 32(or 31)bit の 壁 が 切 実 な 問 題 になって いた 画 素 値 ヒストグラムの 取 得 と 画 素 値 の 置 換 用 のプログラムの 改 造 も 終 わりました 画 素 値 ヒストグラムの 取 得 と 画 素 値 の 置 換 用 プログラム 対 応 する slice シリーズのプログラム 名 :slicepvr 新 しいプログラム 名 2 次 元 画 像 用 :t_pvr 3 次 元 画 像 用 :si_pvr 書 庫 ファイル: http://www-bl20.spring8.or.jp/~sp8ct/tmp/pvr.taz http://www-bl20.spring8.or.jp/~sp8ct/tmp/pvr.zip 起 動 法 画 素 値 ヒストグラムを 取 得 する 場 合 t_pvr TIFF > output_2.txt si_pvr directory namefile > output_2.txt 画 素 値 の 置 換 を 行 う 場 合 t_pvr orgtiff newtiff < input.txt > output_3.txt si_pvr orgdir namefile newdir < input.txt > output_3.txt ただし TIFF と orgtiff: 処 理 を 行 う TIFF 画 像 のファイル 名 directory と orgdir: 処 理 を 行 う3 次 元 画 像 (スライス 画 像 )のファイルを 格 納 してあるディ レクトリの 名 前 namefile: 指 定 したディレクトリの 下 にある 処 理 すべき 画 像 ファイルの 名 前 のリス トを 書 き 込 んだファイル(name file)の 名 前 ("-" を 指 定 すればすべての ファイルになる)
2 / 6 newtiff: 画 素 値 を 置 換 した TIFF 画 像 のファイル 名 newdir: 画 素 値 を 置 換 したスライス 画 像 のファイルを 置 くディレクトリの 名 前 orgdir と 同 じでもよい 新 しいものにする 場 合 はあらかじめそれを 自 分 で 作 っておく 必 要 がある なお それぞれのスライス 画 像 のファイル 名 は 処 理 前 のものと 同 じになる output_2.txt: 画 素 値 ヒストグラムのテキストデータを 書 き 込 むファイル 画 像 上 に 出 現 した 画 素 値 とその 画 素 数 の2 個 の 整 数 値 がタブコード 区 切 りで 各 行 に 書 き 込 まれている output_3.txt: 画 素 値 ヒストグラムのテキストデータを 書 き 込 むファイル 画 像 上 に 出 現 した 画 素 値 とその 置 換 後 の 画 素 値 およびそれらの 画 素 数 の3 個 の 整 数 値 がタブコード 区 切 りで 各 行 に 書 き 込 まれている input.txt: 画 素 値 の 置 換 の 指 定 のテキストデータ 旧 来 の slicepvr と 同 一 の 以 下 の 3 通 りの 行 形 式 のいずれかで 指 定 する old new o1 o2 new o1 o2 n1 n2 画 素 値 old を new に 置 換 o1~o2 を new に 置 換 o1~o2 を n1~n2 に 置 換 改 造 のポイント 画 素 の 個 数 に 関 する 31 bit の 壁 を 克 服 した 画 素 値 ヒストグラムの 取 得 だけを 行 う 場 合 の 無 意 味 なデータ 入 力 を 廃 した 取 り 急 ぎ 追 記 (2014/11/20) 前 記 の 書 庫 ファイル pvr.taz と pvr.zip には 32 ビット Windows 用 の 実 行 ファイル t_pvr.exe と si_pvr.exe を 入 れてあります また gcc(gnu C-compiler)を 利 用 可 能 な 計 算 機 環 境 なら 書 庫 ファイルを 展 開 したディレクトリに 移 動 して make と 端 末 入 力 すればソース コードから 実 行 ファイル t_pvr と si_pvr をコンパイルできるはずです
3 / 6 Date: Wed, 19 Nov 2014 13:01:51 +0900 From: Tsukasa NAKANO To: "TSUCHIYAMA, Akira" Cc: 櫻 間 卓 志, ToruMatsumoto, 道 上 達 広, Yohei IGAMI, Aki Takigawa, Tatsuya OSAKO, 中 村 隆 太, 山 中 一 平, MIYAKE, Kentaro UESUGI, Takashi Matsushima, カドカワトキユキ Subject: 輪 郭 線 長 や 表 面 積 の 計 測 プログラム つちやまさま なかのです 先 日 の E-mail で 予 告 した 計 算 機 プログラム(4 個 )を 書 きました On Mon, 17 Nov 2014 11:39:28 +0900 Tsukasa NAKANO wrote: > On Sat, 15 Nov 2014 10:39:28 +0900 Akira TSUCHIYAMA wrote: > > > si_stl_a (or B)で 個 々の 画 像 について 表 面 積 は 求 められますが クラスタラベ > > リングした 画 像 について それぞれのクラスターでまとめて 表 面 積 求 めたいと > > 思 います たしか これできるようになっていた 記 憶 があるのですが 以 前 の > > メイルを 探 してもコマンドがうまく 探 せません > > 実 は si_* には 表 面 積 だけを 測 定 するプログラムがありません 大 昔 に 作 った > slicesic と slicemic に 相 当 するものを 現 在 作 成 中 なので 少 々お 待 ち 下 さい 今 回 書 いたものは2 次 元 画 像 用 の t_[s,m]ec と3 次 元 用 の si_[s,m]fc です t_:tiff ファイルとして 与 えられた1 個 の2 次 元 画 像 を 処 理 する si_: 複 数 のスライス 画 像 から 構 成 される3 次 元 画 像 を 処 理 する s:1 種 類 の 辺 もしくは 面 だけを 対 象 とした 処 理 を 行 う m: 複 数 種 類 の 辺 もしくは 面 を 対 象 とした 処 理 を 行 う ec:edge counter fc:face counter これら4 個 のソースコードと(32 bit)windows 用 の 実 行 ファイルなどを 以 前 に 紹 介 した t_pvr や si_pvr 用 の 書 庫 ファイルに 入 れておきました 今 回 書 いたプログラムも 以 前 のも のとまったく 同 じ 方 法 でインストールできます http://www-bl20.spring8.or.jp/~sp8ct/tmp/pvr.pdf
4 / 6 新 しいプログラムそれぞれの 機 能 や 使 用 法 は 以 下 の 通 りです t_sec と si_sfc 機 能 画 素 値 の 値 域 の 指 定 によって2 値 化 識 別 した2 次 元 画 像 上 の 物 体 像 の 輪 郭 線 長 ( 物 体 像 と 見 なした 画 素 とそれ 以 外 のものに 挟 まれた 画 素 の 辺 の 総 数 )や 3 次 元 画 像 上 の 物 体 像 の 表 面 積 ( 面 の 総 数 )を 計 測 する 起 動 法 t_sec TIFF rangelist si_sfc directory namefile rangelist 起 動 パラメータの 説 明 TIFF:TIFF 形 式 画 像 のファイル 名 directory と namefile: これらのパラメータで3 次 元 画 像 を 構 成 するスライス 画 像 群 を 指 定 する rangelist: 物 体 像 と 見 なす 画 素 値 の 値 域 を 指 定 する 文 字 列 標 準 出 力 に 書 き 出 される2もしくは3 個 のテキストデータ( 非 負 の 整 数 値 ) 1 番 目 の 値 :x 軸 に 垂 直 な 辺 もしくは 面 の 総 数 2:y 軸 に 垂 直 な 辺 もしくは 面 の 総 数 3(si_sfc のみ):z 軸 に 垂 直 な 面 の 総 数 t_mec と si_mfc 機 能 指 定 した 値 域 の 画 素 値 を 保 持 している 画 素 のペアに 挟 まれている2 次 元 画 像 上 の 画 素 の 辺 の 総 数 や 3 次 元 画 像 上 の 面 の 総 数 を 計 測 する 起 動 法 t_mec TIFF rangelist1 rangelist2 si_mfc directory namefile rangelist1 rangelist2 起 動 パラメータの 説 明 TIFF:TIFF 形 式 画 像 のファイル 名 directory と namefile: これらのパラメータで3 次 元 画 像 を 構 成 するスライス 画 像 群 を 指 定 する rangelist1 と rangelist2: 計 測 対 象 とする 辺 や 面 を 挟 む2 個 の 画 素 の 値 の 値 域 を 指 定 する 文 字 列 指 定 された 値 域 の 値 の 組 み 合 わせのすべてを 計 測 対 象 にするので これら2 個 の 並 びの 順 は 任 意 だが 実 用 的 にはこれらに 排 他 的 な 値 域 を 指 定 すべきである (そうしないと 同 一 の 値 の 画 素 から 構 成 される 物 体 像 の 内 部 の 辺 や 面 の 総 数 まで 計 測 することになる)
5 / 6 標 準 出 力 に 書 き 出 される 各 行 に 並 ぶ4もしくは5 個 のテキストデータ 1 番 目 と2 番 目 の 値 (i と j): 辺 や 面 を 挟 んでいる 画 素 の 値 0 i j かつ 下 記 の 辺 や 面 の 総 数 すべてが 0でないデータ 行 が i および jの 値 の 昇 順 に 出 力 される 3:それらの 画 素 に 挟 まれた x 軸 に 垂 直 な 辺 や 面 の 総 数 4:それらの 画 素 に 挟 まれた y 軸 に 垂 直 な 辺 や 面 の 総 数 5(si_mfc のみ):それらの 画 素 に 挟 まれた z 軸 に 垂 直 な 面 の 総 数 注 起 動 パラメータ rangelist[1,2]の 両 方 に "-" を 指 定 して 起 動 すると t_mec と si_mfc は 画 像 上 のすべての 種 類 の 辺 や 面 の 個 数 を 計 測 します ただし その 処 理 には 画 像 上 の 画 素 の 総 数 に 関 わらず 最 小 限 以 下 の 容 量 の 計 算 機 メモリが 必 要 です 32 ビット CPU の 計 算 機 上 で8ビット 画 素 値 の 画 像 を 処 理 t_mec:255 KB 程 度 si_mfc:383 KB 程 度 32 ビット CPU の 計 算 機 上 で 16 ビット 画 素 値 の 画 像 を 処 理 t_mec:16 GB 程 度 ( 実 行 不 可 能 ) si_mfc:24 GB 程 度 ( 実 行 不 可 能 ) 64 ビット CPU の 計 算 機 上 で8ビット 画 素 値 の 画 像 を 処 理 t_mec:510 KB 程 度 si_mfc:765 KB 程 度 64 ビット CPU の 計 算 機 上 で 16 ビット 画 素 値 の 画 像 を 処 理 t_mec:32 GB 程 度 (そちらの Linux 機 での 実 行 は?) si_mfc:48 GB 程 度 (そちらの Linux 機 での 実 行 は?) 最 後 に 3 次 元 クラスタ 画 像 mcl/ の 上 のクラスタの 像 それぞれの 表 面 積 の 計 測 は 以 下 のようにします(クラスタ 画 像 上 ではクラスタそれぞれの 像 はすべて 画 素 値 0を 持 つ 背 景 の 画 素 に 囲 まれている) 単 純 に si_mfc を 実 行 してすべてのクラスタを 調 べる: si_mfc mcl/ - 0 1- > result.txt クラスタ 番 号 1~10 の 像 の 表 面 積 を 調 べる: si_mfc mcl/ - 0 1-10 > result.txt 出 力 の 各 行 の 先 頭 の 0 を 削 除 する: si_mfc mcl/ - 0 1-10 cut -f2- > result.txt
6 / 6 [x,y,z] 軸 に 垂 直 な3 個 の 表 面 積 の 和 の 値 を 行 末 に 付 加 する: si_mfc mcl/ - 0 1-10 ( 改 行 しない) awk '{ printf "%s t%s t%s t%s t%g n", ( 改 行 しない) $2,$3,$4,$5,$3+$4+$5 }' > result.txt 注 : 上 記 の 中 括 弧 {} の 前 後 の 引 用 符 は single quote です CSV 形 式 ファイルに 変 換 して 出 力 : si_mfc mcl/ - 0 1-10 ( 改 行 しない) awk '{ printf "%s,%s,%s,%s,%g n", ( 改 行 しない) $2,$3,$4,$5,$3+$4+$5 }' > result.csv とりあえず 以 上 です