(57)【要約】【課題】  モジュールの調整を行う場合、その調整の都度、各処理において計測した結果画像を確認することができず、開発者が負荷の大きい作業を行わなければならないといった問題がある。【解決手段】  ユーザからの操作でモジュールが選択されることにより、当該モジュールに紐づいた処理結果テーブル４１８のレコードを取得し、取得したレコードに格納された識別箇所１２０３と識別結果１２０４を処理画像と共に表示することができるので、画像処理を行うためのプログラム作成の支援を実現し得ることが可能となる。【選択図】  図１１
2011186650.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに画像処理を行わせるためのアプリケーションプログラムを実行し、処理の結果画像を表示する情報処理装置であって、
前記アプリケーションプログラムを構成する１つ又は複数の処理アイテムと、前記処理アイテムを特定する処理アイテム特定情報とを対応づけて記憶する処理アイテム特定情報記憶手段と、
前記アプリケーションプログラムを実行する実行手段と、
前記実行手段によって処理された処理画像を記憶する処理画像記憶手段と、
前記処理アイテム特定情報と、前記アプリケーションプログラムの実行結果を示す、前記処理アイテムの識別箇所と識別内容を少なくとも含む識別結果情報と、前記処理画像に対応づけられた処理画像特定情報とを対応づけて記憶する処理結果情報記憶手段と、
前記処理アイテムのうち、前記アプリケーションプログラムの処理途中結果を表示する処理アイテムの指定を受け付ける指定受付手段と、
前記指定受付手段で指定を受け付けた処理アイテムに対応する前記処理アイテム特定情報を前記処理アイテム特定情報記憶手段から取得する処理アイテム特定情報取得手段と、
前記処理アイテム特定情報取得手段で取得された処理アイテム特定情報と、前記処理結果情報記憶手段で記憶された前記処理画像特定情報から、前記処理結果情報記憶手段で記憶された前記識別結果情報を取得する識別結果情報取得手段と、
前記識別結果情報取得手段で取得された識別結果情報から、前記処理画像記憶手段で記憶された処理画像上に識別箇所と識別内容を表示する表示手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記実行手段は、前記アプリケーションプログラムの実行中に、前記識別結果情報取得手段で取得された識別結果情報から、前記処理画像記憶手段で記憶された処理画像上に識別箇所と識別内容を表示する表示手段を更に備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記指定受付手段で指定を受け付けた処理アイテムが文字認識処理であるか否かを判断する文字認識判断手段を更に備え、
前記表示手段は、前記文字認識判断手段で文字認識処理であると判断された場合に、前記識別内容を表示することを特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
前記処理画像記憶手段は、複数枚の画像が処理された場合に処理された画像すべてを記憶することを更に備え、
前記表示手段は、表示されている処理画像とは他の処理画像と、当該他の処理画像に対応づけられた識別箇所と識別内容を表示することを特徴とする請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項５】
コンピュータに画像処理を行わせるためのアプリケーションプログラムを構成する１つ又は複数の処理アイテムと、前記処理アイテムを特定する処理アイテム特定情報とを対応づけて記憶する処理アイテム特定情報記憶装置を備え、前記アプリケーションプログラムを実行し、処理の結果画像を表示する情報処理装置により行われる情報処理方法であって、
前記アプリケーションプログラムを実行する実行ステップと、
前記実行手段によって処理された処理画像を記憶する処理画像記憶ステップと、
前記処理アイテム特定情報と、前記アプリケーションプログラムの実行結果を示す、前記処理アイテムの識別箇所と識別内容を少なくとも含む識別結果情報と、前記処理画像に対応づけられた処理画像特定情報とを対応づけて記憶する処理結果情報記憶ステップと、
前記処理アイテムのうち、前記アプリケーションプログラムの処理途中結果を表示する処理アイテムの指定を受け付ける指定受付ステップと、
前記指定受付ステップで指定を受け付けた処理アイテムに対応する前記処理アイテム特定情報を前記処理アイテム特定情報記憶装置から取得する処理アイテム特定情報取得ステップと、
前記処理アイテム特定情報取得ステップで取得された処理アイテム特定情報と、前記処理結果情報記憶ステップで記憶された前記処理画像特定情報から、前記処理結果情報記憶ステップで記憶された前記識別結果情報を取得する識別結果情報取得ステップと、
前記識別結果情報取得ステップで取得された識別結果情報から、前記処理画像記憶ステップで記憶された処理画像上に識別箇所と識別内容を表示する表示ステップと、
を備えることを特徴とする情報処理方法。
【請求項６】
コンピュータに画像処理を行わせるためのアプリケーションプログラムを構成する１つ又は複数の処理アイテムと、前記処理アイテムを特定する処理アイテム特定情報とを対応づけて記憶する処理アイテム特定情報記憶装置を備え、前記アプリケーションプログラムを実行し、処理の結果画像を表示する情報処理装置として機能させるためのコンピュータプログラムであって、
前記コンピュータを、
前記アプリケーションプログラムを実行する実行手段と、
前記実行手段によって処理された処理画像を記憶する処理画像記憶手段と、
前記処理アイテム特定情報と、前記アプリケーションプログラムの実行結果を示す、前記処理アイテムの識別箇所と識別内容を少なくとも含む識別結果情報と、前記処理画像に対応づけられた処理画像特定情報とを対応づけて記憶する処理結果情報記憶手段と、
前記処理アイテムのうち、前記アプリケーションプログラムの処理途中結果を表示する処理アイテムの指定を受け付ける指定受付手段と、
前記指定受付手段で指定を受け付けた処理アイテムに対応する前記処理アイテム特定情報を前記処理アイテム特定情報記憶装置から取得する処理アイテム特定情報取得手段と、
前記処理アイテム特定情報取得手段で取得された処理アイテム特定情報と、前記処理結果情報記憶手段で記憶された前記処理画像特定情報から、前記処理結果情報記憶手段で記憶された前記識別結果情報を取得する識別結果情報取得手段と、
前記識別結果情報取得手段で取得された識別結果情報から、前記処理画像記憶手段で記憶された処理画像上に識別箇所と識別内容を表示する表示手段
として機能させるためのコンピュータプログラム。
【請求項７】
請求項６に記載のコンピュータプログラムを格納することを特徴とするコンピュータで読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像の処理を行う情報処理装置、情報処理方法、コンピュータプログラム、及びコンピュータプログラムを記録した記録媒体に関し、各画像処理結果を、各画像処理の内容を識別する画像と共に表示する情報処理装置、情報処理方法、コンピュータプログラム、及びコンピュータプログラムを記録した記録媒体に関する。
【背景技術】
【０００２】
従来、例えば、チップマウンターにおける基板や部品の位置決めや、出来上がった製品の検査などを目的として、カメラで撮影した検査対象の画像データを、一定のロジック（処理フロー）で画像処理する画像処理装置が広く用いられている。
【０００３】
このような用途の画像処理装置としては、例えば、予め決められた画像処理のロジックを搭載した汎用タイプの画像処理装置や、ユーザのニーズに合致するロジックをユーザ自身が構築することが可能な専用タイプの画像処理装置がある。
【０００４】
ここで、汎用タイプの画像処理装置は、画像処理のロジックを新規に構築する必要がないため、実際の製造工程等への導入に際してユーザの労力はかからないが、ユーザのニーズを完全に満たすロジックであることは少ない。一方、専用タイプの画像処理装置は、ユーザのニーズを完全に満たす画像処理のロジックを構築することが可能であるが、そのために画像処理のロジックを都度開発する必要があるため、多大な開発労力と開発期間、更には多大なコストがかかるものであった。
【０００５】
そこで、従来、例えば下記の特許文献１に示すようなロジックの開発を効率化する技術が提案されている。具体的に、特許文献１では、ロジックを開発するコンピュータに予め複数の画像処理に係るモジュールを登録しておき、開発者が使用者のニーズに合致するモジュールを選択し、選択したモジュールに必要なパラメータを設定して、ソースコード化した上でオブジェクトコードを作成することにより、ロジックの開発を効率化するものである。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−２９６１１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、このようなモジュールのパラメータの再設定を行う場合、上述した特許文献１の技術では、処理手順が決定され、その処理手順に基づき実行された結果、一連の各処理の結果を確認することができないといった問題がある。
【０００８】
本発明は、処理実行後、処理手順が決定されたモジュールに対応した処理結果テーブルを作成し、ユーザからの操作によって各モジュールを選択することにより、処理結果テーブルから各処理でなされた結果画像と、識別内容とを合わせて表示させる仕組みを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の情報処理装置は、コンピュータに画像処理を行わせるためのアプリケーションプログラムを実行し、処理の結果画像を表示する情報処理装置であって、前記アプリケーションプログラムを構成する１つ又は複数の処理アイテムと、前記処理アイテムを特定する処理アイテム特定情報とを対応づけて記憶する処理アイテム特定情報記憶手段と、前記アプリケーションプログラムを実行する実行手段と、前記実行手段によって処理された処理画像を記憶する処理画像記憶手段と、前記処理アイテム特定情報と、前記アプリケーションプログラムの実行結果を示す、前記処理アイテムの識別箇所と識別内容を少なくとも含む識別結果情報と、前記処理画像に対応づけられた処理画像特定情報とを対応づけて記憶する処理結果情報記憶手段と、前記処理アイテムのうち、前記アプリケーションプログラムの処理途中結果を表示する処理アイテムの指定を受け付ける指定受付手段と、前記指定受付手段で指定を受け付けた処理アイテムに対応する前記処理アイテム特定情報を前記処理アイテム特定情報記憶手段から取得する処理アイテム特定情報取得手段と、前記処理アイテム特定情報取得手段で取得された処理アイテム特定情報と、前記処理結果情報記憶手段で記憶された前記処理画像特定情報から、前記処理結果情報記憶手段で記憶された前記識別結果情報を取得する識別結果情報取得手段と、前記識別結果情報取得手段で取得された識別結果情報から、前記処理画像記憶手段で記憶された処理画像上に識別箇所と識別内容を表示する表示手段とを備えることを特徴とする。
【００１０】
本発明の情報処理方法は、コンピュータに画像処理を行わせるためのアプリケーションプログラムを構成する１つ又は複数の処理アイテムと、前記処理アイテムを特定する処理アイテム特定情報とを対応づけて記憶する処理アイテム特定情報記憶装置を備え、前記アプリケーションプログラムを実行し、処理の結果画像を表示する情報処理装置により行われる情報処理方法であって、前記アプリケーションプログラムを実行する実行ステップと、前記実行手段によって処理された処理画像を記憶する処理画像記憶ステップと、前記処理アイテム特定情報と、前記アプリケーションプログラムの実行結果を示す、前記処理アイテムの識別箇所と識別内容を少なくとも含む識別結果情報と、前記処理画像に対応づけられた処理画像特定情報とを対応づけて記憶する処理結果情報記憶ステップと、前記処理アイテムのうち、前記アプリケーションプログラムの処理途中結果を表示する処理アイテムの指定を受け付ける指定受付ステップと、前記指定受付ステップで指定を受け付けた処理アイテムに対応する前記処理アイテム特定情報を前記処理アイテム特定情報記憶装置から取得する処理アイテム特定情報取得ステップと、前記処理アイテム特定情報取得ステップで取得された処理アイテム特定情報と、前記処理結果情報記憶ステップで記憶された前記処理画像特定情報から、前記処理結果情報記憶ステップで記憶された前記識別結果情報を取得する識別結果情報取得ステップと、前記識別結果情報取得ステップで取得された識別結果情報から、前記処理画像記憶ステップで記憶された処理画像上に識別箇所と識別内容を表示する表示ステップとを備えることを特徴とする
【００１１】
本発明のコンピュータプログラムは、コンピュータに画像処理を行わせるためのアプリケーションプログラムを構成する１つ又は複数の処理アイテムと、前記処理アイテムを特定する処理アイテム特定情報とを対応づけて記憶する処理アイテム特定情報記憶装置を備え、前記アプリケーションプログラムを実行し、処理の結果画像を表示する情報処理装置として機能させるためのコンピュータプログラムであって、前記コンピュータを、前記アプリケーションプログラムを実行する実行手段と、前記実行手段によって処理された処理画像を記憶する処理画像記憶手段と、前記処理アイテム特定情報と、前記アプリケーションプログラムの実行結果を示す、前記処理アイテムの識別箇所と識別内容を少なくとも含む識別結果情報と、前記処理画像に対応づけられた処理画像特定情報とを対応づけて記憶する処理結果情報記憶手段と、前記処理アイテムのうち、前記アプリケーションプログラムの処理途中結果を表示する処理アイテムの指定を受け付ける指定受付手段と、前記指定受付手段で指定を受け付けた処理アイテムに対応する前記処理アイテム特定情報を前記処理アイテム特定情報記憶装置から取得する処理アイテム特定情報取得手段と、前記処理アイテム特定情報取得手段で取得された処理アイテム特定情報と、前記処理結果情報記憶手段で記憶された前記処理画像特定情報から、前記処理結果情報記憶手段で記憶された前記識別結果情報を取得する識別結果情報取得手段と、前記識別結果情報取得手段で取得された識別結果情報から、前記処理画像記憶手段で記憶された処理画像上に識別箇所と識別内容を表示する表示手段として機能させることを特徴とする。
【００１２】
本発明のコンピュータで読み取り可能な記録媒体は、請求項６に記載のコンピュータプログラムを格納することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、画像処理を行うためのプログラム作成の支援を実現し得る情報処理装置、情報処理方法、コンピュータプログラム、及びコンピュータプログラムを記録した記録媒体を提供することが可能となる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態に係る画像処理システムの概略構成の一例を示す模式図である。
【図２】図１に示す情報処理装置１１０の内部のハードウェア構成の一例を示す模式図である。
【図３】図２に示す画像入力コントローラ１１５ｆのハードウェア構成の一例を示す模式図である。
【図４】図１に示す情報処理装置１１０の機能構成の一例を示す模式図である。
【図５】図４に示すモジュール・ソースコードマスタテーブル４１１の一例を示す模式図である。
【図６】図４に示す処理フロー・入出力パラメータテーブル４１２の一例を示す模式図である。
【図７】図１に示す情報処理装置１１０による制御方法の処理手順の一例を示す模式図である。
【図８】画像処理フロー構築画面の一例を示す模式図である。
【図９】図７のステップＳ１１７におけるモジュールの「実行処理」の詳細な処理手順の一例を示すフローチャートである。
【図１０】反復処理中の経過画像を表示するウィンドウの一例を示す。
【図１１】ユーザからの操作により選択されたモジュールの処理結果の一例を示す模式図である。
【図１２】図４に示す処理結果テーブル４１８の一例を示す模式図である。
【図１３】図９のステップＳ２０２におけるモジュールの「処理実行」の詳細な処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、図面を参照しながら、本発明の実施の形態について説明する。図１は、本発明の実施の形態に係る画像処理システム１００の概略構成の一例を示す模式図である。図１に示す通り、画像処理システム１００は、情報処理装置１１０と、入力装置１２０と、ディスプレイ装置１３０と、カメラ１４０と、照明装置コントローラ１５０と、照明装置１６０と、外部機器コントローラ１７０と、検査対象１８１が載置されたステージ１８０を有して構成されている。
【００１６】
情報処理装置１１０は、画像処理システム１００における動作を統括的に制御する装置である。ここで、本実施形態においては、情報処理装置１１０は、実際の製造工程に導入される画像処理装置で動作する画像処理アプリケーションプログラムの開発を支援する装置として適用した例を説明するが、本発明においてはこれに限定されるわけではなく、たとえば、実際の製造工程に導入されている画像処理装置として適用する形態も本発明に含まれる。
【００１７】
情報処理装置１１０は、所定のケーブル等を介して、検査対象１８１の撮像（撮影）を行うカメラ１４０と通信可能に構成されている。また、情報処理装置１１０は、所定のケーブル等を介して、照明装置１６０の制御を行う照明装置コントローラ１５０と通信可能に構成されている。また、情報処理装置１１０は、所定のケーブル等を介して、ステージ１８０を制御するプログラマブルコントローラ（ＰＣＬ）などの外部機器コントローラ１７０と、あらかじめ設定した通信が可能に構成されている。さらに、情報処理装置１１０は、所定のケーブル等を介して、それぞれ、入力装置１２０およびディスプレイ装置１３０と通信可能に構成されている。すなわち、情報処理装置１１０は、所定のケーブル等を介して接続された、入力装置１２０、ディスプレイ装置１３０、カメラ１４０、照明装置コントローラ１５０および外部機器コントローラ１７０を制御することによって、画像処理システム１００における動作を統括的に制御する。
【００１８】
入力装置１２０は、例えばユーザが情報処理装置１１０に対して各種の指示の入力を行う際にユーザによって操作されるものであり、ユーザからの入力指示操作に従って、当該入力指示を情報処理装置１１０に対して入力するものである。この入力装置１２０は、例えば、キーボード（ＫＢ）やポインティングデバイス等で構成されている。
【００１９】
ディスプレイ装置１３０は、情報処理装置１１０の制御に従って、各種の画像や各種の情報などを表示画面に表示する。
【００２０】
カメラ１４０は、情報処理装置１１０の制御に従って、ステージ１８０上に載置された検査対象１８１の撮影（撮像）を行い、撮影により得られた画像データを所定のケーブル等を介して情報処理装置１１０に送信する。
【００２１】
照明装置コントローラ１５０は、情報処理装置１１０の制御に従って、照明装置１６０の照明を制御する。照明装置１６０は、照明装置コントローラ１５０の制御に基づき、検査対象１８１における検査内容に応じて、当該検査対象１８１に対する照明の点灯／非点灯の切り替えや明るさの調整等を行う。
【００２２】
外部機器コントローラ１７０は、情報処理装置１１０の制御に従って、ステージ１８０を制御する。ステージ１８０は、外部機器コントローラ１７０の制御に基づき、載置された検査対象１８１を目的の位置に移動させたり、検査対象１８１の搬入や搬出をしたりする。以上が画像処理システムの構成の一例の説明である。
【００２３】
次に、情報処理装置１１０のハードウェア構成について説明する。図２は、図１に示す情報処理装置１１０のハードウェア構成の一例を示す模式図である。図２には、情報処理装置１１０の内部構成に加えて、当該情報処理装置１１０と接続される各種装置についても記載している。
【００２４】
情報処理装置１１０は、図２に示すように、ＣＰＵ１１１と、ＲＡＭ１１２と、ＲＯＭ１１３と、システムバス１１４と、各種のコントローラ１１５（１１５ａ〜１１５ｇ）と、外部メモリ１１６と、を備えている。各種のコントローラ１１５として、入力コントローラ１１５ａ、ビデオコントローラ１１５ｂ、メモリコントローラ１１５ｃ、通信Ｉ／Ｆコントローラ１１５ｄ、１１５ｅ、及び１１５ｇ、画像入力コントローラ１１５ｆが構成されている。ＣＰＵ１１１は、ＲＯＭ１１３或いは外部メモリ１１６に記憶されたプログラム等に基づいてシステムバス１１４に接続された各デバイスを制御して、情報処理装置１１０における動作を統括的に制御する。ＲＡＭ１１２は、ＣＰＵ１１１の主メモリ、ワークエリア等として機能する。ＣＰＵ１１１は、処理の実行に際して、必要なプログラム等をＲＡＭ１１２にロードして、プログラムを実行することにより、情報処理装置１１０における各種の動作を実現する。ＲＯＭ１１３には、ＣＰＵ１１１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ
／ Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）等が記憶されている。
【００２５】
システムバス１１４は、ＣＰＵ１１１、ＲＡＭ１１２、ＲＯＭ１１３、入力コントローラ１１５ａ、ビデオコントローラ１１５ｂ、メモリコントローラ１１５ｃ、通信Ｉ／Ｆコントローラ１１５ｄ及び１１５ｅ、１１５ｇ、画像入力コントローラ１１５ｆを、相互に通信可能に接続する。
【００２６】
入力コントローラ１１５ａは、キーボード（ＫＢ）やポインティングデバイスなどからなる入力装置１２０からの入力を制御する。ビデオコントローラ１１５ｂは、表示装置であるディスプレイ装置１３０への表示を制御する。メモリコントローラ１１５ｃは、外部メモリ１１６へのアクセスを制御する。ここで、外部メモリ１１６は、例えばハードディスク（ＨＤ）やフレキシブルディスク（ＦＤ）等で構成され、ブートプログラムや、各種のアプリケーションプログラム、編集ファイル、各種のデータや各種の情報等を記憶する。また、外部メモリ１１６は、オペレーティングシステム（以下、「ＯＳ」とする）や、ＣＰＵ１１１に後述する各種の処理を実行させるためのプログラム、当該プログラムの制御に従った処理を行う際に使用する各種のテーブルや各種の検査結果情報等も記憶する。
【００２７】
通信Ｉ／Ｆコントローラ１１５ｄは、外部機器コントローラ１７０との通信を制御する。また、通信Ｉ／Ｆコントローラ１１５ｅは、照明装置コントローラ１５０との通信を制御する。画像入力コントローラ１１５ｆは、カメラ１４０と通信を行って、カメラ１４０から画像データの受信が可能に構成されている。ここで、画像入力コントローラ１１５ｆは、コントローラ上で演算処理が可能なハードウェアを搭載しているものであってもよい。なお、本実施形態では、カメラ１４０からの画像データの入力を前提に説明を行うが、画像ファイルを読み込んで入力する形態であってもよい。さらに、通信Ｉ／Ｆコントローラ１１５ｇは、ローカルエリアネットワーク（ＬＡＮ）１９０等のネットワークに接続され、当該ネットワークに接続されている各種装置との通信を制御する。
【００２８】
次に、図３を用いて、画像入力コントローラ１１５ｆのハードウェア構成について説明する。図３に示す通り、画像入力コントローラ１１５ｆは、ＣＰＵ（演算チップ）３０１、メモリコントローラ３０２、入力コントローラ３０３、オンボードメモリ３０４を備えている。
【００２９】
ＣＰＵ（演算チップ）３０１は、後述する各種の画像処理を実行する。メモリコントローラ３０２はＣＰＵ（演算チップ）３０１の制御に従って、オンボードメモリ３０４への各種データの入出力を制御する。入力コントローラ３０３はカメラ１４０からの画像データの入力を制御する。オンボードメモリ３０４はＣＰＵ（演算チップ）３０１の主記憶として機能する。以上が、画像入力コントローラ１１５ｆのハードウェア構成の説明である。
【００３０】
次に、情報処理装置１１０の機能構成の一例について説明する。図４は、図１に示す情報処理装置１１０の機能構成の一例を示す模式図である。
【００３１】
情報処理装置１１０には、図４に示すように、テーブル記憶部４１０、フロー作成部４２０、ソースコード変換部４３０、コンパイル部４４０、（検証）実行部４５０、データ保存部４６０、及び、データ入力・出力部４７０の各機能構成が構成される。また、テーブル記憶部４１０には、モジュール・ソースコードマスタテーブル４１１、処理フロー・入出力パラメータテーブル４１２、ソースコードテーブル４１３、オブジェクトコードテーブル４１４、及びプロジェクトファイルテーブル４１５が記憶されている。また、条件式テーブル４１６、ノード処理フラグテーブル４１７、及び処理結果テーブル４１８も記憶されている。
【００３２】
ここで、本実施形態においては、図４のテーブル記憶部４１０が、例えば図２に示す外部メモリ１１６に構成される（一旦、ＲＡＭ１１２に構成された後に外部メモリ１１６に構成される場合も含む）。また、図４のフロー作成部４２０、ソースコード変換部４３０、コンパイル部４４０、（検証）実行部４５０、データ保存部４６０及びデータ入力・出力部４７０が、例えば図２に示すＣＰＵ１１１と、ＲＯＭ１１３或いは外部メモリ１１６に記憶されているプログラムと、から構成される。
【００３３】
図５を参照して、図４のテーブル記憶部４１０に記憶されるモジュール・ソースコードマスタテーブル４１１について説明する。図５はモジュール・ソースコードマスタテーブル４１１の構成の一例を示す模式図である。
【００３４】
図５に示すように、モジュール・ソースコードマスタテーブル４１１には、インデックス（Ｉｎｄｅｘ）５０１ごとに、画像処理に係る処理アイテム５０２と、各処理アイテムに対応するソースコード５０３、またその処理アイテムを実現するためのモジュールに対する初期値５０４と処理主体５０５が関連付けられている。このソースコードは、ソースコード変換部４３０で処理対象のモジュールをソースコードに変換する際に用いられるものである。
【００３５】
次に、図６を参照して、図４のテーブル記憶部４１０に記憶される処理フロー・入出力パラメータテーブル４１２について説明する。図６は、図４に示す処理フロー・入出力パラメータテーブル４１２の構成の一例を示す模式図である。図６に示すように、処理フロー・入出力パラメータテーブル４１２は、インデックス（Ｉｎｄｅｘ）６０１ごとに、画像処理に係るモジュール６０３と、各モジュール６０３の順序６０２と、各モジュール６０３のフロー登録名６０４と、各モジュール６０３における入力パラメータ６０５及び出力パラメータ６０６が関連付けられている。入力パラメータ６０５は、各モジュールで使用する各種のデータが格納される画像バッファや記憶領域等を示す。出力パラメータ６０６は、各モジュールが実行された際の結果画像バッファや各種の処理に用いた閾値等を記憶する記憶領域を示す。次ステップ６０７は、次に処理されるべきステップのインデックス（Ｉｎｄｅｘ）６０１を示す。なお、この次ステップ６０７は、複数のインデックス（Ｉｎｄｅｘ）を持つこともある。また、分岐参照６０８は、モジュール６０３に「反復処理」モジュール、「条件分岐処理」モジュールを設定した際に、各条件（ノード）が次にどのステップを処理するかを指定する条件式テーブルを示す。さらに、処理主体６０９は、各モジュールにおいて処理をＣＰＵ１１１と、画像入力コントローラ１１５ｆのＣＰＵ（演算チップ）３０１のどちらで行うかを示す項目である。
【００３６】
なお、図６に示す処理フロー・入出力パラメータテーブル４１２におけるインデックス（Ｉｎｄｅｘ）６０１と、図４に示すモジュール・ソースコードマスタテーブル４１１におけるインデックス（Ｉｎｄｅｘ）とは特に対応させていないが、相互に対応させて各テーブルを作成する形態であってもよい。なお、処理フロー・入出力パラメータテーブルＴ６００において、インデックス（Ｉｎｄｅｘ）６０１の２および３は反復処理、処理フロー・入出力パラメータテーブルＴ６０１のインデックス（Ｉｎｄｅｘ）６０１の２から４は条件分岐処理の一例である。
【００３７】
ソースコードテーブル４１３は、処理フロー・入出力パラメータテーブル４１２に記憶されているモジュール６０３について、ソースコード変換部４３０でモジュール・ソースコードマスタテーブル４１１を用いてソースコードに変換し登録している、全てのモジュール或いは一部のモジュールにおけるソースコードを記憶する。
【００３８】
オブジェクトコードテーブル４１４は、ソースコードテーブル４１３に記憶されているソースコードをコンパイル部４４０で変換した、実行可能なモジュールであるオブジェクトコードを記憶する。プロジェクトファイルテーブル４１５は、画像処理に係る初期設定パラメータや、処理フローシーケンス、ソースコード、入出力パラメータ等を記憶する。また条件式テーブル４１６は、「条件分岐処理」モジュールが設定された際の、条件式等を記憶し、ノード処理フラグテーブル４１７は、「並列分岐処理」モジュールが設定された際の、呼び出し側のノード名等を記憶する。
【００３９】
図１２を参照して、図４のテーブル記憶部４１０に記憶される処理結果テーブル４１８について説明する。図１２は処理結果テーブル４１８の構成の一例を示す模式図である。
【００４０】
図１２に示すように、処理結果テーブル４１８には、処理フロー・入出力パラメータテーブル４１２におけるインデックス（Ｉｎｄｅｘ）６０１と紐づいたインデックス（Ｉｎｄｅｘ）１２０１、処理結果ごとに割り振られる識別ＩＤ１２０２、処理対象の識別箇所を座標で示す識別箇所１２０３、識別箇所１２０３の処理結果を示す識別結果１２０４、処理対象である画像名を示す処理画像名１２０５が関連付けられている。尚、識別箇所１２０３は、処理画像の左上頂点を（０，０）とする座標から構成され、識別箇所の左上の座標と、識別箇所の右下の座標を組み合わせて格納される。識別箇所は矩形であるので、識別箇所を特定できるのであれば、これに限らない。
【００４１】
続いて、図４のフロー作成部４２０、ソースコード変換部４３０、コンパイル部４４０、実行部４５０、データ保存部４６０、及び、データ入力・出力部４７０について説明する。
【００４２】
フロー作成部４２０は、モジュール・ソースコードマスタテーブル４１１に含まれているモジュールの処理シーケンスを管理する処理フロー・入出力パラメータテーブル４１２の作成等と、処理フロー描画領域（後述する図８の８０２）へのモジュールの描画を行う機能を有する。
【００４３】
ソースコード変換部４３０は、フロー作成部４２０により作成された処理フロー・入出力パラメータテーブル４１２に記憶されている各モジュールの処理データをモジュール・ソースコードマスタテーブル４１１と照合して、各モジュールをソースコードに変換し、ソースコードテーブル４１３に記憶する機能を有する。
【００４４】
なお、図５及び図６に示すテーブルのモジュールには、画像に対する処理だけでなく、画像を取得するための事前処理や、処理結果を出力するための事後処理を含む外部機器に対する処理などを含めても勿論構わない。例えば、カメラ１４０の撮像条件を設定する制御指令や、照明装置１６０を制御するための照明装置コントローラ１５０への制御指令、或いは、ステージの移動などを制御するための外部機器コントローラ１７０への制御指令、ＬＡＮ上に接続されたＰＣにデータを送信する等の制御指令を行うものであってもよい。
【００４５】
コンパイル部４４０は、ソースコードテーブル４１３に記憶されているソースコードから実行可能なオブジェクトコードを生成し、生成したオブジェクトコードをオブジェクトコードテーブル４１４に記憶する機能を有する。
【００４６】
なお、コンパイル部４４０が行うコンパイルには、デバッグ・コンパイルとリリース・コンパイルの２つのタイプがある。ここで、本実施形態においては、処理フロー作成中には、ソースコードレベルでのステップ実行を可能とするデバッグ・コンパイルを行い、データ保存時には、オンラインで利用可能なファイルを生成するリリース・コンパイルを行う。この際、デバッグ・コンパイル及びリリース・コンパイルの両者は、同じ変換手法で生成されたソースコードを参照するものとする。
【００４７】
（検証）実行部４５０は、コンパイル部４４０により作成されたオブジェクトコードテーブル４１４に記憶されているオブジェクトコードを実行し、結果画像表示領域（後述する図８の８０３）と処理フロー・入出力パラメータテーブル４１２を更新する機能を有する。
【００４８】
データ保存部４６０は、例えば、ＲＡＭ１１２にあるソースコードテーブル４１３、オブジェクトコードテーブル４１４及びプロジェクトファイルテーブル４１５を外部メモリ１１６に出力して、データの保存処理を行う。
【００４９】
データ入力・出力部４７０は、各モジュールで使用する入出力パラメータを管理する機能を有する。
【００５０】
次に、図７を参照して本実施形態における全体的な処理について説明する。図７は、情報処理装置１１０のＣＰＵ１１１によって行われる、「プロジェクト構築処理」の処理手順の一例を示すフローチャートである。本処理をＣＰＵ１１１に実行させるためのプログラムは外部メモリ１１６に記憶されており、本処理の実行要求を入力装置１２０より受け付けた場合に、ＣＰＵ１１１は、当該プログラムをＲＡＭ１１２にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。
【００５１】
まず、ステップＳ１０１において、情報処理装置１１０のＣＰＵ１１１は、例えば、入力装置１２０からの入力指示に基づいて、図８に示す画像処理システムの開発を行うための画像処理プロジェクト開発画面８００をディスプレイ装置１３０に表示する処理を行う。
【００５２】
図８は、画像処理プロジェクト開発画面８００の一例を示す模式図である。図８に示す画像処理プロジェクト開発画面８００には、利用可能な処理ユニット（即ち、画像処理に係る各モジュール）を表示するツールボックス８０１と、画像処理の実行順序（即ち、各モジュールの実行順序）をフローチャートで描画する処理フロー描画領域８０２と、各画像処理（即ち、各モジュールの処理）で実行した結果画像を表示する結果画像表示領域８０３と、ツールバー８０７と、処理実行結果を表示する処理結果表示領域８０８と、処理された画像が複数枚あった場合に画像の選択を行う画像選択領域８０９と、画像選択領域８０９に備えられた前へボタン８１０と、次へボタン８１１や、画像処理プログラムの開発を終了する際に操作される不図示の閉じるボタン等も設けられている。また、図８に示す画像処理プロジェクト開発画面８００には、例えば、新規モジュールの登録時もしくはパラメータの編集時等に、処理フロー描画領域８０２のフローチャートの各ステップ（即ち、各モジュール）で利用するパラメータを設定するパラメータ編集画面８０４と、そのパラメータの設定で実行された結果画像を表示する結果画像表示領域８０３が表示される。図８の、プロジェクト構築画面の例では、分岐処理によるフローを制御するモジュールも含んでいる。ここで、結果画像表示領域８０３は、処理フロー描画領域８０２の各モジュールの結果画像を表示する領域である。これは、プレビュー画像や縮小画像であってもよい。条件分岐処理の場合には、条件を満たしたノード（枝）の画像を表示し、条件を満たさないノードについては処理が行われないのでブラックアウトした画像を表示する。本発明では、結果画像表示領域８０３にブラックアウトした画像を表示するが、一つ前のモジュールで処理された結果画像を表示してもよい。このとき、すべての処理フローの結果が結果画像表示領域８０３に収まらない場合は、水平・垂直方向のスクロールバーを用いて表示領域を変更することとしてもよい。
【００５３】
また、処理結果表示領域８０８は、処理フロー描画領域８０２の各モジュールのうちの１つをユーザからの操作により選択された場合、当該モジュールの結果画像を表示する領域である。ユーザからの操作により選択されたモジュールが、条件分岐処理の場合には、処理結果表示領域８０８にブラックアウトした画像を表示する。本発明では、処理結果表示領域８０８にブラックアウトした画像を表示するが、一つ前のモジュールで処理された結果画像を表示してもよい。以上が、画像処理プロジェクト開発画面の構成の一例の説明である。
【００５４】
図７の説明に戻る。ステップＳ１０１の処理が終了すると、ＣＰＵ１１１は処理をステップＳ１０２に進める。ステップＳ１０２では、情報処理装置１１０のＣＰＵ１１１は、入力装置１２０からの入力指示に基づいて、ステップＳ１０１で表示された画像処理プロジェクト開発画面８００を用いて新規に画像処理プログラムを開発するか否かを判断する。
【００５５】
ステップＳ１０２の判断の結果、新規に画像処理プログラムを開発しない場合、即ち既に作成している画像処理フローの編集を行う場合には（ステップＳ１０２／ＮＯ）、ステップＳ１０３に進む。
【００５６】
ステップＳ１０３に進むと、情報処理装置１１０のＣＰＵ１１１は、外部メモリ１１６に保存されているプロジェクトファイルテーブル４１５を読み出して、これをＲＡＭ１１２に記憶する。また、事前設定により
【００５７】
ステップＳ１０３の処理が終了後、或いは、ステップＳ１０２で新規に画像処理プログラムを開発すると判断された場合には（ステップＳ１０２／ＹＥＳ）、ＣＰＵ１１１は処理をステップＳ１０４に進める。
【００５８】
ステップＳ１０４では、情報処理装置１１０のＣＰＵ１１１は、入力装置１２０からの入力指示（具体的には、ステップＳ１０１で表示された画像処理プロジェクト開発画面８００に対する入力指示）があったか否かを判断する。
【００５９】
ステップＳ１０４の判断の結果、入力装置１２０からの入力指示を受け付けていないと判断した場合には（ステップＳ１０４／ＮＯ）、入力装置１２０からの入力指示があるまで、ステップＳ１０４で待機する。一方、ステップＳ１０４の判断の結果、入力装置１２０からの入力指示を受け付けた（入力あり）と判断した場合には（ステップＳ１０４／ＹＥＳ）、処理をステップＳ１０５に進める。
【００６０】
ステップＳ１０５に進むと、情報処理装置１１０のＣＰＵ１１１は、入力装置１２０から受け付けた入力指示に基づいて、選択された処理内容の判定処理を行う。このステップＳ１０５で判定される処理内容としては、本例では、「新規追加処理」、「変更処理」、「移動処理」、「挿入処理」、「削除処理」である。なお、ここで挙げた処理内容は一例を示したものであり、その他の処理内容をステップＳ１０５で判定することも勿論可能である。
【００６１】
続いて、ステップＳ１０６において、情報処理装置１１０のＣＰＵ１１１は、ステップＳ１０５で判定した処理内容を実行する。例えば、「挿入処理」であれば指定されたモジュール間に、新規モジュールを挿入する。また、「削除処理」であれば、指定されたモジュールを削除する。なお、ここで挙げた処理内容は一例を示したものである。
【００６２】
例えば、処理フロー描画領域８０２にモジュールが何もない状態でツールボックス８０１からユーザの操作により選択された「二値化」モジュールが処理フロー描画領域８０２にドラッグ＆ドロップされた場合、「新規追加処理」とみなし、「二値化」の設定内容を設定できる設定プロパティ（不図示）を表示し、入力パラメータ６０５と出力パラメータ６０６の入力を受け付ける。ユーザからの操作により入力された設定内容と、当該モジュールに対応するモジュール・ソースコードマスタテーブル４１１の該当レコードと、追加されたモジュールの位置順序に基づいて、処理フロー・入出力パラメータテーブル４１２に新規レコードを追加する。また、処理フロー描画領域８０２に配置された各モジュールと処理フロー・入出力パラメータテーブル４１２に格納された各レコードはそれぞれ対応づいて記憶されている。
【００６３】
ステップＳ１１６では、情報処理装置１１０のＣＰＵ１１１は、ユーザからの操作によって実行処理ボタンが押下されたか否かを判断する。実行処理ボタンが押下されたと判断した場合には（ステップＳ１１６／ＹＥＳ）、ＣＰＵ１１１は、処理をステップＳ１１７に進める。
【００６４】
ステップＳ１１７では、情報処理装置１１０のＣＰＵ１１１は、処理フロー描画領域８０２に設定された「実行処理」を行う。ステップＳ１１７の実行処理の詳細については、図９を用いて後述する。そして、ステップＳ１１７の処理が終了すると、ステップＳ１０４に戻り、入力装置１２０から次の入力指示があるまで待機する。
【００６５】
一方、ステップＳ１１６の判断処理で、実行処理ボタンが押下されたと判断できない場合には（ステップＳ１１６／ＮＯ）、ＣＰＵ１１１は、処理をステップＳ１１８に進める。
【００６６】
ステップＳ１１８では、情報処理装置１１０のＣＰＵ１１１は、ユーザからの操作によって保存ボタンが押下されたか否かを判断する。保存ボタンが押下されたと判断した場合には（ステップＳ１１８／ＹＥＳ）、ＣＰＵ１１１は、処理をステップＳ１１９に進める。
【００６７】
ステップＳ１１９では、情報処理装置１１０のＣＰＵ１１１は、画像処理プロジェクト開発画面８００で設定された「保存処理」を行う。そして、ステップＳ１１９の処理が終了すると、画像処理プロジェクト開発画面８００を終了する。
【００６８】
一方、ステップＳ１１８の判断処理で、保存ボタンが押下されたと判断できない場合には（ステップＳ１１８／ＮＯ）、ステップＳ１０４に戻り、入力装置１２０から入力指示があるまで待機する。
【００６９】
次に、図９を参照して、図７のステップＳ１１７の実行処理の詳細な手順について説明する。図９は、図７のステップＳ１１７における「実行処理」の詳細な処理手順の一例を示すフローチャートである。本処理をＣＰＵ１１１に実行させるためのプログラムは外部メモリ１１６に記憶されており、本処理の実行要求を入力装置１２０より受け付けた場合に、ＣＰＵ１１１は、当該プログラムをＲＡＭ１１２にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。
【００７０】
まず、ステップＳ２０１において、ＣＰＵ１１１（例えばコンパイル部４４０）は、各処理の最終ステップのソースコード変換処理により、ソースコードテーブル４１３に記憶されたオブジェクトコードに対して、デバッグ・コンパイルを行い、オブジェクトコードテーブル４１４に記憶する。
【００７１】
ステップＳ２０２では、情報処理装置１１０のＣＰＵ１１１は、ステップＳ２０１においてデバッグ・コンパイルされたオブジェクトコードを実行する処理実行を行う。ステップＳ２０２の処理実行の詳細については、図１３を用いて後述する。その後、ステップＳ２０３に処理を進め、ステップＳ２０２で実行した各モジュールの結果を、結果画像表示領域８０３に、描画する。このとき、処理フローに反復処理が含まれている場合には、反復処理モジュールをダブルクリック、もしくはメニューから結果表示を選択されることで、図１０に一例を示す通り、各回数における経過画像ウィンドウを表示する。
【００７２】
ステップＳ２０４では、情報処理装置１１０のＣＰＵ１１１は、処理フロー描画領域８０２に配置されたモジュールのうちの１つがユーザからの操作によって選択されたか否かを判断する。選択されたと判断した場合には（ステップＳ２０４／ＹＥＳ）、ＣＰＵ１１１は、処理をステップＳ２０５に進める。
【００７３】
一方、ステップＳ２０４の判断処理で、選択されたと判断できない場合には（ステップＳ２０４／ＮＯ）、ステップＳ２０４に戻り、入力装置１２０から入力指示があるまで待機する。
【００７４】
ステップＳ２０５では、情報処理装置１１０のＣＰＵ１１１は、ステップＳ２０２において処理された処理画像のうち、最初に処理がなされた処理画像を外部メモリ１１６から取得する。処理の順番に関しては、処理順に連番で割り振られたファイル名等から判断する。処理画像は後述するステップＳ３０４において外部メモリ１１６に記憶されているものとする。尚、本実施例では便宜的に最初に処理がなされた処理画像を外部メモリ１１６から取得するが、どの処理画像から取得してもよい。
【００７５】
ステップＳ２０６では、情報処理装置１１０のＣＰＵ１１１は、ステップＳ２０４においてユーザからの操作によって選択されたモジュールを特定し、選択されたモジュールに該当するレコードを処理フロー・入出力パラメータテーブル４１２から検索し、特定する。
【００７６】
ステップＳ２０７では、情報処理装置１１０のＣＰＵ１１１は、ステップＳ２０５において取得された処理画像のファイル名と一致する処理画像名１２０５と、ステップＳ２０６において特定されたレコードのインデックス（Ｉｎｄｅｘ）６０１と一致するインデックス（Ｉｎｄｅｘ）１２０１に基づいて、該当するすべてのレコードを処理結果テーブル４１８から検索し、特定する。尚、ステップＳ２０６において選択されたモジュールがすべての処理結果を表示する処理を行うモジュールであった場合には、ステップＳ２０５において取得された処理画像のファイル名と一致するすべての処理画像名１２０５を検索し、特定する。これにより、すべての処理結果を処理結果テーブル４１８から取得することができる。
【００７７】
ステップＳ２０８では、情報処理装置１１０のＣＰＵ１１１は、ステップＳ２０７において特定されたレコードをすべて取得し、ＲＡＭ１１２に記憶する。
【００７８】
ステップＳ２０９では、情報処理装置１１０のＣＰＵ１１１は、ステップＳ２０８においてＲＡＭ１１２に記憶されたレコードの識別箇所１２０３を用いて、ステップＳ２０５又は後述するステップＳ２１５又は後述するステップＳ２１７において取得された処理画像上に処理された箇所を表示する。例えば、図１１に示す処理結果画面１１００では、マッチング箇所１１０２の部分は、ステップＳ２０９において処理された箇所を識別可能に表示したものである。
【００７９】
図１１は、処理結果画面１１００の一例を示す模式図である。図１１に示す処理結果画面１１００には、文字認識をした結果を示す文字認識箇所１１０１と、既定の画像と比較した結果を示すマッチング箇所１１０２から構成される。以上が、処理結果画面１１００の構成の一例の説明である。
【００８０】
ステップＳ２１０では、情報処理装置１１０のＣＰＵ１１１は、ステップＳ２０８においてＲＡＭ１１２に記憶されたレコードのインデックス（Ｉｎｄｅｘ）１２０１と一致するインデックス（Ｉｎｄｅｘ）６０１を処理フロー・入出力パラメータテーブル４１２から検索し、特定されたレコードのモジュール６０３に文字認識処理を含むか否かを判断する。文字認識処理を含むと判断した場合には（ステップＳ２１０／ＹＥＳ）、ＣＰＵ１１１は、処理をステップＳ２１１に進める。
【００８１】
ステップＳ２１１では、情報処理装置１１０のＣＰＵ１１１は、ステップＳ２０８においてＲＡＭ１１２に記憶されたレコードの識別結果１２０４を用いて、ステップＳ２０９において処理された箇所に、識別結果１２０４を表示させる。但し、識別結果１２０４に「ＮＵＬＬ」が格納されていた場合は何も表示しない。
【００８２】
例えば、図１１に示す処理結果画面１１００では、文字認識箇所１１０１の部分は、ステップＳ２０９及びステップＳ２１１において処理された箇所を表示したものである。ステップＳ２０９では文字ごとに処理された箇所を表示し、ステップＳ２１１ではステップＳ２０９において表示された箇所に、処理結果テーブル４１８の識別結果１２０４をそれぞれ表示する。これにより、処理フロー描画領域８０２においてユーザにより選択されたモジュールの処理結果を識別可能に表示し、更に識別結果の内容を補足表示することができる。
【００８３】
一方、ステップＳ２１０の判断処理で、文字認識処理を含むと判断できない場合には（ステップＳ２１０／ＮＯ）、ＣＰＵ１１１は、処理をステップＳ２１２に進める。
【００８４】
ステップＳ２１２では、情報処理装置１１０のＣＰＵ１１１は、ステップＳ２０９乃至ステップＳ２１１における処理結果をビデオコントローラ１１５ｂからディスプレイ装置１３０上の処理結果表示領域８０８に表示をする。
【００８５】
ステップＳ２１３では、情報処理装置１１０のＣＰＵ１１１は、ステップＳ２０２において処理された画像が複数枚存在するか否かを判断する。判断方法は、処理結果テーブル４１８に格納された処理画像名１２０５を検索し、異なるファイル名が存在していた場合には、複数枚存在すると判断する。尚、判断方法はこれに限らない。複数枚存在すると判断した場合には（ステップＳ２１３／ＹＥＳ）、ＣＰＵ１１１は、処理をステップＳ２１４に進める。
【００８６】
ステップＳ２１４では、情報処理装置１１０のＣＰＵ１１１は、画像選択領域８０９に備えられた次へボタン８１１が押下されたか否かを判断する。次へボタン８１１が押下されたと判断した場合には（ステップＳ２１４／ＹＥＳ）、ＣＰＵ１１１は、処理をステップＳ２１５に進める。但し、現在表示された画像の次に処理された画像が存在しない場合は、押下できないものとし、押下されたと判断できないものとする。
【００８７】
ステップＳ２１５では、情報処理装置１１０のＣＰＵ１１１は、処理結果表示領域８０８に現在表示された画像の次に処理された画像を取得する。画像の処理順は、ファイル名に対して処理順に連番が割り振られていれば、処理画像名１２０５から判断してもよい。画像処理順の判断方法はこれに限らない。画像の取得後、ステップＳ２０６へ処理を戻す。これにより、次の画像に対して行われた処理結果を表示させることができる。
【００８８】
一方、ステップＳ２１４の判断処理で、次へボタン８１１が押下されたと判断できない場合には（ステップＳ２１４／ＮＯ）、ＣＰＵ１１１は、処理をステップＳ２１６に進める。
【００８９】
ステップＳ２１６では、情報処理装置１１０のＣＰＵ１１１は、画像選択領域８０９に備えられた前へボタン８１０が押下されたか否かを判断する。前へボタン８１０が押下されたと判断した場合には（ステップＳ２１６／ＹＥＳ）、ＣＰＵ１１１は、処理をステップＳ２１６に進める。但し、現在表示された画像の前に処理された画像が存在しない場合は、押下できないものとし、押下されたと判断できないものとする。
【００９０】
ステップＳ２１７では、情報処理装置１１０のＣＰＵ１１１は、処理結果表示領域８０８に現在表示された画像の前に処理された画像を取得する。画像の処理順は、ファイル名に対して処理順に連番が割り振られていれば、処理画像名１２０５から判断してもよい。画像処理順の判断方法はこれに限らない。画像の取得後、ステップＳ２０６へ処理を戻す。これにより、前の画像に対して行われた処理結果を表示させることができる。
【００９１】
一方、ステップＳ２１６の判断処理で、前へボタン８１０が押下されたと判断できない場合には（ステップＳ２１６／ＮＯ）、ステップＳ１０４に戻り、入力装置１２０から入力指示があるまで待機する。以上が実行処理の詳細な説明である。
【００９２】
次に、図１３を参照して、図９のステップＳ２０２の実行処理の詳細な手順について説明する。図１３は、図９のステップＳ２０２における「実行処理」の詳細な処理手順の一例を示すフローチャートである。本処理をＣＰＵ１１１に実行させるためのプログラムは外部メモリ１１６に記憶されており、本処理の実行要求を入力装置１２０より受け付けた場合に、ＣＰＵ１１１は、当該プログラムをＲＡＭ１１２にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。
【００９３】
まず、ステップＳ３０１において、情報処理装置１１０のＣＰＵ１１１は、カメラ１４０から入力された画像を画像入力コントローラ１１５ｆからすべて取り込み、外部メモリ１１６に記憶する。尚、既に外部メモリ１１６に記憶され、用意された画像を用いてもよい。この場合、ステップＳ３０１は不要である。
【００９４】
ステップＳ３０２では、情報処理装置１１０のＣＰＵ１１１は、処理フロー描画領域８０２に配置されたモジュールのうちの１つがユーザからの操作によって選択されたか否かを判断する。選択されたと判断した場合には（ステップＳ３０２／ＹＥＳ）、ＣＰＵ１１１は、処理をステップＳ３０３に進める。
【００９５】
一方、ステップＳ３０２の判断処理で、選択されたと判断できない場合には（ステップＳ３０２／ＮＯ）、処理をステップＳ３１５に進める。
【００９６】
ステップＳ３０３では、情報処理装置１１０のＣＰＵ１１１は、ステップＳ２０１においてオブジェクトコードテーブル４１４に記憶されたオブジェクトコードを実行し、ステップＳ３０１において外部メモリ１１６に記憶された画像に対してソースコードに記述された処理を行う。処理を行う画像の順番は特に問わない。但し、処理順が識別できるように、ファイル名に対して処理順に連番を割り振る等の処理を行う必要がある。処理順の識別方法はこれに限らない。
【００９７】
ステップＳ３０４では、情報処理装置１１０のＣＰＵ１１１は、ステップＳ３０３において実行された結果を処理結果テーブル４１８に記憶する。インデックス（Ｉｎｄｅｘ）１２０１には、処理を行ったモジュールのインデックス（Ｉｎｄｅｘ）６０１を格納し、識別ＩＤ１２０２には、モジュールごとに各処理を識別する番号を割振り、識別箇所１２０３には、ステップＳ３０１において外部メモリ１１６に記憶された画像に対する処理の結果、識別した箇所を座標形式等で格納し、識別結果１２０４には、識別箇所１２０３の識別結果を格納し、処理画像名１２０５には、ステップＳ３０１において外部メモリ１１６に記憶された画像の画像名を格納する。
【００９８】
ステップＳ３０５では、情報処理装置１１０のＣＰＵ１１１は、ステップＳ３０１において外部メモリ１１６に記憶された処理済みの画像を処理済み画像として識別可能に記憶する。識別する方法は、ファイル名を変更することで識別可能にしてもよいし、処理済み画像用のフォルダに振り分けてもよい。識別する方法はこれに限らない。
【００９９】
ステップＳ３０６では、情報処理装置１１０のＣＰＵ１１１は、ステップＳ３０２においてユーザからの操作によって選択されたモジュールを特定し、選択されたモジュールに該当するレコードを処理フロー・入出力パラメータテーブル４１２から検索し、特定する。
【０１００】
ステップＳ３０７では、情報処理装置１１０のＣＰＵ１１１は、ステップＳ３０５において記憶された処理画像のファイル名と一致する処理画像名１２０５と、ステップＳ３０６において特定されたレコードのインデックス（Ｉｎｄｅｘ）６０１と一致するインデックス（Ｉｎｄｅｘ）１２０１に基づいて、該当するすべてのレコードを処理結果テーブル４１８から検索し、特定する。尚、ステップＳ３０２において選択されたモジュールがすべての処理結果を表示する処理を行うモジュールであった場合には、ステップＳ３０５において記憶された処理画像名と一致するすべての処理画像名１２０５を検索し、特定する。これにより、すべての処理結果を処理結果テーブル４１８から取得することができる。
【０１０１】
ステップＳ３０８では、情報処理装置１１０のＣＰＵ１１１は、ステップＳ３０７において特定されたレコードをすべて取得し、ＲＡＭ１１２に記憶する。
【０１０２】
ステップＳ３０９では、情報処理装置１１０のＣＰＵ１１１は、ステップＳ３０８においてＲＡＭ１１２に記憶されたレコードの識別箇所１２０３を用いて、ステップＳ３０５において記憶された処理画像上に処理された箇所を表示する。例えば、図１１に示す処理結果画面１１００のマッチング箇所１１０２のように識別可能に表示される。表示方法は、ステップＳ２０９と同様である。
【０１０３】
ステップＳ３１０では、情報処理装置１１０のＣＰＵ１１１は、ステップＳ３０８においてＲＡＭ１１２に記憶されたレコードのインデックス（Ｉｎｄｅｘ）１２０１と一致するインデックス（Ｉｎｄｅｘ）６０１を処理フロー・入出力パラメータテーブル４１２から検索し、特定されたレコードのモジュール６０３に文字認識処理を含むか否かを判断する。文字認識処理を含むと判断した場合には（ステップＳ３１０／ＹＥＳ）、ＣＰＵ１１１は、処理をステップＳ３１１に進める。
【０１０４】
ステップＳ３１１では、情報処理装置１１０のＣＰＵ１１１は、ステップＳ３０８においてＲＡＭ１１２に記憶されたレコードの識別結果１２０４を用いて、ステップＳ３０９において処理された箇所に、識別結果１２０４を表示させる。但し、識別結果１２０４に「ＮＵＬＬ」が格納されていた場合は何も表示しない。例えば、図１１に示す処理結果画面１１００の文字認識箇所１１０１のように表示される。表示方法は、ステップＳ２１１と同様である。
【０１０５】
一方、ステップＳ３１０の判断処理で、文字認識処理を含むと判断できない場合には（ステップＳ３１０／ＮＯ）、ＣＰＵ１１１は、処理をステップＳ３１２に進める。
【０１０６】
ステップＳ３１２では、情報処理装置１１０のＣＰＵ１１１は、ステップＳ３０９乃至ステップＳ３１１における処理結果をビデオコントローラ１１５ｂからディスプレイ装置１３０上の処理結果表示領域８０８に表示をする。尚、本実施例ではステップＳ３０３における処理がすべてなされた後に処理結果を表示するが、ステップＳ３０２においてユーザからの操作により選択されたモジュールがステップＳ３０３において動作した直後に処理結果を処理結果表示領域８０８に表示するようにしてもよい。この場合、当該モジュールの処理の終了と同時に、ステップＳ３０４乃至ステップＳ３１２を実行することで処理結果を表示してもよいし、他の方法でもよい。
【０１０７】
ステップＳ３１３では、情報処理装置１１０のＣＰＵ１１１は、ステップＳ３０１において外部メモリ１１６に記憶された画像のうち、未処理の画像が存在するか否かを判断する。ステップＳ３０５において、処理済み画像と未処理の画像を識別可能に記憶されているので、これに基づき判断する。未処理の画像が存在すると判断した場合には（ステップＳ３１３／ＹＥＳ）、ＣＰＵ１１１は、処理をステップＳ３０３に戻す。これにより、未処理の画像がなくなるまで、画像処理を繰り返すことができる。また、処理フロー描画領域８０２においてユーザにより選択されたモジュールの処理結果を画像処理ごとに識別可能に表示し、更に識別結果１２０４の内容を補足表示することによって、画像処理と同期して処理結果を表示することができる。
【０１０８】
一方、ステップＳ３１３の判断処理で、未処理の画像が存在すると判断できない場合には（ステップＳ３１３／ＮＯ）、処理をステップＳ２０２に戻す。
【０１０９】
ステップＳ３１５乃至ステップＳ３１７は、ステップＳ３０３乃至ステップＳ３０５と同様であるので説明を省略する。
【０１１０】
ステップＳ３１８では、情報処理装置１１０のＣＰＵ１１１は、ステップＳ３１５において外部メモリ１１６に記憶された画像のうち、未処理の画像が存在するか否かを判断する。ステップＳ３１７において、処理済み画像と未処理の画像を識別可能に記憶されているので、これに基づき判断する。未処理の画像が存在すると判断した場合には（ステップＳ３１８／ＹＥＳ）、ＣＰＵ１１１は、処理をステップＳ３１５に戻す。これにより、未処理の画像がなくなるまで、画像処理を繰り返すことができる。
【０１１１】
一方、ステップＳ３１８の判断処理で、未処理の画像が存在すると判断できない場合には（ステップＳ３１８／ＮＯ）、処理をステップＳ２０２に戻す。以上が実行処理の詳細な説明である。
【０１１２】
以上説明したように、本実施形態によれば、ユーザからの操作でモジュールが選択されることにより、各画像処理結果を、各画像処理の内容を識別する画像と共に表示することができるので、画像処理を行うためのプログラム作成の支援を実現し得ることが可能となる。
【０１１３】
以上、実施形態例を詳述したが、本発明は、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。
【０１１４】
また、本発明におけるプログラムは、各処理方法をコンピュータが実行可能（読み取り可能）なプログラムであり、本発明の記憶媒体は、各処理方法をコンピュータが実行可能なプログラムが記憶されている。
【０１１５】
なお、本発明におけるプログラムは、各装置の処理方法ごとのプログラムであってもよい。
【０１１６】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読取り実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１１７】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記憶した記録媒体は本発明を構成することになる。
【０１１８】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＤＶＤ−ＲＯＭ，磁気テープ，不揮発性のメモリカード，ＲＯＭ，ＥＥＰＲＯＭ，シリコンディスク等を用いることができる。
【０１１９】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１２０】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１２１】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。
【０１２２】
また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１２３】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ，データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１２４】
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【０１２５】
１００  画像処理システム
１１０  情報処理装置
１２０  入力装置
１３０  ディスプレイ装置
１４０  カメラ
１５０  照明装置コントローラ
１６０  照明装置
１７０  外部機器コントローラ
１８０  ステージ
１８１  検査対象
１９０  ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）
１１１  ＣＰＵ
１１２  ＲＡＭ
１１３  ＲＯＭ
１１４  システムバス
１１５ａ  入力コントローラ
１１５ｂ  ビデオコントローラ
１１５ｃ  メモリコントローラ
１１５ｄ、１１５ｅ、１１５ｇ  通信Ｉ／Ｆコントローラ
１１５ｆ  画像入力コントローラ
１１６  外部メモリ
【図１】
2011186650.tif 000003
【図２】
2011186650.tif 000004
【図３】
2011186650.tif 000005
【図４】
2011186650.tif 000006
【図５】
2011186650.tif 000007
【図６】
2011186650.tif 000008
【図７】
2011186650.tif 000009
【図８】
2011186650.tif 000010
【図９】
2011186650.tif 000011
【図１０】
2011186650.tif 000012
【図１１】
2011186650.tif 000013
【図１２】
2011186650.tif 000014
【図１３】
2011186650.tif 000015