1/6

Date:

Tue, 08 Apr 2008 18:39:32 +0900

From:

Tsukasa NAKANO

To:

Junji Torii

Cc:

Shunji KASAMA

Subject: mask+trim
とりいさま、なかのです。何度もすみません。slice シリーズの後継プログラムのうち基本的な画像処理を行うための２種類のものの説明を以下に書きます。これらはいずれも単純なプログラム
なので、組み込みにするなら自分で書いた方が速いかもしれません。
(1) 画像のマスク処理を行うプログラム
マスク処理では指定した mask 画像の画素の値を２値化し、その結果に応じて画素ごとに以下の処理を実行します：
mask 画像の２値化後に値０となった画素に対して指定した背景（background）の画素値もしくは指定した background 画像の上の同じ位置の画素の値を入れる。
mask 画像の２値化後に値１となった画素に対して指定した前景（foreground）の画素値もしくは指定した foreground 画像の上の同じ位置の画素の値を入れる。
ただし、この処理で使用する foregound と background の画像はどちらも mask 画像と同じ画素数の構成でなければならない。
書庫ファイル（どちらも同じ内容で、ソースファイルと Windows 用の実行ファイル入り）
http://www-bl20.spring8.or.jp/~sp8ct/tmp/mask.taz
http://www-bl20.spring8.or.jp/~sp8ct/tmp/mask.zip
プログラム名
２次元の白黒もしくはグレースケール画像用：mask_gray
２次元の RGB フルカラー画像用：mask_RGB
３次元のグレースケール画像用：si_mask
ただし、2 次元用は旧来の tiffmask に、3 次元用は slicePVM に対応したプログラム。

2/6

起動法（それぞれのプログラムに４通りの起動法がある）
mask_graymaskTIFF

rangeList -bgPV-fgPV

newTIFF

mask_graymaskTIFF

rangeList -bgPV

fgTIFF

newTIFF

mask_graymaskTIFF

rangeList bgTIFF-fgPV

newTIFF

mask_graymaskTIFF

rangeList bgTIFF

fgTIFF

newTIFF

mask_RGB maskTIFF rangeList -bgR bgG bgB -fgR fgG fgB newTIFF
mask_RGB maskTIFF rangeList -bgR bgG bgB fgTIFF newTIFF
mask_RGB maskTIFF rangeList bgTIFF -fgR fgG fgB newTIFF
mask_RGB maskTIFF rangeList bgTIFF fgTIFF newTIFF

si_maskmaskDir

maskNF

rangeList-bgPV-fgPV newDirsi_maskmaskDir

maskNF

rangeList

-bgPV

fgDir

fgNF

newDirsi_maskmaskDir

maskNF

rangeList

bgDir

bgNF

-fgPV

newDirsi_maskmaskDir

maskNF

rangeList bgDir

bgNF fgDir

fgNF

newDir

ただし、maskTIFF：２次元の mask 画像のファイル名
maskDir と maskNF：
３次元の mask 画像のスライス画像のファイルが入っているディレクトリの名前とそれらのファイルの指定用の name file。
rangeList：mask 画像の上の画素値の２値化を指示する range list。
bgPV もしくは bgR、bgG、bgB：
background の画素値もしくは R、G、B 成分値（０～255）。bgPV もしくはbgR の値の前に "-"（負の符号）を付けなければならないことに注意せよ。
fgPV もしくは fgR、fgG、fgB：
foreground の画素値もしくは R、G、B 成分値（０～255）。fgPV もしくは fgRの値の前に "-"（負の符号）を付けなければならないことに注意せよ。
bgTIFF もしくは fgTIFF：
２次元の background もしくは foreground 画像のファイル名。
bgDir と bgNF もしくは fgDir と fgNF：
３次元の background もしくは foreground 画像のスライス画像のファイルが入っているディレクトリの名前とそれらのファイルの指定用の name file。
newTIFF：マスク処理の結果の２次元画像を入れるファイル名。
newDir：
マスク処理の結果の３次元画像のスライス画像ファイルを格納するディレク3/6

トリの名前。maskDir などと同じものを指定してもよい。新しいものに格納したい場合は事前にそれを自分で作成しておく必要がある。いずれにせよ、新しいスライス画像のファイル名は mask 画像のものと同じになる。
(2) 画像上の領域の切り出しや埋め込みのためのプログラム群以下の３種類のものがあります。
trim_gray、trim_RGB および si_trim：画像上の領域の切り出しを行う。
paste_gray、paste_RGB および si_paste：
指定した画像（複数も可）を埋め込んだ画像を合成する。
area_gray、area_RGB および si_area：
指定した画像上の指定した範囲の値を持った画素群がちょうどおさまる矩形もし
くは直方体領域の対角点の座標値を表示する。
これらのソースファイルとそれらをコンパイルして得た Windows 用の実行ファイルは以下の 2 個の書庫ファイルに入っています（以下の 2 個の書庫ファイルの内容は同一です）。
http://www-bl20.spring8.or.jp/~sp8ct/tmp/trim.taz
http://www-bl20.spring8.or.jp/~sp8ct/tmp/trim.zip(2-1) trim_gray、trim_RGB および si_trim
これらは２次元の白黒、グレースケールもしくは RGB フルカラー画像や、３次元のグレースケール画像上の指定した矩形もしくは直方体領域を切り出すプログラムです。
起動法
trim_grayorgTIFFx1

trim_RGB

orgTIFFx1 y1 x2

si_trimorgDiry1

nameFilex2

y2

newTIFFy2 newTIFF

X1 Y1

Z1

X2

Y2

Z2 newDir

