(57)【要約】【課題】画像処理装置において実行されるプログラムの開発を容易にすることができる開発支援装置および開発支援プログラムを提供する。【解決手段】処理の目的が列挙されたリスト表示から、ユーザは、所望する目的を選択する。これにより、当該目的に対応するサンプルユニットの説明画面が表示される。そして、サンプルユニットのプログラムを保存するフォルダのリンクが選択されると、当該フォルダを含むディレクトリが表示され、そして、当該フォルダの画像が、初期動作で表示された画面上にドロップされると、サンプルユニットが実行される。サンプルユニットは、１以上の画像処理モジュール（処理ユニット）を含む。そして、サンプルユニットが実行されることにより、デフォルトで格納されている画像データに対して、各処理ユニットによって規定される処理が実行され、その結果が、モニタ３に表示される。【選択図】図１７
2013016013.tif 000002
【特許請求の範囲】
【請求項１】
特定の画像処理を実現するための特定プログラムを記憶するための記憶手段と、
外部からの操作を受け付けるための受付手段と、
前記受付手段が特定の操作を受け付けたことに応じて、前記特定プログラムを実行するための実行手段とを備え、
前記記憶手段は、前記特定プログラムの記述を画面に表示させるためのデータである画面表示用データを記憶し、
前記実行手段は、前記受付手段が前記特定の操作を受け付けたことに応じて、さらに、前記画面表示用データを用いて前記特定プログラムの記述を表示させる、開発支援装置。
【請求項２】
前記記憶手段は、前記特定プログラムに関する説明を画面の表示させるためのデータである説明用データをさらに記憶し、
前記実行手段は、前記特定の操作に応じて、さらに、前記説明用データを用いて前記特定プログラムに関する説明を表示させる、請求項１に記載の開発支援装置。
【請求項３】
前記特定の操作は、
前記記述および前記説明を表示させるための第１の操作と、
前記特定プログラムを実行するための第２の操作とを含む、請求項２に記載の開発支援装置。
【請求項４】
前記実行手段は、前記特定プログラムの設定の変更を受け付け、当該変更内容を前記記憶手段に記憶する、請求項１〜請求項３のいずれかに記載の開発支援装置。
【請求項５】
特定の画像処理を実現するための特定プログラムを記憶するための記憶手段を備えたコンピュータによって実行される開発支援プログラムであって、
前記記憶手段は、前記特定プログラムの記述を画面に表示させるためのデータである画面表示用データを記憶し、
前記開発支援プログラムは、前記コンピュータに、
外部からの操作を受け付けるステップと、
特定の操作を受け付けたことに応じて、前記画面表示用データを用いて前記特定プログラムの記述を表示させるステップと、
前記特定プログラムを実行するステップとを実行させる、開発支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、開発支援装置および開発支援プログラムに関し、特に、計測対象物の画像に対して画像処理を行なうことにより検査や判別を行なう画像処理装置を含むシステムにおける画像処理装置で実行されるプログラムの開発に関する。
【背景技術】
【０００２】
従来から、画像処理装置で実行させるプログラムの開発に際し、処理内容の構成単位であるオブジェクトプログラムや画像処理モジュールなどを予め準備して用いられていた。なお、画像処理装置における物品の計測態様の多様化などに伴い、プログラムの開発についてより柔軟にカスタマイズできることが希望されるようになってきている。
【０００３】
この点、たとえば特許文献１（特開２００９−５９２０３号公報）では、複数個の画像処理モジュールを記憶する記憶部にユーザの操作に従って作成された新たな画像処理モジュールを追加して記憶し、そして、当該記憶部に記憶されている画像処理モジュールのうち複数の画像処理モジュールの実行順序をユーザの操作に従って決定して基本フローを作成する技術が開示されている。
【０００４】
また、特許文献２（特開２００９−８７１４４号公報）には、記憶部に記憶させる複数の画像処理モジュールとして、画像処理機能を特定する第１画像処理モジュールと、第１画像処理モジュールに対する設定情報の入力に利用される画面を表示するための情報である第２画像処理モジュールとを含み、そして、第２画像処理モジュールに基づいて表示された画面に対して入力された情報に基づいて、第１画像処理モジュールに対して画像処理動作の設定を行なうことにより画像処理機能をカスタマイズする技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−５９２０３号公報
【特許文献２】特開２００９−８７１４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記したような従来の技術によれば、特許文献２に記載の技術に従って画像処理機能をカスタマイズし、また、特許文献１に記載の技術に従って、予め利用された画像処理モジュールを利用しつつ、必要な画像処理モジュールのみを作成すれば、希望に沿う基本フローを作成できる。
【０００７】
しかしながら、特許文献１に開示されたような画像処理モジュールの作成には、個々の処理の内容を記述したソースコードの作成を要する。このため、システムインテグレータ（ＳＩ）にかかる負担が大きすぎるという問題があった。一方、画像処理装置のメーカにおいて個々の顧客の希望に沿うようなプログラム開発を行なった場合、コストの面で採算が取れなくなるという問題が生じる。
【０００８】
本発明は、かかる実情に鑑み考え出されたものであり、その目的は、画像処理装置において実行されるプログラムの開発を容易にすることができる開発支援装置および開発支援プログラムを提供することである。
【課題を解決するための手段】
【０００９】
本発明に従った開発支援装置は、特定の画像処理を実現するための特定プログラムを記憶するための記憶手段と、外部からの操作を受け付けるための受付手段と、受付手段が特定の操作を受け付けたことに応じて、特定プログラムを実行するための実行手段とを備え、記憶手段は、特定プログラムの記述を画面に表示させるためのデータである画面表示用データを記憶し、実行手段は、受付手段が特定の操作を受け付けたことに応じて、さらに、画面表示用データを用いて特定プログラムの記述を表示させる。
【００１０】
好ましくは、記憶手段は、特定プログラムに関する説明を画面の表示させるためのデータである説明用データをさらに記憶し、実行手段は、特定の操作に応じて、さらに、説明用データを用いて特定プログラムに関する説明を表示させる。
【００１１】
好ましくは、特定の操作は、記述および説明を表示させるための第１の操作と、特定プログラムを実行するための第２の操作とを含む。
【００１２】
好ましくは、実行手段は、特定プログラムの設定の変更を受け付け、当該変更内容を記憶手段に記憶する。
【００１３】
本発明に従った開発支援プログラムは、特定の画像処理を実現するための特定プログラムを記憶するための記憶手段を備えたコンピュータによって実行される開発支援プログラムであって、記憶手段は、特定プログラムの記述を画面に表示させるためのデータである画面表示用データを記憶し、開発支援プログラムは、コンピュータに、外部からの操作を受け付けるステップと、特定の操作を受け付けたことに応じて、画面表示用データを用いて特定プログラムの記述を表示させるステップと、特定プログラムを実行するステップとを実行させる。
【発明の効果】
【００１４】
本発明によれば、特定プログラムが実行され、また、当該特定プログラムの記述を表示される。
【００１５】
これにより、ユーザは、特定プログラムの処理内容と、当該処理内容を実現するためのプログラムの記述の双方を認識できる。
【図面の簡単な説明】
【００１６】
【図１】本発明が適用される画像処理装置の設置例を示す図である。
【図２】画像処理装置の外部構成の概略を示す図である。
【図３】画像処理装置の電気構成を示す図である。
【図４】本実施の形態の画像処理装置のメイン画面を示す図である。
【図５】本実施の形態の画像処理装置のフロー編集ダイアログ画面を示す図である。
【図６】図４のメイン画面の変形例を示す図である。
【図７】図３のコントローラの機能構成を示す図である。
【図８】図３のフラッシュメモリに格納された情報の構成を模式的に示す図である。
【図９】サンプルデータの構成の一例を模式的に示す図である。
【図１０】設定データの構成の一例を模式的に示す図である。
【図１１】図１のモニタにおける画面表示の一例を示す図である。
【図１２】図１のモニタにおける画面表示の他の例を示す図である。
【図１３】図１のモニタに表示される説明画面の一例を示す図である。
【図１４】図１のモニタに表示される説明画面の一例を示す図である。
【図１５】図１のモニタに表示される説明画面の一例を示す図である。
【図１６】図の画像処理装置のフラッシュメモリ内のディレクトリの内容を表示する画面の一例を示す図である。
【図１７】図１のモニタにおける画面表示のさらに他の例を示す図である。
【図１８】開発支援処理で表示されるリストの変形例を示す図である。
【図１９】図１のモニタに表示される説明画面の他の例を示す図である。
【図２０】図１のモニタに表示される説明画面の他の例を示す図である。
【図２１】図１のモニタにおける画面表示の別の例を示す図である。
【図２２】図１のモニタにおける画面表示のさらに別の例を示す図である。
【図２３】コントローラ２において実行される、開発支援処理のフローチャートである。
【発明を実施するための形態】
【００１７】
以下、本発明の検査装置の一実施の形態について、図面を参照しつつ説明する。なお、同一の構成要素には各図において同一の符号を付し、詳細な説明は繰返さない。
【００１８】
（１）  画像処理装置の構成
図１は、本発明が適用される画像処理装置の設置例を示す。
【００１９】
本実施の形態の画像処理装置は、カメラ１、コントローラ２、モニタ３、コンソール４などにより構成されており、工場の検査ラインＬにおいて、搬送されてくるワークＷを順に撮像してカラー画像を生成し、その画像を処理することによって、前記ワークＷ上の計測対象物７（マーク、文字、欠陥など）の位置、姿勢、大きさなどの適否を判別する。尚、コンソール４はマウスやキーボード、タッチパネルなど操作者がＣＰＵ（Central  Processing  Unit）２１に指示を送るために用いることができる機器であればその形態は限定されない。カメラ１は１台に限定されず複数台接続することができる。
【００２０】
図２は、画像処理装置の外部構成の概略を示す。また、図３は、画像処理装置の電気構成を示す。
【００２１】
コントローラ２は、本実施の形態における開発支援装置の一例である。そして、コントローラ２は、ＣＰＵ２１を制御主体として、フラッシュメモリ２２、ＲＡＭ（Random  Access  Memory）２３、グラフィックコントローラ２４、カメラ用インターフェース２５、入力用インターフェース２６、外部用インターフェース２７などを具備する。
【００２２】
フラッシュメモリ２２には、プログラムや処理に必要なパラメータなどが格納され、ＲＡＭ２３には、画像データや途中の演算結果などが一時保存される。
【００２３】
ＣＰＵ２１が本実施の形態で述べられる機能を実現するために実行するプログラムは、フラッシュメモリ２２に記憶されていても良いし、画像処理装置に対して着脱可能な記憶媒体に記録されていても良い。記憶媒体としては、ＣＤ−ＲＯＭ（Compact  Disc  -  Read  Only  Memory）、ＤＶＤ−ＲＯＭ（Digital  Versatile  Disk  -  Read  Only  Memory）、ＵＳＢ（Universal  Serial  Bus）メモリ、メモリカード、ＦＤ（Flexible  Disk）、ハードディスク、磁気テープ、カセットテープ、ＭＯ（Magnetic  Optical  Disc）、ＭＤ（Mini  Disc）、ＩＣ（Integrated  Circuit）カード（メモリカードを除く）、光カード、マスクＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ（Electronically  Erasable  Programmable  Read-Only  Memory）などの、不揮発的にプログラムを格納する媒体が挙げられる。
【００２４】
カメラ用インターフェース２５には、前記カメラ１の駆動回路や、Ｒ，Ｇ，Ｂの各画像信号を受け付けるためのバッファ、Ａ／Ｄ変換回路（いずれも図示せず。）などが含まれる。入力用インターフェース２６は、前記コンソール４からの信号を受け付けるためのものである。外部用インターフェース２７は、図示しない外部機器（パーソナルコンピュータ、ＰＬＣなど）と通信する際に使用される。グラフィックコントローラ２４は、前記モニタに対する表示制御を実行する。
【００２５】
外部用Ｉ／Ｆ（インターフェース）には、ＰＬＣ（Power  Line  Communication）やパソコン（パーソナルコンピュータ）が接続されるが、ネットワークを介して他の画像処理装置と互いに接続することも可能である。
【００２６】
前記ＣＰＵ２１は、フラッシュメモリ２２やＲＡＭ２３に格納されているプログラムやパラメータなどをモニタ３に表示させたり、コンソール４や外部用Ｉ／Ｆ２７から入力されるデータをフラッシュメモリ２２やＲＡＭ２３に格納する。また、ワーク検出用のセンサ５（光電スイッチ、近接スイッチなど）が接続されている。ＣＰＵ２１は、このセンサ５からワークＷを検出した旨を示す信号を入力すると、カメラ用インターフェース２５を用いてカメラ１を駆動し、前記ワークＷを撮像させる。そして前記ワークＷのカラー濃淡画像（以下、「処理対象画像」という。）が生成され、ＲＡＭ２３に保存されると、ＣＰＵ２１は、前記フラッシュメモリ２２に記憶されたプログラムに基づき、前記計測対象物７を抽出する処理や、抽出された計測対象物７に対する計測処理を実行し、さらにその計測結果に基づき、計測対象物の良否を判定する。また、処理結果の画像（以下、「処理画像」）や計測処理結果のデータをフラッシュメモリ２２やＲＡＭ２３に格納する。さらに、外部用Ｉ／Ｆ２７を通じてネットワークで接続された他の画像処理装置の画像を取得したり、本画像処理装置から他の画像処理装置へプログラムやパラメータ等を送信する処理も行うことができる。
【００２７】
なお、上記図１〜図３に示したコントローラ２は、画像処理専用に開発された装置であるが、これに限らず、たとえば、画像処理用のプログラムがインストールされたパーソナルコンピュータを使用してもよい。この場合のプログラムは、ＣＤ−ＲＯＭなどの記憶媒体または通信回線を介してパーソナルコンピュータに提供される。
【００２８】
（２）  画像処理装置の画面表示
図４は、本実施の形態の画像処理装置のメイン画面を示す。最上部には「ファイル」、「編集」、「表示」、「計測」、「ツール」、「システム」などのシステムメニューを表示するシステムメニューエリアが表示され、その下段には、本画像処理装置で頻繁に使用する作業をツールバーとして表示するツールバーエリアが表示され、さらにその下段には、計測結果、計測対象、再計測、表示切替に関連する情報を表示する計測情報表示エリアが表示される。そして、これらの下に後に詳述するレイアウト切替の設定によって表示が切り替わるレイアウト切替エリアが表示される。
【００２９】
システムメニューエリアの「ファイル」は、コンソール４等を通じて選択されると下位の選択メニューとして「セーブ」と「変更履歴」と「シーン切替」を表示する。「セーブ」をすると設定した各種設定データのセーブ処理を行う。「変更履歴」を選択すると、変更履歴ダイアログを表示し、選択された履歴で設定をロードする。変更履歴ダイアログとは、過去に履歴保存された設定変更（保存日時、保存データ種別・分類、保存データファイル名）を一覧で表示するものである。保存データとしては、目的とする検査、判別のために、予め準備された複数の画像処理項目の中から処理項目を選んでそれらを所定の順序で組み合わせて作成されたフロー（シーンデータ）の番号あるいは名称を表示する。「シーン切替」は、選択されるとシーンデータの名称もしくは番号とそのシーンデータが属するグループ（シーングループ）の入力を受け付けるための画面を表示し、テキスト入力もしくはドロップダウンリストにより入力／選択されたシーングループのシーンデータを編集あるいは実行などの作業対象として切り替える。
【００３０】
システムメニューエリアの「編集」は、コンソール４等を通じて選択されると下位の選択メニューとして「フロー編集」、「ノンストップ調整開始／終了」とその他処理項目の編集、プロパティ設定を行うための項目を表示する。
【００３１】
「フロー編集」を選択すると、フロー編集ダイアログ画面が表示される（図５）。メイン画面で選択表示しているシーンの編集を行う画面である。ウィンドウの上部にはタイトルとして「フロー編集」と表示し、その下段にはツールボタンエリアが設けられ、フロー編集に必要な機能をボタンとして表示する。その下の左側には編集対象のフローをリスト形式で表示するフローエリアが設けられ、右側にはカメラ画像表示エリアが設けられる。最下段左側にはヘルプボタンが設けられ、選択されることにより操作マニュアルの画面を表示する。最下段右側には閉じるボタンが設けられ、選択されることにより、設定されたパラメータをメイン画面へ渡し、画面を閉じる。ツールボタンエリアのボタンには、処理ユニット（画像処理モジュール）を挿入するための「挿入」、処理ユニットのプロパティを設定するための「プロパティ」、処理ユニットを削除するための「削除」、処理ユニットをコピーするための「コピー」、処理ユニットをカットするための「カット」、処理ユニットをペーストするための「ペースト」（コピー／カットボタンが有効で無い場合、無効化ボタンとして機能する）、処理ユニットの位置を上へ移動する「移動（上へ）」、処理ユニットの位置を下へ移動する「移動（下へ）」が設けられる。フローエリアでは、処理ユニットアイコン（図５では、フローエリアの左端に縦に並んだ四角い箱で表示している）にて、処理ユニットに設定された処理項目に対応するイメージ（アイコン）を表示し、そのアイコンが選択されることで、その処理ユニットのプロパティを表示し、設定することができる。各アイコンの右側には処理ユニットの通し番号と処理ユニット名とが表示され、フローの最後はカーソル選択ができるようにエンドマーカを表示する。
【００３２】
コントローラ２は、コンソール４を介した入力に応じて、図５に示されたような画面に表示されたフローに含まれる各処理ユニットの設定内容を編集する。
【００３３】
フローの編集が完了すると、コントローラ２は、モニタ３に、図４に示したようなメイン画面が表示され、画像処理動作が可能な状態となる。
【００３４】
なお、フローの編集の際には、画面のレイアウトの変更も可能である。メイン画面のレイアウトの変形例を図６に示す。
【００３５】
図６では、レイアウト切替エリアの左側にはカメラ画像表示エリアが設定され、右側にはフロー表示エリアが設定される。フロー表示エリアには、計測対象の処理フローをリスト形式で表示する。処理ユニット毎にアイコンが設けられ、ボタンとなっており押下することで処理ユニットに対応する処理項目のプロパティ設定が可能となる。計測すると処理ユニット単位での計測結果（ＯＫ／ＮＧ）が表示される。ＮＧとなったものについては「アイコン」、「計測結果」の少なくとも一方が他の処理ユニットとは異なる態様で表示される。図６では、アイコンにハッチングが付されて表示されている。
【００３６】
図６では、各処理ユニット領域は選択可能であり、領域を選択することで「カメラ画像表示」エリアの画像が連動表示される。１枚画像表示の場合は、フローで選択した処理ユニットに対応する画像タブが選択表示され、複数画像表示の場合は、フローで選択した処理ユニットに対応する画像が含まれるページが表示される。但し、レイアウト設定により表示する画像を選択した場合は、選択した処理ユニットのみが表示対象なる。表示対象外とした処理ユニットは、フロー表示エリア内のアイコンの左側にある表示状態を示す色が非表示状態になる。画像処理装置起動時は、「０．カメラ画像入力」が選択状態となる。但し、レイアウト切替時には、処理ユニットの選択状態は変更されない。
【００３７】
（３）  画像処理装置の機能構成
図７は、コントローラ２の機能構成を示す図である。
【００３８】
図７を参照して、コントローラ２は、読込用プログラム起動部２０１と、画像リーダ２０２と、圧縮ファイルリーダ２０３と、設定データリーダ２０４と、計測制御部２０５と、マクロデバッガ２０６とを含む。各機能は、たとえば、ＣＰＵ２１がフラッシュメモリ２２に格納されたプログラムを実行することにより実現される。
【００３９】
図８は、フラッシュメモリ２２に格納された情報のうち、本実施の形態において説明される画像処理装置の機能に関連する部分の構成を模式的に示す図である。
【００４０】
図８を参照して、フラッシュメモリ２２に格納される情報は、アプリケーションプログラムと、サンプルユニットのリストと、サンプルデータとを含む。
【００４１】
アプリケーションプログラムは、コントローラ２によって実行されるプログラム開発支援アプリケーション（以下、単に「開発支援アプリ」ともいう）のプログラムである。サンプルユニットのリストは、「サンプルユニット」のリストを表示するための表示用データである。本実施の形態の開発支援アプリは、画像処理装置において実行されるユニットと同様の機能を実現するサンプルユニットを、デモンストレーションのような形態で実行させるアプリケーションである。なお、開発支援アプリでは、サンプルユニットのリストが表示され、そして、当該リストから選択されたサンプルユニットが実行される。そして、サンプルデータは、サンプルユニットを実行するためのデータである。サンプルデータは、Ａ〜Ｎとして、サンプルユニットごとに、設けられている。なお、複数のサンプルユニットが、そのサンプルデータの一部を共有していても良い。
【００４２】
図９は、サンプルデータの構成の一例を模式的に示す図である。
本実施の形態では、各サンプルデータは、圧縮ファイルの形式でフラッシュメモリ２２に格納されている。そして、各サンプルデータは、画像データと、設定データと、読込用プログラムとを含む。
【００４３】
画像データは、各サンプルデータが実行された際に、デモンストレーションとして実行される画像処理動作の対象として利用される画像データである。
【００４４】
設定データは、サンプルユニットを実行するためのデータである。図１０は、設定データの構成の一例を模式的に示す図である。
【００４５】
図１０を参照して、設定データは、フロー情報と、パラメータと、レイアウト情報とを含む。フロー情報は、サンプルユニットに含まれる画像処理モジュール（以下、適宜「処理ユニット」ともいう）を実現するための処理手順（プログラム）である。フロー情報は、プログラムであっても良いし、マクロであっても良い。パラメータは、上記フロー情報に係る処理手順が実行される際のパラメータのデフォルト値である。レイアウト情報は、図４や図６に示した計測画面において表示される要素のデフォルトのレイアウトを特定する情報である。レイアウト情報には、アドオンが導入されている場合も有り得る。
【００４６】
図９に戻って、読込用プログラムは、各サンプルユニットを開始させるためのプログラムである。
【００４７】
（４）  開発支援処理
以下、コントローラ２が実行する開発支援処理について説明する。開発支援処理とは、上記した開発支援アプリを実現するための処理である。
【００４８】
図２３は、コントローラ２において実行される、開発支援処理のフローチャートである。図２３を参照して、ＣＰＵ２１は、コンソール４を介して開発支援アプリを起動するための操作がなされたことを検知すると、ステップＳ１０で、開発支援アプリの初期動作を実行して、ステップＳ２０へ処理を進める。ここで、初期動作とは、たとえばユニットを含まないフローの画面を表示する動作である。図１１は、モニタ３における画面表示の一例である。初期動作により、モニタ３には、たとえば図１１に示されるような画面が表示される。また、初期動作には、開発支援アプリのトップページのような画面を表示する動作を含む。当該トップページが表示された状態で、ユーザは、コンソール４に対して、サンプルユニットのリストを表示させるための操作を行なう。
【００４９】
上記操作を受けて、ＣＰＵ２１は、サンプルユニットのリストを表示する。サンプルユニットのリストを表示する画面の一例を、図１２に示す。
【００５０】
図１２に示された画面には、「カスタマイズ画面と従来画面を切替える」「カスタマイズした画面にスルー／フリーズを切り替えるボタンをつける」「無手順コマンド「ＩＭＧＳＡＶＥ」をカスタマイズする」「手動でエラー信号をＯＦＦする」「計測回数・良品個数・不良品個数をモニタ表示する」…といった、作業の目的を表す項目が列挙されている。各項目は、選択可能な態様で、表示される。ユーザは、各項目の目的を参照し、自己がユニットの作成を必要とする目的に基づいて、項目を選択する。
【００５１】
当該画面に対して、コンソール４を介して１の項目が選択されると、ＣＰＵ２１は、選択された項目についての説明画面を表示する。図１３〜図１５は、図１２の画面に表示された項目の１つである「計測回数・良品個数・不良品個数をモニタ表示する」が選択された際に表示される説明画面の一例を示す図である。なお、図１４は、図１３の画面の続きを示し、図１５は、図１４の画面の続きを示している。
【００５２】
図１３から図１５に渡って示された説明画面には、「概要」「実現例」「実装方法」の項目が示されている。「概要」は、当該説明画面が対応するサンプルユニットが実行する処理の概要を示す。「実現例」は、サンプルユニットを実行させた際に表示される画面の内容の説明、および、サンプルユニットを実行させるための操作方法を含む。なお、図１３中の画面イメージは、サンプルユニットが実行された際の表示画面の画像（図１７参照）が挿入されているが、図１３では、省略されて記載されている。「実装方法」は、画像処理装置において当該サンプルユニットが実現する機能を組み込むための方法である。当該方法は、当該機能を組み込むために必要な、シーンデータの構成と、プログラムの記述（ユーザインターフェース部品の処理）を含む。なお、図１４および図１５に示されたプログラムの記述には、（１）〜（７）で記述が指定されている。そして、当該プログラムの記述の下方には、（１）〜（７）に対応する各記述の処理内容の説明が、「解説」として記載されている。たとえば、（１）の記述について、「解説」では「（１）初期値を設定します。」と記載されている。このことは、プログラムの記述中の（１）で指定された部分（dataSet.unitNo=0）が、初期値を設定するための部分であることを示している。
【００５３】
図１３の「操作方法」の欄の下方に下線を付された「ファイル格納場所」という記述がある。当該記述は、本説明画面が対応するサンプルユニット（図８において「サンプルユニットＡ」〜「サンプルユニットＮ」のうちの１つに相当するもの）が保存されているディレクトリにリンクされている。そして、コンソール４を介して「ファイル格納場所」という記述が選択されると、ＣＰＵ２１は、リンクされているディレクトリの内容を表示させる。図１６は、このようなディレクトリの内容を表示する画面の一例を示す図である。
【００５４】
図１６に示された画面では、「FZDemo_DisplayChart」というzip形式で圧縮されたフォルダが示されている。本実施の形態では、図１６に示されたような、サンプルユニットの格納場所を表すフォルダの画像が、ドラッグされて、図１１に示したような画面上にドロップされると、サンプルユニットが実行される。
【００５５】
図８に戻って、ＣＰＵ２１は、ステップＳ２０においてリストを表示させ、また、図１３〜図１６を参照して説明した一連の処理を実行した後、ステップＳ３０において、サンプルユニットの格納場所を表すフォルダに対して上記の操作（ドラッグとドロップ）がなされたか否かを判断する。そして、そのような操作がなされたと判断すると、ステップＳ４０へ処理を進める。
【００５６】
ステップＳ４０では、ＣＰＵ２１は、上記の操作の対象となったサンプルユニットを特定して、ステップＳ５０へ処理を進める。
【００５７】
ステップＳ５０では、ＣＰＵ２１の圧縮ファイルリーダ２０３が、ステップＳ４０で特定したサンプルユニットのサンプルデータの圧縮ファイル（図９参照）を展開した後、ステップＳ６０へ処理が進められる。
【００５８】
ステップＳ６０では、ＣＰＵ２１の読込用プログラム起動部２０１が、ステップＳ５０で展開したプログラムの中の読込用プログラムを起動させて、ステップＳ７０へ処理が進められる。読込用プログラムは、サンプルユニットによる処理を実行させるための実行プログラムである。
【００５９】
ステップＳ７０では、ＣＰＵ２１の設定データリーダ２０４が、ステップＳ４０で特定したサンプルユニットの設定データを読み込んだ後、ステップＳ８０へ処理が進められる。
【００６０】
ステップＳ８０では、ＣＰＵ２１の計測制御部２０５が、サンプルユニットに従った画像処理（計測動作）を実行した後、ステップＳ９０へ処理が進められる。
【００６１】
ステップＳ９０では、ＣＰＵ２１は、ステップＳ８０における画像処理（計測動作）の結果を、モニタ３に表示する。このような結果を表示する画面の一例を、図１７に示す。
【００６２】
図１７の画面は、総合結果表示ウィンドウ９０１と、情報表示ウィンドウ９０２と、画像表示ウィンドウ９０３と、ツールボタンウィンドウ９０４と、テスト計測ウィンドウ９０５と、フロー表示ウィンドウ９０６と、詳細結果表示ウィンドウ９０７とを含む。
【００６３】
画像表示ウィンドウ９０３には、「ＡＢＣ」という文字画像を含む画像が表示されている。当該画像は、ステップＳ４０で特定されたサンプルユニットの画像データ（図９参照）に対応する画像である。そして、上記の画像処理は、当該画像を対象として実行される。
【００６４】
また、フロー表示ウィンドウ９０６には、サンプルユニットに含まれる処理ユニット（画像処理モジュール）が示されている。具体的には、「カメラ画像入力」「サーチ」という２つの処理ユニットの名称と、各処理ユニットについての計測結果（ＯＫ／ＮＧ）が表示される。
【００６５】
総合結果表示ウィンドウ９０１には、各処理ユニットについての計測結果に基づいた、総合的な計測結果が示されている。具体的には、すべての処理ユニットの計測結果がＯＫであればＯＫが示され、少なくとも１つの処理ユニットの計測結果がＮＧであれば、ＮＧが表示される。
【００６６】
情報表示ウィンドウ９０２には、計測条件等の情報が表示される。
詳細結果表示ウィンドウ９０７には、フロー表示ウィンドウ９０６に表示された処理ユニットのうち、選択された処理ユニットについての、詳細な計測結果が表示される。
【００６７】
ツールボタンウィンドウ９０４には、サンプルユニットにおけるフローを編集（処理ユニットについての設定情報、処理ユニットの順序、等）を行なうためのメニューが表示されている。
【００６８】
また、テスト計測ウィンドウ９０５には、「画像選択ボタン」と「再計測ボタン」が表示されている。
【００６９】
画像選択ボタンは、当該サンプルユニットの処理対象となる画像を指定するために操作される。当該ボタンが操作されると、画像リーダ２０２は、指定された画像を読み込む。ここでは、カメラ１からの入力画像を選択することもできる。
【００７０】
再計測ボタンは、計測制御部２０５に、その時点で指定されている画像に対して、実行中のサンプルユニットによる画像処理を再度実行させるためのボタンである。
【００７１】
画像選択ボタンが操作されて、サンプルユニットに含まれる画像データ（図９参照）とは異なる画像が指定され、そして、再計測ボタンが操作されると、計測制御部２０５は、当該指定された画像を処理対象とした画像処理を実行する。
【００７２】
また、図１７の画面には、その上部に表示されている棒グラフ等の、種々のパーツが含まれる。ユーザは、コンソール４を介して、当該パーツのレイアウトを変更する情報を入力することができる。設定データリーダ２０４は、当該情報の入力を受付け、図１７の画面表示を、入力された情報に従ってレイアウトを変更して、更新表示する。なお、設定データリーダ２０４は、当該入力された情報を、適宜フラッシュメモリ２２に保存する。
【００７３】
以上説明した本実施の形態では、図１２に示されたようなリスト表示から、ユーザは、所望する目的を選択する。これにより、当該目的に対応するサンプルユニットの説明画面が表示される（図１３〜図１５）。そして、サンプルユニットのプログラムを保存するフォルダのリンクが選択されると、当該フォルダを含むディレクトリが表示され（図１６）、そして、当該フォルダの画像が、初期動作で表示された画面（図１１）上にドロップされると、サンプルユニットが実行される。サンプルユニットは、１以上の画像処理モジュール（処理ユニット）を含む。そして、サンプルユニットが実行されることにより、たとえばデフォルトで格納されている画像データに対して、各処理ユニットによって規定される処理が実行される。そして、サンプルユニットの実行の結果が、モニタ３に表示される（図１７）。
【００７４】
以上説明した本実施の形態によれば、ユーザは、サンプルユニットを実行することにより、サンプルユニットの内容を認識する。また、ユーザは、サンプルユニットの説明画面を視認することにより、上記のサンプルユニットの内容を実現するためのプログラムの記述を認識する。これにより、ユーザは、自身が所望する画像処理動作とサンプルプログラムによって実現される画像処理動作の差異に検討し、当該差異を補うために上記説明画面に表示されたプログラムの記述を変更することによってプログラムを作成することにより、容易に、自己が所望する画像処理動作のためのプログラムの記述を作成することができる。
【００７５】
なお、本実施の形態では、サンプルデータとして記憶される各サンプルユニット（図８参照）のうち、サンプルユニットを実行させるための部分（図９を参照して説明したサンプルデータ）により、特定プログラムが実行される。また、図１３〜図１５を参照して説明したような説明画面を表示させるための部分により、特定プログラムの記述を画面に表示させるためのデータが構成される。
【００７６】
（５）  変形例等
以上説明した開発支援処理では、サンプルユニットとしてユーザが指定した目的に沿ったプログラムが実行された。なお、上記したように、サンプルユニットの設定データに含まれるフロー情報（図１０）は、プログラムである場合もあれば、マクロを含む場合もある。フロー情報がマクロである場合の開発支援処理について、以下、説明する。
【００７７】
図１８は、開発支援処理のステップＳ２０で表示されるリストの変形例を示す図である。
【００７８】
図１８の画面では、「計測結果画面に図形を追加する」「エッジ位置結果から近似円を算出する」等の、サンプルユニットとして格納されているマクロが実行される目的を示す項目が列挙されている。そして、コンソール４を介して、これらのうちの１を選択する操作がなされると（ステップＳ３０でＹＥＳ）、ＣＰＵ２１は、選択された目的に対応するマクロの説明画面を表示させる。その表示画面の一例を、図１９〜図２０に示す。
【００７９】
図１９〜図２０に示された画面には、図１８の画面において「計測結果画面に図形を追加する」という項目が選択された際の画面が示されている。なお、図２０の画面は、図１９の画面の続きを示している。
【００８０】
当該説明画面は、図１３〜図１５を参照して説明した説明画面と同様に、「概要」「実現例」「実装方法」という項目を含む。
【００８１】
「概要」は、当該説明画面が対応するサンプルユニットが実行する処理の概要を示す。「実現例」は、サンプルユニットを実行させた際に表示される画面の内容の説明、および、サンプルユニットを実行させるための操作方法を含む。なお、図１９中の画面イメージは、サンプルユニットが実行された際の表示画面の画像（図２１参照）が挿入されているが、図１９では、省略されて記載されている。「実装方法」は、画像処理装置において当該サンプルユニットが実現する機能を組み込むための方法である。当該方法は、当該機能を組み込むために必要な、シーンデータの構成と、マクロプログラムの記述を含む。なお、図２０に示されたマクロプログラムの記述には、（１）〜（３）で記述が指定されている。そして、当該マクロプログラムの記述の下方には、（１）〜（３）に対応する各記述の処理内容の説明が、「解説」として記載されている。たとえば、（１）の記述について、「解説」では「（１）表示させたい処理ユニット番号（本サンプルではＮＯ．１の［サーチ］）を設定します。」と記載されている。このことは、図２０のマクロプログラムの記述中の（１）で指定された部分（MeasureDispG_1.0）が、計測結果に図形を追加して表示することを希望する処理ユニット番号を設定するための部分であることを示している。
【００８２】
そして、図１９の「操作方法」の欄の下方に下線を付された「ファイル格納場所」という記述がある。当該記述は、本説明画面が対応するサンプルユニット（図８において「サンプルユニットＡ」〜「サンプルユニットＮ」のうちの１つに相当するもの）が保存されているディレクトリにリンクされている。そして、コンソール４を介して「ファイル格納場所」という記述が選択されると、ＣＰＵ２１は、リンクされているディレクトリの内容を表示させる。
【００８３】
当該ディレクトリには、図２０に示されたようなマクロプログラムを含むサンプルユニットが格納されている。
【００８４】
本変形例において、マクロプログラムが格納されるディレクトリを表すフォルダの画像がドラッグされて、図１１に示されたような画面上にドロップされると、図１７を参照して説明したのと同様に、対応するサンプルユニットの実行による計測結果を示す画面が表示される。また、図２１には、図１７の画面と同様に、総合結果表示ウィンドウ９０１と、情報表示ウィンドウ９０２と、画像表示ウィンドウ９０３と、ツールボタンウィンドウ９０４と、テスト計測ウィンドウ９０５と、フロー表示ウィンドウ９０６と、詳細結果表示ウィンドウ９０７とが含まれる。
【００８５】
そして、図２１では、画像表示ウィンドウ９０３には、当該マクロが実行されることによって表示される画像（四角形の画像および当該四角形の画像の中心を示す十字形の画像）が示されている。
【００８６】
本変形例では、リスト表示から項目が選択されると、当該項目に対応した説明画面が表示された。なお、開発支援処理では、リスト表示とともに、または、開発支援アプリの初期画面等において、図２２に示されたような、サンプルユニットのマクロプログラムが格納されるディレクトリに表示されたフォルダの画像に対してどのような操作をすることによって、サンプルユニットが実行されるかを説明する画面が表示されても良い。
【００８７】
以上説明した本変形例によれば、ユーザは、サンプルユニットを実行することにより、サンプルユニットの内容を認識する。また、ユーザは、サンプルユニットの説明画面を視認することにより、上記のサンプルユニットの内容を実現するためのマクロプログラムの記述を認識する。これにより、ユーザは、自身が所望する画像処理動作とサンプルとして挙げられたマクロプログラムによって実現される画像処理動作の差異に検討し、当該差異を補うために上記説明画面に表示されたマクロプログラムの記述を利用して、マクロプログラムを作成することができる。これにより、容易に、自己が所望する画像処理動作のためのマクロプログラムの記述を作成することができる。
【００８８】
なお、マクロデバッガ２０６は、作成されたマクロプログラムの記述に対してデバッグを行なう。
【００８９】
今回開示された各実施の形態およびその変形例はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【００９０】
また、各実施の形態およびその変形例は、単独でも、また必要に応じて適宜組み合わされて、実施されることが意図される。
【符号の説明】
【００９１】
１  カメラ、２  コントローラ、３  モニタ、４  コンソール、５  センサ、７  計測対象物、２２  フラッシュメモリ、２３  ＲＡＭ、２４  グラフィックコントローラ、２５  カメラ用インターフェース、２６  入力用インターフェース、２７  外部用インターフェース、２０１  読込用プログラム起動部、２０２  画像リーダ、２０３  圧縮ファイルリーダ、２０４  設定データリーダ、２０５  計測制御部、２０６  マクロデバッガ。
【図１】
2013016013.tif 000003
【図２】
2013016013.tif 000004
【図３】
2013016013.tif 000005
【図４】
2013016013.tif 000006
【図５】
2013016013.tif 000007
【図６】
2013016013.tif 000008
【図７】
2013016013.tif 000009
【図８】
2013016013.tif 000010
【図９】
2013016013.tif 000011
【図１０】
2013016013.tif 000012
【図１１】
2013016013.tif 000013
【図１２】
2013016013.tif 000014
【図１３】
2013016013.tif 000015
【図１４】
2013016013.tif 000016
【図１５】
2013016013.tif 000017
【図１６】
2013016013.tif 000018
【図１７】
2013016013.tif 000019
【図１８】
2013016013.tif 000020
【図１９】
2013016013.tif 000021
【図２０】
2013016013.tif 000022
【図２１】
2013016013.tif 000023
【図２２】
2013016013.tif 000024
【図２３】
2013016013.tif 000025