ImageProcessingTester @wiki
基本的な使用方法
最終更新:
Bot(ページ名リンク)
-
view
基本的な使用方法
前提
IPTでは,構築する画像処理をネットワークとみなします。
次の図は、IPTで画像の差分処理を行うネットワークの概念図で、図中の丸がノード、長方形がゲートになります。
次の図は、IPTで画像の差分処理を行うネットワークの概念図で、図中の丸がノード、長方形がゲートになります。

- ノード
- 画像処理のネットワークを構成する要素のことで、IPTでは画像を保持しています。
- ゲート
- 入力ノードに処理を行い、ノードを出力する部分で、IPTでは画像処理や、パラメータの情報を保持しています。
今後の説明ではこの用語を用いて行います。
静止画を開く
ImageProcessingTester.exeを開くと、次のようなウィンドウが表示されます。

このとき、左側にあるノードリストに画像ファイルをドロップすると、IPTでその画像を開くことができます。
画像を開くとノードリストに名前が表示され、右側に画像の情報とプレビューが表示されます。
画像を開くとノードリストに名前が表示され、右側に画像の情報とプレビューが表示されます。

この操作はメインメニューの「ファイル」→「画像を追加」でも行うことができます。
また、画像をドロップする際にCtrlキーを押しながらドロップすると、グレースケール(白黒)で読み込むことができます。
また、画像をドロップする際にCtrlキーを押しながらドロップすると、グレースケール(白黒)で読み込むことができます。
プレビューをクリックすると、その座標の画素値が表示されます。

画像処理を行う(ゲートを追加する)
開いた画像に対して、色成分ごとに分割を行ってみましょう。
通常、色成分の並びはRGBですが、OpenCVではBGRになっています。
通常、色成分の並びはRGBですが、OpenCVではBGRになっています。
ゲートを追加するときは、ノードリストからゲートを繋ぎたいノードを右クリックし、ゲートを追加に進みます。
すると処理の大分類が表示されるので、目的の分類を選び、処理を選択します。
今回はBGRへの分割なので、ゲートを追加→チャンネル分割・結合→チャンネル分割(3)を選択します。
すると処理の大分類が表示されるので、目的の分類を選び、処理を選択します。
今回はBGRへの分割なので、ゲートを追加→チャンネル分割・結合→チャンネル分割(3)を選択します。

処理を選択すると、ゲートを設定するためのダイアログが開きます。

今回の処理は入力は1つなので、入力ノードは変更する必要はありません。
入力ノードが複数ある場合(差分など)は、2番目以降のテキストボックスにノードの名前を入力します。
入力ノードが複数ある場合(差分など)は、2番目以降のテキストボックスにノードの名前を入力します。
出力ノードは、処理結果のノードに付ける名前を設定します。
今回は3つの出力に対し、「B」「G」「R」と順に名前を付けます。
今回は3つの出力に対し、「B」「G」「R」と順に名前を付けます。
ここで、右下の出力の自動命名を押して、入力ノードの名前を使って出力の名前を自動的に設定することもできます。
目安パラメータは、パラメータがある処理の場合、OpenCVのサンプルなどで設定されている数値を自動入力します。
目安パラメータは、パラメータがある処理の場合、OpenCVのサンプルなどで設定されている数値を自動入力します。
全て入力が終わった後、やるをクリックすると、実際に処理が実行され、ノードが追加されます。

元の画像から、各色成分が取り出せていることが確認できると思います。
画像処理を行う(パラメータの設定)
出力した画像に対し、更にゲートを追加することができます。
緑成分Gに対してCanny法によるエッジ検出処理を行ってみましょう。
緑成分Gに対してCanny法によるエッジ検出処理を行ってみましょう。

ゲート設定のダイアログが開きます。

出力ノードに適当に名前を付けます。
「canny」でいいでしょう。
「canny」でいいでしょう。
さて、Canny法では2つのパラメータを設定する必要があります。
パラメータのテキストボックスにフォーカスすると、ダイアログの下側にパラメータの説明が出るため、それを参考にして入力します。
パラメータのテキストボックスにフォーカスすると、ダイアログの下側にパラメータの説明が出るため、それを参考にして入力します。
やるをクリックすると、輪郭が出力されます。

ゲートの編集
前項で出力した輪郭には、ノイズのような部分までエッジが検出されてしまっていました。
これは、Cannyに与えるパラメータが低く、エッジを検出しやすく設定されていたためです。
これは、Cannyに与えるパラメータが低く、エッジを検出しやすく設定されていたためです。
このパラメータを変更してみましょう。
ノードリストから「canny」を右クリックし、ゲートの編集をクリックします。
ノードリストから「canny」を右クリックし、ゲートの編集をクリックします。

2つのパラメータを大きめに設定し直します。
編集が終わったら、やるをクリックすると編集が反映されます。
編集が終わったら、やるをクリックすると編集が反映されます。

エッジの検出量が少なくなったのが確認できると思います。
処理結果の保存
作成された画像は簡単に保存することができます。
画面の右側にあるプレビュー部分で右クリックすると、メニューが出るのでクリップボードにコピーするか、ファイルとして保存するかを選択できます。
画面の右側にあるプレビュー部分で右クリックすると、メニューが出るのでクリップボードにコピーするか、ファイルとして保存するかを選択できます。