ただし、
orgTIFF：トリミングする２次元画像のファイル名。
(x1,y1)と(x2,y2)：画像上の矩形領域の２個の対角点の座標値。
newTIFF：切り出した領域を格納する画像ファイル名。
orgDir と nameFile：
トリミングする３次元画像のスライス画像が入っているディレクトリの名前とそれらのファイルの指定のための nameFile。

4/6(X1,Y1,Z1)と(X2,Y2,Z2)： 画像上の直方体領域の２個の対角点の座標値。
newDir：
切り出した領域の３次元画像のスライスを入れるディレクトリの名前。なお、これらのスライスの画像は切り出した領域に付随した、０から始まる Z 座標値を名前とするファイルに格納される。
(2-2) paste_gray、paste_RGB および si_paste
これらは２次元の白黒、グレースケールもしくは RGB フルカラー画像や、３次元のグレースケール画像の上の指定した矩形もしくは直方体領域を指定した位置に埋め込んだ新しい画像を合成するプログラムです。複数の画像を埋め込むことが可能です。
起動法（それぞれのプログラムに３通りの起動法がある）
paste_gray

PV

TIFF <text_2d

paste_gray

Nx

Ny PV

paste_grayx1y1

paste_RGB

RG B TIFF <text_2d

paste_RGB

Nx

Ny R

paste_RGBx1

y1 x2 y2 R

TIFF <text_2dx2 y2

PV TIFFG B TIFF<text_2d<text_2d

G B TIFF <text_2d

si_paste

PVdirectory<text_3dsi_pasteNx

Ny Nz PV

directory

si_paste

X1

Y1

Y2 Z2

Z1 X2

<text_3d

PV directory<text_3d

ただし、PV もしくは R、G、B：
合成する画像の背景（画像が埋め込まれない部分）に塗る画素値もしくは色の R、G、B 成分の値（０～255）。
Nx、Ny および Nz：合成する画像の画素数。
(x1,y1)と(x2,y2)もしくは(X1,Y1,Z1)と(X2,Y2,Z2)：合成する画像のうち最終的にファイルに書き込む矩形もしくは直方体領域の２個の対角点の座標値。なお、これらの座標値は負の値でもかまわない。
TIFF：合成した２次元画像を格納するファイル名。
directory：
合成した３次元画像のスライス画像のファイルを格納するディレクトリの名前。なお、これらのスライスの画像は最終的な画像の直方体領域に付随した、5/6０から始まる Z 座標値を名前とするファイルに格納される。
text_2d：埋め込みを行う２次元画像に関するテキストデータ。以下の４通りの行形式のいずれかで指定する。
TIFF
TIFF

xy

TIFF

h1 v1

h2v2

TIFF

h1 v1

h2v2 xy

ただし、TIFF：２次元画像のファイル名。
(h1,v1)と(h2,v2)：
その画像の上で埋め込みを行う矩形領域の２個の対角点の座標値。
これらの指定を省略すると画像の全域が埋め込まれる。
(x,y)：
上記の矩形領域の(h1,v1)の点（画素）を配置する合成する画像上の点の座標値。これらには負の値を指定してもよい。これらの指定を省略すると x = y = 0 と見なされる。
text_3d：埋め込みを行う３次元画像に関するテキストデータ。以下の４通りの行形式のいずれかで指定する。
directory

nameFile

directory

nameFile

X Y Z

directory

nameFile

H1V1

D1 H2

V2 D2

directory

nameFile

H1V1

D1 H2

V2 D2

XY Z

ただし、directory と nameFile：３次元画像を指定するディレクトリと name file。
(H1,V1,D1) と (H2,V2,D2)：
その画像の上で埋め込みを行う直方体領域の２個の対角点の座標値。
これらの指定を省略すると画像の全域が埋め込まれる。
(X,Y,Z)：
上記の直方体領域の(H1,V1,D1)の点（画素）を配置する合成する画像上の座標値。これらには負の値を指定してもよい。これらの指定を省略すると X = Y = Z = 0 と見なされる。

6/6

なお、paste_gray、paste_RGB および si_paste のそれぞれを前記の 3 通りの起動法のうちの最初のもので起動すると、埋め込みを行った画像すべてがちょうどおさまる領域が新しい画像になる。
(2-3) area_gray、area_RGB と si_area
これらは２次元の白黒、グレースケールもしくは RGB フルカラー画像や、３次元のグレー
スケール画像の上の指定した範囲の画素値や色の R、G、B 成分値を持つ画素の空間分布を調べ、それらがちょうどおさまる矩形もしくは直方体領域の２個の対角点の座標値を表示するプログラムです。
起動法
area_gray

TIFF rangeList >text_2d

area_RGB

TIFF rangeListR rangeListG

si_area directory nameFile rangeList

rangeListB>test_2d>test_3d

ただし、TIFF：調査する２次元画像のファイル名。
directory と nameFile：調査する３次元画像のディレクトリと name file。
rangeList：画素値の範囲を指定する range list。
rangeListR、rangeListG、rangeListB：
色の R、G、B 成分値（いずれも０～ 255）のそれぞれの範囲を指定する rangelist。３成分の値のそれぞれがこれらの範囲に入っている画素が選択される。
text_2d：選択された２次元画像上の矩形領域を指す２個の対角点の４個の座標値(x1,y1)と(x2,y2)のテキストデータがこの順に、タブコード区切りで１行にまとめられて書き込まれる。
text_3d：選択された３次元画像上の直方体領域を指す２個の対角点の６個の座標値(X1,Y1,Z1)と(X2,Y2,Z2)のテキストデータがこの 順に、タブコード区切りで１行にまとめられて書き込まれる。
長くなりました。とりあえず以上です。