(57)【要約】【課題】各処理の結果が適正であるか否か、及び画像処理全体の結果が適正であるか否かを、プログラミング中にユーザが容易に知る。【解決手段】画像処理プログラミング装置は、各処理を表す各ブロック（４２、４３Ｃ、４５Ａ）を、各処理を実行する順番に並べて第１表示領域（６０）に表示し、第１表示領域に表示された各ブロックから１つのブロックが対象ブロック（４５Ａ）として選択された場合に、対象ブロックが表す対象処理を構成する各サブ処理（４４，５２）を、第２表示領域（８０）に表示し、対象処理を構成する各サブ処理のうち判定を行うサブ判定処理（５２）の結果が適正であるか否かを、第２表示領域に表示し、対象処理を構成するサブ判定処理の結果が全て適正であるか否かを、対象処理の結果として第１表示領域に表示し、各処理の結果が全て適正であるか否かを、画像処理の全体の結果として第３表示領域（３１）に表示する。【選択図】      図１３
2020123130.tif 000002
【特許請求の範囲】
【請求項１】
画像を処理する手順をプログラミングする装置であって、
各処理を表す各ブロックを、前記各処理を実行する順番に並べて第１表示領域に表示する第１表示部と、
前記第１表示領域に表示された前記各ブロックから１つのブロックが対象ブロックとして選択された場合に、前記対象ブロックが表す処理である対象処理を構成する各サブ処理を、第２表示領域に表示する第２表示部と、
を備え、
前記第２表示部は、前記対象処理を構成する前記各サブ処理のうち判定を行うサブ処理であるサブ判定処理の結果が適正であるか否かを、前記第２表示領域に表示し、
前記第１表示部は、前記対象処理を構成する前記サブ判定処理の結果が全て適正であるか否かを、前記対象処理の結果として前記第１表示領域に表示し、
前記各処理の結果が全て適正であるか否かを、画像処理の全体の結果として第３表示領域に表示する第３表示部を備える、画像処理プログラミング装置。
【請求項２】
前記対象処理は、複数の前記サブ判定処理を含み、
前記第２表示部は、複数の前記サブ判定処理のうち、結果が適正であるか否かを表示するサブ判定処理を選択可能とし、前記対象処理に前記サブ判定処理を追加可能とする、請求項１に記載の画像処理プログラミング装置。
【請求項３】
前記第１表示部は、前記各処理のうち画像の入力及び出力の少なくとも一方を行う処理である画像入出力処理を表す各ブロックに、前記画像の形式を表すアイコンを表示し、
前記画像の形式は、カラー画像、グレー画像、並びに、カラー画像若しくはグレー画像、の少なくとも１つを含む、請求項１又は２に記載の画像処理プログラミング装置。
【請求項４】
前記第１表示部は、前記各処理を表す前記各ブロックを、前記各処理を実行する順番に上から下へ並べて前記第１表示領域に表示し、前記画像入出力処理を表す各ブロックの上部に前記入力を行う画像の形式を表すアイコンを表示し、前記画像入出力処理を表す各ブロックの下部に前記出力を行う画像の形式を表すアイコンを表示する、請求項３に記載の画像処理プログラミング装置。
【請求項５】
前記各処理は、処理の種類に応じて、実行する順番が予め決められており、
前記第１表示部は、前記各処理を表す前記各ブロックを、処理の種類に応じて前記各処理を実行する順番に自動的に並べて前記第１表示領域に表示する、請求項１〜４のいずれか１項に記載の画像処理プログラミング装置。
【請求項６】
ユーザの手動操作により前記各処理を実行する手動モードと、外部装置からの指令により前記各処理を実行する外部モードとに切り替え可能であり、
前記外部モード中は、前記各処理及び前記各サブ処理の変更、並びに前記ユーザの手動操作による前記各処理の実行を禁止する、請求項１〜５のいずれか１項に記載の画像処理プログラミング装置。
【請求項７】
前記第１表示部は、前記各処理を実行した時にエラーが発生した処理であるエラー処理を表すブロックを、前記エラーの発生を示す状態で表示し、前記エラー処理よりも前の前記各処理を実行可能とし、前記エラー処理よりも後の前記各処理を実行不能とする、請求項１〜６のいずれか１項に記載の画像処理プログラミング装置。
【請求項８】
前記第１表示部は、前記各ブロックが表す前記各処理で設定可能な情報を入力可能とするテキストボックスを、前記各ブロック内に表示する、請求項１〜７のいずれか１項に記載の画像処理プログラミング装置。
【請求項９】
画像を処理する手順をプログラミングする方法であって、
コンピュータが、
各処理を表す各ブロックを、前記各処理を実行する順番に並べて第１表示領域に表示する工程と、
前記第１表示領域に表示された前記各ブロックから１つのブロックが対象ブロックとして選択された場合に、前記対象ブロックが表す処理である対象処理を構成する各サブ処理を、第２表示領域に表示する工程と、
前記対象処理を構成する前記各サブ処理のうち判定を行うサブ処理であるサブ判定処理の結果が適正であるか否かを、前記第２表示領域に表示する工程と、
前記対象処理を構成する前記サブ判定処理の結果が全て適正であるか否かを、前記対象処理の結果として前記第１表示領域に表示する工程と、
前記各処理の結果が全て適正であるか否かを、画像処理の全体の結果として第３表示領域に表示する工程と、
を実行する、画像処理プログラミング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像を処理する手順をプログラミングする装置に関する。
【背景技術】
【０００２】
従来、この種の装置において、電子画像データに対して画像処理を実行し、画像処理結果の表示を行う装置がある（特許文献１参照）。特許文献１に記載の装置は、電子画像データに対して画像処理を実行する複数の画像処理アイテムを備え、画像処理手順のプログラミング中に、それぞれの画像処理アイテムによる画像処理の結果画像を、それぞれ表示領域に表示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４７６７３０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、特許文献１に記載の装置では、プログラミング中に、各画像処理アイテムによる画像処理の結果が適正であるか否かをユーザが判定しなければならず、また画像処理全体の結果が適正であるか否かもユーザが判定しなければならない。
【０００５】
本発明は、上記課題を解決するためになされたものであり、その主たる目的は、各処理の結果が適正であるか否か、及び画像処理全体の結果が適正であるか否かを、プログラミング中にユーザが容易に知ることのできる画像処理プログラミング装置を提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するための第１の手段は、画像を処理する手順をプログラミングする装置であって、
各処理を表す各ブロックを、前記各処理を実行する順番に並べて第１表示領域に表示する第１表示部と、
前記第１表示領域に表示された前記各ブロックから１つのブロックが対象ブロックとして選択された場合に、前記対象ブロックが表す処理である対象処理を構成する各サブ処理を、第２表示領域に表示する第２表示部と、
を備え、
前記第２表示部は、前記対象処理を構成する前記各サブ処理のうち判定を行うサブ処理であるサブ判定処理の結果が適正であるか否かを、前記第２表示領域に表示し、
前記第１表示部は、前記対象処理を構成する前記サブ判定処理の結果が全て適正であるか否かを、前記対象処理の結果として前記第１表示領域に表示し、
前記各処理の結果が全て適正であるか否かを、画像処理の全体の結果として第３表示領域に表示する第３表示部を備える。
【０００７】
上記構成によれば、第１表示部は、各処理を表す各ブロックを、各処理を実行する順番に並べて第１表示領域に表示する。このため、画像処理手順のプログラミング中にユーザは、画像処理において実行される各処理、及び各処理が実行される順番を容易に把握することができる。第２表示部は、第１表示領域に表示された各ブロックから１つのブロックが対象ブロックとして選択された場合に、対象ブロックが表す処理である対象処理を構成する各サブ処理を、第２表示領域に表示する。このため、プログラミング中にユーザは、第１表示領域に表示された各ブロックから１つのブロックを対象ブロックとして選択することにより、対象処理を構成する各サブ処理を容易に把握することができる。
【０００８】
ここで、第２表示部は、対象処理を構成する各サブ処理のうち判定を行うサブ処理であるサブ判定処理の結果が適正であるか否かを、第２表示領域に表示する。このため、プログラミング中にユーザは、第２表示領域を見るだけで、サブ判定処理の結果が適正であるか否かを容易に知ることができる。第１表示部は、対象処理を構成するサブ判定処理の結果が全て適正であるか否かを、対象処理の結果として第１表示領域に表示する。このため、プログラミング中にユーザは、第１表示領域を見るだけで、対象処理の結果が適正であるか否かを容易に知ることができる。第３表示部は、各処理の結果が全て適正であるか否かを、画像処理全体の結果として第３表示領域に表示する。このため、プログラミング中にユーザは、第３表示領域を見るだけで、画像処理全体の結果が適正であるか否かを容易に知ることができる。すなわち、プログラミング中にユーザは、各サブ判定処理の結果が適正であるか否か、対象処理の結果が適正であるか否か、及び画像処理全体の結果が適正であるか否かを、一目で容易に知ることができる。
【０００９】
第２の手段では、前記対象処理は、複数の前記サブ判定処理を含み、前記第２表示部は、複数の前記サブ判定処理のうち、結果が適正であるか否かを表示するサブ判定処理を選択可能とし、前記対象処理に前記サブ判定処理を追加可能とする。こうした構成によれば、対象処理が複数のサブ判定処理を含む場合に、結果が適正であるか否かを表示するサブ判定処理をユーザが選択することができる。
【００１０】
さらに、ユーザは必要に応じて対象処理にサブ判定処理を追加することができる。そして、追加されたサブ判定処理も含めて、結果が適正であるか否かを表示するサブ判定処理をユーザが選択することができる。
【００１１】
第３の手段では、前記第１表示部は、前記各処理のうち画像の入力及び出力の少なくとも一方を行う処理である画像入出力処理を表す各ブロックに、前記画像の形式を表すアイコンを表示し、前記画像の形式は、カラー画像、グレー画像、並びに、カラー画像若しくはグレー画像、の少なくとも１つを含む。こうした構成によれば、プログラミング中にユーザは、ブロックのアイコンを見るだけで、画像の入力及び出力の少なくとも一方を行う処理の画像の形式を容易に把握することができる。
【００１２】
さらに、入出力される画像の形式が、一般的なカラー画像、グレー画像等のいずれであるかを、ユーザが容易に把握することができる。
【００１３】
第４の手段では、前記第１表示部は、前記各処理を表す前記各ブロックを、前記各処理を実行する順番に上から下へ並べて前記第１表示領域に表示し、前記画像入出力処理を表す各ブロックの上部に前記入力を行う画像の形式を表すアイコンを表示し、前記画像入出力処理を表す各ブロックの下部に前記出力を行う画像の形式を表すアイコンを表示する。
【００１４】
上記構成によれば、第１表示部は、各処理を表す各ブロックを、各処理を実行する順番に上から下へ並べて第１表示領域に表示する。このため、プログラミング中にユーザは、各処理の順番を上から下への自然な流れで把握することができる。そして、第１表示部は、画像入出力処理を表す各ブロックの上部に入力を行う画像の形式を表すアイコンを表示し、画像入出力処理を表す各ブロックの下部に出力を行う画像の形式を表すアイコンを表示する。このため、プログラミング中にユーザは、ブロックの上部に表示されたアイコンにより、上の処理から入力される画像の形式を直感的に把握することができ、ブロックの下部に表示されたアイコンにより、下の処理へ出力される画像の形式を直感的に把握することができる。
【００１５】
第５の手段では、前記各処理は、処理の種類に応じて、実行する順番が予め決められており、前記第１表示部は、前記各処理を表す前記各ブロックを、処理の種類に応じて前記各処理を実行する順番に自動的に並べて前記第１表示領域に表示する。こうした構成によれば、ユーザが処理の種類に応じて予め決められた各処理の実行順番を知らなくても、各処理を表す各ブロックを、処理の種類に応じて各処理を実行する順番に自動的に並べることができる。
【００１６】
第６の手段では、ユーザの手動操作により前記各処理を実行する手動モードと、外部装置からの指令により前記各処理を実行する外部モードとに切り替え可能であり、前記外部モード中は、前記各処理及び前記各サブ処理の変更、並びに前記ユーザの手動操作による前記各処理の実行を禁止する。
【００１７】
上記構成によれば、手動モードでは、ユーザは手動操作により各処理を実行することができる。また、外部モードでは、外部装置からの指令により各処理が実行される。外部モードにおいて外部装置からの指令により各処理が実行されている時に、ユーザが各処理又は各サブ処理を変更したり、手動操作により各処理を実行したりすると、外部モードにおいて想定していた画像処理が実行されないおそれがある。
【００１８】
この点、外部モード中は、各処理及び各サブ処理の変更、並びにユーザの手動操作による各処理の実行が禁止される。したがって、外部モードにおいて想定していた画像処理を確実に実行することができ、画像処理の精度を安定させることができる。
【００１９】
一般に、画像処理の全体に含まれるいずれかの処理でエラーが発生した場合、画像処理の全体が実行不能となり、いずれの処理も実行不能となることが多い。
【００２０】
この点、第７の手段では、前記第１表示部は、前記各処理を実行した時にエラーが発生した処理であるエラー処理を表すブロックを、前記エラーの発生を示す状態で表示し、前記エラー処理よりも前の前記各処理を実行可能とし、前記エラー処理よりも後の前記各処理を実行不能とする。こうした構成によれば、エラー処理をユーザが容易に把握することができるとともに、エラーの原因がエラー処理よりも前の処理で発生しているかどうかをユーザが確認し易くなる。
【００２１】
第８の手段では、前記第１表示部は、前記各ブロックが表す前記各処理で設定可能な情報を入力可能とするテキストボックスを、前記各ブロック内に表示する。こうした構成によれば、テキストボックスが表示されている部分は設定可能な情報であることを、ユーザが容易に把握することができる。さらに、第１表示領域に表示された各ブロックにおいて、設定された情報をユーザが直接確認することができ、情報を設定するための別画面等を表示する必要がない。
【００２２】
第９の手段は、画像を処理する手順をプログラミングする方法であって、
コンピュータが、
各処理を表す各ブロックを、前記各処理を実行する順番に並べて第１表示領域に表示する工程と、
前記第１表示領域に表示された前記各ブロックから１つのブロックが対象ブロックとして選択された場合に、前記対象ブロックが表す処理である対象処理を構成する各サブ処理を、第２表示領域に表示する工程と、
前記対象処理を構成する前記各サブ処理のうち判定を行うサブ処理であるサブ判定処理の結果が適正であるか否かを、前記第２表示領域に表示する工程と、
前記対象処理を構成する前記サブ判定処理の結果が全て適正であるか否かを、前記対象処理の結果として前記第１表示領域に表示する工程と、
前記各処理の結果が全て適正であるか否かを、画像処理の全体の結果として第３表示領域に表示する工程と、
を実行する。
【００２３】
また、第９の手段に準じて、コンピュータを、画像を処理する手順をプログラミングする装置として機能させるコンピュータプログラムとして、実現することもできる。
【００２４】
また、第９の手段に準じて、コンピュータを、画像を処理する手順をプログラミングする装置として機能させるコンピュータプログラムを記録したプログラム記録媒体として、実現することもできる。
【図面の簡単な説明】
【００２５】
【図１】画像処理システムを示すブロック図。
【図２】プログラミング画面の一例を示す図。
【図３】照明ブロックを示す図。
【図４】画像入力ブロックを示す図。
【図５】前処理ブロックを示す図。
【図６】メイン処理ブロックを示す図。
【図７】出力ブロックを示す図。
【図８】サーバブロックを示す図。
【図９】画像入出力処理を表すブロックを示す図。
【図１０】画像の形式を表すアイコンを示す図。
【図１１】注目領域のプログラミング画面を示す図。
【図１２】注目領域の設定画面を示す図。
【図１３】メイン処理のプログラミング画面を示す図。
【図１４】エラー発生状態を示す図。
【図１５】出力処理のプログラミング画面を示す図。
【図１６】サーバ設定のプログラミング画面を示す図。
【発明を実施するための形態】
【００２６】
以下、ワークの検査等を行う画像処理システムに具現化した一実施形態について、図面を参照しつつ説明する。
【００２７】
図１に示すように、画像処理システム１０は、カメラ１１、ライト１２、ＰＣ（Personal Computer）２０、モニタ１３、及び外部装置１４等を備えている。
【００２８】
カメラ１１は、ＣＣＤ（charge coupled device）や、ＣＭＯＳ（complementary metal-oxide semiconductor）等のイメージセンサにより構成されている。カメラ１１は、ＰＣ２０からの指令に基づいて、検査対象の撮影（撮像）を行う。カメラ１１は、撮影により得られた画像データをＰＣ２０へ送信する。
【００２９】
ライト１２（照明装置）は、ＬＥＤ（light emitting diode）等の発光素子により構成されている。ライト１２は、ＰＣ２０からの指令に基づいて、検査対象に対して指令された強度及び指令された時間で光の照射を行う。
【００３０】
モニタ１３は、液晶ディスプレイ等により構成されている。モニタ１３は、ＰＣ２０からの指令に基づいて、各種の画像や各種の情報等を表示画面に表示する。
【００３１】
ＰＣ２０は、ＣＰＵ、ＲＯＭ、ＲＡＭ、入出力インターフェース等を備えるコンピュータである。ＰＣ２０は、カメラ１１による撮影、ライト１２による光の照射、及びモニタ１３による表示を制御する。ＰＣ２０（画像処理プログラミング装置）は、コンピュータプログラムを実行することにより、画像を処理する手順をプログラミングする装置（プログラム作成支援装置）として機能する。すなわち、ＰＣ２０は、画像処理プログラミング方法の各工程を実行する。コンピュータプログラムは、ＰＣ２０のＲＯＭに組み込まれていてもよいし、ＰＣ２０がプログラム記録媒体を読み込んで取得してもよいし、ＰＣ２０がインターネット等を通じてダウンロードしてもよい。ユーザは、キーボードやマウス等を用いてＰＣ２０を操作することにより、画像処理プログラムの編集（プログラミング）を行う。なお、ＰＣ２０により、第１表示部、第２表示部、及び第３表示部の機能が実現される。
【００３２】
外部装置１４は、ＰＣ２０へ画像処理プログラムを開始（実行）するタイミング等を指令する。外部装置１４は、後述するＨｔｔｐ（Ｗｅｂ）サーバ等により構成されている。
【００３３】
図２は、プログラミング画面の一例を示す図である。プログラミング画面は、ＧＵＩ（Graphical User Interface）により構成されている。すなわち、ユーザは、ＰＣ２０を操作して、ビジュアルプログラミングにより画像処理プログラムを作成することができる。
【００３４】
プログラミング画面は、メニュー表示領域２１、ツール表示領域４０、フロー表示領域６０、詳細表示領域８０を含んでいる。メニュー表示領域２１は、画面の上部に配置されている。画面においてメニュー表示領域２１の下方に、左から順にツール表示領域４０、フロー表示領域６０、及び詳細表示領域８０が配置されている。
【００３５】
メニュー表示領域２１には、各種のメニューアイコンが表示されている。メニューアイコンは、プログラム編集アイコン２２、サーバ設定アイコン２３、サーバ実行アイコン２４、サーバ停止アイコン２５、手動実行アイコン２６、連続実行アイコン２７、手動停止アイコン２８、ヘルプアイコン２９を含んでいる。
【００３６】
ＰＣ２０は、ユーザが各メニューアイコンをクリックすることにより、各メニューアイコンが表すメニューに切り換える。プログラム編集アイコン２２がクリックされることにより、プログラム編集画面に画面表示を切り換える。サーバ設定アイコン２３がクリックされることにより、サーバ設定画面に画面表示を切り換える。サーバ実行アイコン２４がクリックされることにより、サーバモード（外部モード）による画像処理プログラムの実行に切り換える。サーバ停止アイコン２５がクリックされることにより、サーバモードによる画像処理プログラムの実行を停止する。手動実行アイコン２６がクリックされることにより、手動モードにより画像処理プログラムを実行する。連続実行アイコン２７がクリックされることにより、手動モードにより画像処理プログラムを連続的に実行する。手動停止アイコン２８がクリックされることにより、手動モードによる画像処理プログラムの実行を停止する。ヘルプアイコン２９がクリックされることにより、各種のヘルプ画面を表示する。
【００３７】
メニュー表示領域２１には、実行時間３０が表示されている。実行時間３０は、画像処理プログラムの開始から終了までの時間である。メニュー表示領域２１の全体結果表示欄３１（第３表示領域）には、画像処理プログラムが判定を行う処理を含む場合に、画像処理プログラム（画像処理の全体）の結果が適正（ＯＫ）であるか否（ＮＧ）か、すなわち画像処理プログラム結果の適否が表示される。なお、図２では、画像処理プログラムの結果の適否は表示されていない。
【００３８】
ツール表示領域４０には、処理の種類を表すタブ４１が表示されている。タブ４１は、照明処理を表す「Lighting」タブ、画像入力処理を表す「ImageInput」タブ、前処理を表す「Preprocess」タブ、メイン処理を表す「MainProcess」タブ、及び出力処理を表す「Output」タブを含んでいる。ユーザがいずれかのタブをクリックして選択すると、選択されたタブが表す処理の種類のブロックリストが、処理の種類毎に異なる色でタブ４１の下方に表示される。図２では、「Preprocess」タブが選択されており、前処理を表すブロックのリストが、前処理に対応する色で表示されている。
【００３９】
図３は、「Lighting」タブが選択された場合に、タブ４１の下方に表示される照明ブロック４２を示している。照明ブロック４２は、照明処理の内容を表しており、照明処理に対応する色で表示されている。照明ブロック４２では、ライト１２のシリアルナンバー、光の強度、及び照射時間を設定可能となっている。設定可能な情報は、ブロック内にテキストボックスで表示されている。
【００４０】
図４は、「ImageInput」タブが選択された場合に、タブ４１の下方に表示される画像入力ブロック４３Ａ〜４３Ｃを示している。画像入力ブロック４３Ａ〜４３Ｃは、それぞれ画像入力処理の内容を表しており、画像入力処理に対応する色で表示されている。画像入力ブロック４３Ａが表す処理は、指定した画像ファイルを読み込み、読み込んだ画像を出力する。画像入力ブロック４３Ｂが表す処理は、指定したカメラにより撮影した画像を入力し、入力した画像を出力する。画像入力ブロック４３Ｃが表す処理は、指定したカメラにより設定した条件で撮影した画像を入力し、入力した画像を出力する。設定可能な情報は、プロッ内にテキストボックスで表示されている。
【００４１】
図５は、「Preprocess」タブが選択された場合に、タブ４１の下方に表示される前処理ブロック４４Ａ〜４４Ｃ等を示している。前処理ブロック４４Ａ〜４４Ｃ等は、それぞれメイン処理の前処理の内容を表しており、前処理に対応する色で表示されている。例えば、前処理ブロック４４Ａが表す処理は、画像を入力し、入力画像において指定された色相（Ｈ）、彩度（Ｓ）、及び明度（Ｖ）の範囲で抽出した画像を出力する。前処理ブロック４４Ｂが表す処理は、画像を入力し、入力画像をフィルタにより処理した画像を出力する。前処理ブロック４４Ｃが表す処理は、カラー画像を入力し、グレー画像に変換して出力する。設定可能な情報は、ブロック内にテキストボックスあるいは選択タブで表示されている。
【００４２】
図６は、「MainProcess」タブが選択された場合に、タブ４１の下方に表示されるメイン処理ブロック４５Ａ〜４５Ｃ等を示している。メイン処理ブロック４５Ａ〜４５Ｃ等は、それぞれメイン処理の内容を表しており、メイン処理に対応する色で表示されている。例えば、メイン処理ブロック４５Ａが表す処理は、グレー画像を入力し、入力画像において対象の数を計数（カウント）する。メイン処理ブロック４５Ｂが表す処理は、グレー画像を入力し、入力画像においてエッジ間の距離を計測する。メイン処理ブロック４５Ｃが表す処理は、カラー画像を入力し、入力画像においてテンプレートマッチングを行う。各ブロックは、ＩＤ（識別コード）を設定可能となっている。設定可能な情報は、ブロック内にテキストボックスで表示されている。
【００４３】
図７は、「Output」タブが選択された場合に、タブ４１の下方に表示される出力ブロック４６Ａ，４６Ｂ等を示している。出力ブロック４６Ａ，４６Ｂ等は、それぞれ出力処理の内容を表しており、出力処理に対応する色で表示されている。例えば、出力ブロック４６Ａが表す処理は、入力画像を出力する。出力ブロック４６Ｂが表す処理は、計測値をＣＳＶ（Comma Separated Value）として出力する。
【００４４】
上記のように、ＰＣ２０（第１表示部）は、上記各ブロックが表す各処理で設定可能な情報を入力可能とするテキストボックスを、各ブロック内に表示する。そして、ユーザがテキストボックス内に情報を入力することにより、各ブロックが表す各処理において情報が設定される。そして、ＰＣ２０は、設定された情報を用いて各処理を実行する。
【００４５】
図８は、上記サーバ設定アイコン２３が選択された場合に、ツール表示領域４０に表示されるサーバブロック４７Ａ等を示している。サーバブロック４７Ａ等は、それぞれ選択可能な外部サーバ（外部装置）を表しており、外部サーバに対応する色で表示されている。例えば、サーバブロック４７Ａは、Ｈｔｔｐ（Ｗｅｂ）サーバを表している。
【００４６】
ここで、ＰＣ２０（第１表示部）は、上記各処理のうち画像の入力及び出力の少なくとも一方を行う処理である画像入出力処理を表す各ブロックに、画像の形式を表すアイコンを表示する。図９は、画像入出力処理を表すブロックを示す図である。詳しくは、ＰＣ２０は、画像入出力処理を表す各ブロックの上部に入力画像の形式を表すアイコンを表示し、画像入出力処理を表す各ブロックの下部に出力画像の形式を表すアイコンを表示する。
【００４７】
図１０は、画像の形式を表すアイコンであり、アイコンＩ１はカラー画像を表し、アイコンＩ２はグレー画像を表し、アイコンＩ３はカラー画像若しくはグレー画像を表している。アイコンＩ１は、カラーのグラデーション（階調）画像で構成されている。アイコンＩ２は、グレーのグラデーション画像で構成されている。アイコンＩ３は、左半分がグレーのグラデーション画像で構成されており、右半分がカラーのグラデーション画像で構成されている。なお、アイコンＩ１をＲＧＢの３色パターンで表示したり、アイコンＩ２を白と黒の格子で表示したり、アイコンＩ３を上半分がカラーパターン且つ下半分がグレーパターンで表示したりしてもよい。
【００４８】
図９に示すように、例えば画像入力ブロック４３Ｂの左端の下部には、アイコンＩ１が表示されている。これにより、画像入力ブロック４３Ｂが表す処理は、カラー画像を出力することが表されている。前処理ブロック４４Ｃの左端の上部にはアイコンＩ１が表示され、下部にはアイコンＩ２が表示されている。これにより、前処理ブロック４４Ｃが表す処理は、カラー画像を入力し、グレー画像を出力することが表されている。前処理ブロック４４Ｄの左端の上部にはアイコンＩ３が表示され、下部にはアイコンＩ３が表示されている。これにより、前処理ブロック４４Ｄが表す処理は、カラー画像若しくはグレー画像を入力し、カラー画像若しくはグレー画像を出力することが表されている。
【００４９】
図２に戻り、フロー表示領域６０（第１表示領域）には、上記各処理を表す各ブロックが、各処理を実行する順番に並べて表示されている。詳しくは、ＰＣ２０（第１表示部）は、各処理を表す各ブロックを、各処理を実行する順番に上から下へ並べてフロー表示領域６０に表示する。
【００５０】
ユーザは、ツール表示領域４０においてブロックをドラッグして、フロー表示領域６０にドロップする。これにより、フロー表示領域６０にそのブロックが表示される。また、表示されたブロックを選択してＤｅｌキーを押す、又は表示されたブロックをドラッグしてツール表示領域４０にドロップすることで、そのブロックが消去される。各処理は、処理の種類に応じて、実行する順番が予め決められており、ＰＣ２０は、各処理を表す各ブロックを、処理の種類に応じて各処理を実行する順番に自動的に並べてフロー表示領域６０に表示する。具体的には、照明処理、画像入力処理、前処理、メイン処理、出力処理の順番で実行される。このため、ＰＣ２０は、ブロックがドロップされた位置にかかわらず、上記順番にブロックを自動的に並べ替える。同じ種類の処理では、ユーザがブロックをドロップした位置に従って、ブロックが順番に並べられる。なお、照明処理は省略することが可能である。また、コンボボックス６２（切替ボックス）をユーザが操作することにより、編集するフロー（画像処理プログラム）を切り替えることができる。
【００５１】
詳細表示領域８０（第２表示領域）には、フロー表示領域６０に表示された各ブロックが表す各処理の詳細が表示されている。図２では、フロー表示領域６０に表示された画像入力ブロック４３Ｃが表す処理の結果画像が表示されている。画像情報表示欄８１には、表示された画像においてマウスで選択した位置の情報が表示されている。ここでは、座標、Ｒ（Red）、Ｇ（Green）、Ｂ（Blue）、色相（Ｈ）、彩度（Ｓ）、明度（Ｖ）の各値が表示されている。フロー表示領域６０に表示された画像入力ブロック４３Ｃが表す処理の結果画像は、画像入力ブロック４３Ｃに表示されているパラメータ（情報）が変更されることにより、リアルタイムで変化する。手動モードにより画像処理プログラムを連続的に実行している場合も、画像入力ブロック４３Ｃに表示されているパラメータが変更されることにより、結果画像はリアルタイムで変化する。画像処理プログラムを連続的に実行している場合は、サーバモードによる画像処理プログラムの実行は不能となる。また、ボタン８２は、画像を保存する処理を実行するボタンである。
【００５２】
図１１は、注目領域のプログラミング画面を示す図である。ツール表示領域４０では、「MainProcess」タブが選択されている。
【００５３】
ＰＣ２０（第２表示部）は、フロー表示領域６０に表示された各ブロックから１つのブロックが対象ブロックとして選択された場合に、対象ブロックが表す処理である対象処理を構成する各サブ処理を、詳細表示領域８０に表示する。ここでは、メイン処理ブロック４５Ａが対象ブロックとして選択されている。サブ処理としては、前処理ブロック４４が表す処理と領域設定処理５１とが含まれている。ユーザは、ツール表示領域４０において「Preprocess」タブを選択した後に前処理ブロックをドラッグして、詳細表示領域８０にドロップする。これにより、詳細表示領域８０にそのブロック、例えば前処理ブロック４４が表示される。各前処理ブロック４４は、詳細表示領域８０にユーザが前処理ブロックをドロップした位置に従って並べられる。
【００５４】
領域設定処理５１では、ユーザは注目領域８４を設定することができる。注目領域８４は、画像全体（Entire image）、原点＋サイズ（Origin + Size）、４辺（4 Sides）のいずれかにより設定することができる。「原点＋サイズ」では、左上の座標と注目領域８４のサイズとを設定することができる。その際に、対象ブロックよりも前の処理で算出された値を、注目領域８４の設定に用いることができる。例えば、メイン処理ブロック４５Ａの前のメイン処理ブロック４５Ｄを、ＩＤ：Objectstatus1で指定することにより、メイン処理ブロック４５Ｄが表す処理で算出された値（例えばＸ）を注目領域８４の設定に用いることができる。「４辺」では、上下左右の座標を設定することができる。
【００５５】
図１２は、注目領域８４の設定画面を示す図である。ユーザは、マウスを用いたドラッグ操作によっても注目領域８４を設定することができる。
【００５６】
図１３は、メイン処理のプログラミング画面を示す図である。ツール表示領域４０では、「Preprocess」タブが選択されている。
【００５７】
ＰＣ２０は、対象処理を構成する各サブ処理のうち判定を行うサブ処理の１つであるカウント処理５２（サブ判定処理）の結果が適正（ＯＫ）であるか否（ＮＧ）かを、サブ結果表示欄８３（詳細表示領域８０）に表示する。ここでは、注目領域８４に含まれるワークＷの数を計数して、その数が閾値の範囲内であるか否かを判定している。閾値の下限５２ａは４に設定されており、閾値の上限５２ｂは４に設定されている。すなわち、ＰＣ２０はワークＷの数が４であるか否か判定している。計数値５２ｃは、計数結果であるワークＷの数を示している。そして、ＰＣ２０は、計数の結果が適正（ＯＫ）であることを、サブ結果表示欄８３に表示している。ユーザは、下限５２ａ及び上限５２ｂに値を入力することにより、判定に用いる閾値を設定することができる。
【００５８】
ＰＣ２０は、対象処理を構成するサブ判定処理の結果が全て適正であるか否かを、対象処理の結果として処理結果表示欄６１（フロー表示領域６０）に表示している。処理結果表示欄６１は、対象処理を表すブロック内に配置されている。すなわち、サブ判定処理を含む対象処理の結果は、対象処理を表すブロック内に表示される。ＰＣ２０は、対象処理を構成するサブ判定処理の結果が１つでも適正でなければ、対象処理の結果が適正でない（ＮＧ）として処理結果表示欄６１に表示する。ここでは、サブ判定処理がカウント処理５２の１つだけの例を示しているが、対象処理は複数のサブ判定処理を含むことができる。その場合、ＰＣ２０は、複数のサブ判定処理のうち、結果が適正であるか否かを表示するサブ判定処理や、実行するサブ判定処理を選択可能とする。さらに、ＰＣ２０は、対象処理にユーザがサブ判定処理を追加可能とする。
【００５９】
そして、ＰＣ２０（第３表示部）は、フロー表示領域６０に表示された各ブロックが表す各処理の結果が全て適正であるか否かを、画像処理の全体の結果として全体結果表示欄３１に表示する。ＰＣ２０は、フロー表示領域６０に表示された各ブロックが表す各処理の結果が１つでも適正でなければ、画像処理の全体の結果が適正でない（ＮＧ）として全体結果表示欄３１に表示する。
【００６０】
図１４は、エラー発生状態を示す図である。ここでは、出力ブロック４６Ａが表す処理でエラーが発生していることが、太枠で表されている。すなわち、出力ブロック４６Ａが表す処理は、各処理を実行した時にエラーが発生した処理であるエラー処理である。ＰＣ２０は、エラー処理を表す出力ブロック４６Ａを、エラーの発生を示す状態で表示する。ＰＣ２０は、出力ブロック４６Ａが表すエラー処理よりも前の各処理（例えばメイン処理ブロック４５Ａが表す処理）を実行可能とし、エラー処理よりも後の各処理（図示略）を実行不能とする。同図では、出力ブロック４６Ａが入力画像を出力する処理であるのに対して、その前のメイン処理ブロック４５Ａが表す処理は計数したワークＷの数を出力する処理であるため、データの形式が整合せずにエラーが発生している。その他、入力する画像の形式がグレー画像に限られるメイン処理に対して、その前のメイン処理が出力する画像の形式がカラー画像である場合等、画像の形式が前後の処理で整合していない場合もエラーが発生する。
【００６１】
図１５は、出力処理のプログラミング画面を示す図である。ツール表示領域４０では、「Output」タブが選択されている。ユーザは、ツール表示領域４０において出力ブロック４６の１つをドラッグして、フロー表示領域６０にドロップする。これにより、例えばフロー表示領域６０に出力ブロック４６Ａが表示される。
【００６２】
図１６は、サーバ設定のプログラミング画面を示す図である。メニュー表示領域２１においてサーバ設定アイコン２３が選択されることにより、ツール表示領域４０にサーバブロック４７が表示されている。ユーザは、ツール表示領域４０においてサーバブロック４７の１つをドラッグして、フロー表示領域６０にドロップする。これにより、例えばフロー表示領域６０にサーバブロック４７Ａが表示される。
【００６３】
このように、例えばＨｔｔｐサーバ（外部装置）が選択されており、サーバ実行アイコン２４が選択されると、サーバモード（外部モード）に移行する。サーバモードにおいてＨｔｔｐサーバからの指令により各処理が実行されている時に、ユーザが各処理又は各サブ処理を変更したり、手動操作により各処理を実行したりすると、サーバモードにおいて想定していた画像処理が実行されないおそれがある。そこで、ＰＣ２０は、サーバモード中は、上記各処理及び各サブ処理の変更、並びにユーザの手動操作による各処理の実行を禁止する。各処理の変更は、各処理で用いられる情報の変更、各処理の追加、各処理の削除を含む。
【００６４】
以上詳述した本実施形態は、以下の利点を有する。
【００６５】
・ＰＣ２０は、各処理を表す各ブロックを、各処理を実行する順番に並べてフロー表示領域６０に表示する。このため、画像処理手順のプログラミング中にユーザは、画像処理において実行される各処理、及び各処理が実行される順番を容易に把握することができる。さらに、プログラミング言語によりプログラミングを行うスキルを有していないユーザであっても、画像処理プログラムを容易に作成することができる。
【００６６】
・ＰＣ２０は、フロー表示領域６０に表示された各ブロックから１つのブロックが対象ブロックとして選択された場合に、対象ブロックが表す処理である対象処理を構成する各サブ処理を、詳細表示領域８０に表示する。このため、プログラミング中にユーザは、フロー表示領域６０に表示された各ブロックから１つのブロックを対象ブロックとして選択することにより、対象処理を構成する各サブ処理を容易に把握することができる。
【００６７】
・ＰＣ２０は、対象処理を構成する各サブ処理のうち判定を行うサブ処理であるサブ判定処理の結果が適正であるか否かを、詳細表示領域８０（詳しくはサブ結果表示欄８３）に表示する。このため、プログラミング中にユーザは、詳細表示領域８０を見るだけで、サブ判定処理の結果が適正であるか否かを容易に知ることができる。
【００６８】
・ＰＣ２０は、対象処理を構成するサブ判定処理の結果が全て適正であるか否かを、対象処理の結果としてフロー表示領域６０（詳しくは処理結果表示欄６１）に表示する。このため、プログラミング中にユーザは、フロー表示領域６０を見るだけで、対象処理の結果が適正であるか否かを容易に知ることができる。
【００６９】
・ＰＣ２０は、各処理の結果が全て適正であるか否かを、画像処理全体の結果として全体結果表示欄３１に表示する。このため、プログラミング中にユーザは、全体結果表示欄３１を見るだけで、画像処理全体の結果が適正であるか否かを容易に知ることができる。すなわち、プログラミング中にユーザは、各サブ判定処理の結果が適正であるか否か、対象処理の結果が適正であるか否か、及び画像処理全体の結果が適正であるか否かを、一目で容易に知ることができる。
【００７０】
・対象処理は、複数のサブ判定処理を含むことができ、ＰＣ２０は、複数のサブ判定処理のうち、結果が適正であるか否かを表示するサブ判定処理を選択可能とする。こうした構成によれば、対象処理が複数のサブ判定処理を含む場合に、結果が適正であるか否かを表示するサブ判定処理をユーザが選択することができる。
【００７１】
・ＰＣ２０は、対象処理にサブ判定処理を追加可能とする。こうした構成によれば、ユーザは必要に応じて対象処理にサブ判定処理を追加することができる。そして、追加されたサブ判定処理も含めて、結果が適正であるか否かを表示するサブ判定処理をユーザが選択することができる。
【００７２】
・ＰＣ２０は、各処理のうち画像の入力及び出力の少なくとも一方を行う処理である画像入出力処理を表す各ブロックに、画像の形式を表すアイコンＩ１〜Ｉ３を表示する。こうした構成によれば、プログラミング中にユーザは、ブロックのアイコンを見るだけで、画像の入力及び出力の少なくとも一方を行う処理の画像の形式を容易に把握することができる。
【００７３】
・画像の形式は、カラー画像、グレー画像、並びに、カラー画像若しくはグレー画像、の少なくとも１つを含む。こうした構成によれば、入出力される画像の形式が、一般的なカラー画像、グレー画像等のいずれであるかを、ユーザが容易に把握することができる。
【００７４】
・ＰＣ２０は、各処理を表す各ブロックを、各処理を実行する順番に上から下へ並べてフロー表示領域６０に表示する。このため、プログラミング中にユーザは、各処理の順番を上から下への自然な流れで把握することができる。そして、ＰＣ２０は、画像入出力処理を表す各ブロックの上部に入力を行う画像の形式を表すアイコンを表示し、画像入出力処理を表す各ブロックの下部に出力を行う画像の形式を表すアイコンを表示する。このため、プログラミング中にユーザは、ブロックの上部に表示されたアイコンにより、上の処理から入力される画像の形式を直感的に把握することができ、ブロックの下部に表示されたアイコンにより、下の処理へ出力される画像の形式を直感的に把握することができる。
【００７５】
・各処理は、処理の種類に応じて、実行する順番が予め決められており、ＰＣ２０は、各処理を表す各ブロックを、処理の種類に応じて各処理を実行する順番に自動的に並べてフロー表示領域６０に表示する。こうした構成によれば、ユーザが処理の種類に応じて予め決められた各処理の実行順番を知らなくても、各処理を表す各ブロックを、処理の種類に応じて各処理を実行する順番に自動的に並べることができる。
【００７６】
・サーバモード中は、各処理及び各サブ処理の変更、並びにユーザの手動操作による各処理の実行が禁止される。したがって、サーバモードにおいて想定していた画像処理を確実に実行することができ、画像処理の精度を安定させることができる。
【００７７】
・一般に、画像処理の全体に含まれるいずれかの処理でエラーが発生した場合、画像処理の全体が実行不能となり、いずれの処理も実行不能となることが多い。この点、ＰＣ２０は、各処理を実行した時にエラーが発生した処理であるエラー処理を表すブロックを、エラーの発生を示す状態で表示する。ＰＣ２０は、エラー処理よりも前の各処理を実行可能とし、エラー処理よりも後の各処理を実行不能とする。こうした構成によれば、エラー処理をユーザが容易に把握することができるとともに、エラーの原因がエラー処理よりも前の処理で発生しているかどうかをユーザが確認し易くなる。
【００７８】
・ＰＣ２０は、各ブロックが表す各処理で設定可能な情報を入力可能とするテキストボックスを、各ブロック内に表示する。こうした構成によれば、テキストボックスが表示されている部分は設定可能な情報であることを、ユーザが容易に把握することができる。さらに、フロー表示領域６０に表示された各ブロックにおいて、設定された情報をユーザが直接確認することができ、情報を設定するための別画面等を表示する必要がない。
【００７９】
なお、上記実施形態を、以下のように変更して実施することもできる。上記実施形態と同一の部分については、同一の符号を付すことにより説明を省略する。
【００８０】
・各ブロックが表す各処理で情報を設定する際に、各ブロック内に表示されたテキストボックスで情報を入力する態様に限らず、情報入力用の別画面を表示して情報を入力してもよい。
【００８１】
・画像処理の全体に含まれるいずれかの処理でエラーが発生した場合、画像処理の全体を実行不能とすることもできる。
【００８２】
・サーバモード中に、各処理及び各サブ処理の変更を禁止し、ユーザの手動操作による各処理の実行を禁止しなくてもよい。サーバモード中に、各処理及び各サブ処理の変更を禁止せず、ユーザの手動操作による各処理の実行を禁止してもよい。サーバモード中に、各処理及び各サブ処理の変更を禁止せず、ユーザの手動操作による各処理の実行を禁止しなくてもよい。
【００８３】
・手動モード及びサーバモード（外部モード）の一方のみを実行可能であってもよい。
【００８４】
・ＰＣ２０は、各処理を表す各ブロックを、処理の種類に応じて各処理を実行する順番に自動的に並べてフロー表示領域６０に表示することを、実行しなくてもよい。その場合、ＰＣ２０は、ユーザの操作に従って、各処理を表す各ブロックを、各処理を実行する順番に並べてフロー表示領域６０に表示する。そして、処理の種類に応じて各処理を実行する順番が不適切な場合、ＰＣ２０はエラーを表示してもよい。
【００８５】
・ＰＣ２０は、各処理を表す各ブロックを、各処理を実行する順番に左から右へ並べてフロー表示領域６０に表示することもできる。その場合、ＰＣ２０は、画像入出力処理を表す各ブロックの左部に入力を行う画像の形式を表すアイコンを表示し、画像入出力処理を表す各ブロックの右部に出力を行う画像の形式を表すアイコンを表示してもよい。また、画像の形式を表すアイコンの表示を省略することもできる。
【００８６】
・対象処理が複数のサブ判定処理を含む場合に、ＰＣ２０は、各サブ判定処理の結果が適正であるか否かを全て表示してもよい。
【００８７】
・ＰＣ２０は、各処理の結果が全て適正であるか否かを、画像処理全体の結果としてフロー表示領域６０に表示してもよい。
【００８８】
・処理する画像は、静止画に限らず、動画であってもよい。
【００８９】
・ワークＷの検査等を行う画像処理システムに限らず、計器の指示針の位置を読み取る読み取りシステム、患者に異常がないか見守る見守りシステム、ユーザが画像処理の練習を行う教育システム等に具現化することもできる。
【符号の説明】
【００９０】
１０…画像処理システム、１１…カメラ、１２…ライト、１３…モニタ、１４…外部装置、２０…ＰＣ、３１…全体結果表示欄、４０…ツール表示領域、４２…照明ブロック、４３Ａ…画像入力ブロック、４３Ｂ…画像入力ブロック、４３Ｃ…画像入力ブロック、４４…前処理ブロック、４５Ａ…メイン処理ブロック、４５Ｂ…メイン処理ブロック、４５Ｃ…メイン処理ブロック、４５Ｄ…メイン処理ブロック、４６…出力ブロック、４６Ａ…出力ブロック、４６Ｂ…出力ブロック、５２…カウント処理（サブ判定処理）、６０…フロー表示領域（第１表示領域）、６１…処理結果表示欄、８０…詳細表示領域（第２表示領域）、８３…サブ結果表示欄。
【図１】
2020123130.tif 000003
【図２】
2020123130.tif 000004
【図３】
2020123130.tif 000005
【図４】
2020123130.tif 000006
【図５】
2020123130.tif 000007
【図６】
2020123130.tif 000008
【図７】
2020123130.tif 000009
【図８】
2020123130.tif 000010
【図９】
2020123130.tif 000011
【図１０】
2020123130.tif 000012
【図１１】
2020123130.tif 000013
【図１２】
2020123130.tif 000014
【図１３】
2020123130.tif 000015
【図１４】
2020123130.tif 000016
【図１５】
2020123130.tif 000017
【図１６】
2020123130.tif 000018