画像の入れ替え
画像ファイルから生成された静止画ノードは画像を入れ替えることができます。
入れ替えたいノードを右クリックし、画像の入れ替えをクリックすると、ファイル選択のダイアログが開くので、画像を選択します。
入れ替えたいノードを右クリックし、画像の入れ替えをクリックすると、ファイル選択のダイアログが開くので、画像を選択します。
選択すると入れ替えが完了し、繋がっているゲートから出力されるノードにも入れ替えが反映されます。

これを利用して、作った処理に対して複数の画像で実験することができます。
簡易表示窓を使う
IPTのメインウィンドウ右側に表示されるプレビューはウィンドウのサイズに合うようにスケールされた画像です。
オリジナルのスケールで画像を見たい場合や、同時に複数の画像を見たい場合は簡易表示窓の機能を使うことができます。
オリジナルのスケールで画像を見たい場合や、同時に複数の画像を見たい場合は簡易表示窓の機能を使うことができます。
簡易表示窓はOpenCVのcvNamedWindow(のラップであるCvWindow)で実現されています。
簡易表示窓を開きたいノードで右クリックし、簡易表示窓を開くを選択します。

また、プレビューで右クリックし、簡易表示窓を開くを選択しても開くことが出来ます。

この機能は動画を処理する際など、効果を発揮します。
ネットワークを保存する
IPTでは作成したゲートの組み合わせ(ネットワーク)をXML形式で保存し、再利用することができます。

準備ができたので実際に保存してみます。
今回は、「Sunset.Canny」を最終出力とし、入力は原画像である画像処理を保存します。
今回は、「Sunset.Canny」を最終出力とし、入力は原画像である画像処理を保存します。
まず、ファイル→ネットワークを保存を選択します。

次に出力するノードをノードリストから選択します。
「Sunset.Canny」を左クリックします。
「Sunset.Canny」を左クリックします。

各ノードの色が変わったと思います。
この色は、
この色は、
- 最終的な出力ノード
- 出力ノードに付帯して保存されるノード
- 入力ノード
のようになっています。
出力ノードを選び終わったら(実際に使う際、他にも保存する出力ノードがあった場合はそれも左クリックします)右クリックします。

今度は入力ノードを選択します。
今回は原画像である「Sunset」がスタートになって問題ないので選択しませんが、例えばグレースケール変換後の画像からスタートする画像処理として保存したい場合は「Sunset.Gray」を左クリックします。
今回は原画像である「Sunset」がスタートになって問題ないので選択しませんが、例えばグレースケール変換後の画像からスタートする画像処理として保存したい場合は「Sunset.Gray」を左クリックします。
すると、出力ノードの名前を変更するためのウィンドウが開きます。

ここで、出力名に#0がありますが、これは「ここには1番目の入力ノード名を入れる」といった意味合いになります。
例えば、「Winter」というノードを入力にしたとき、「#0.Canny」は「Winter.Canny」になります。
例えば、「Winter」というノードを入力にしたとき、「#0.Canny」は「Winter.Canny」になります。
今回は変更の必要はないと思われますので、そのままOKを押します。
ファイル保存のダイアログが開くので保存します。
ファイル名は平滑化後Canny.xmlなどにしましょう。
ファイル名は平滑化後Canny.xmlなどにしましょう。
この保存したネットワークの使い方は次項で説明します。
保存したネットワークを接続する
前項で保存したネットワークを接続する方法について説明します。
まず、IPTで画像を開きます。
分かりやすいように保存した際とは違う画像にすると良いでしょう。
分かりやすいように保存した際とは違う画像にすると良いでしょう。

次に、ネットワークを接続するノード(Water lilies)で右クリックし、保存したゲートを連結を選択します。

入力ノードを選択するダイアログが開きます。
入力が複数ある場合、ノード名を入力していきます。
入力が複数ある場合、ノード名を入力していきます。

やるを押すと接続結果が反映されます。

当たり前ですが、保存したネットワークは同時に、何度でも使用できます。
同じ処理を複数の画像に適用したい場合などの有用です。
同じ処理を複数の画像に適用したい場合などの有用です。

添付ファイル
- ipt_bi_canny.png
- ipt_cannypathset.png
- ipt_cannyresult.png
- ipt_cannyselect.png
- ipt_chain.png
- ipt_chain_dialog.png
- ipt_chain_result.png
- ipt_change.png
- ipt_cvwindow.png
- ipt_editresult.png
- ipt_open.png
- ipt_opensimplewindow.png
- ipt_pathedit.png
- ipt_pathselect.png
- ipt_pathset.png
- ipt_path_chain.png
- ipt_path_chain_result.png
- ipt_path_chain_second.png
- ipt_path_chain_select.png
- ipt_pixel.png
- ipt_result.png
- ipt_save.png
- ipt_save_path.png
- ipt_save_path_dialog.png
- ipt_save_select_input.png
- ipt_save_select_output.png
- ipt_window.png
- ipt_wl.png
- node.png
- ttm_modified.000
- ttm_modified.001
- ttm_modified.002
- ttm_modified.003
- ttm_modified.bat