JP5344658B2 - Information processing apparatus, control method thereof, and program - Google Patents
Information processing apparatus, control method thereof, and program Download PDFInfo
- Publication number
- JP5344658B2 JP5344658B2 JP2012266630A JP2012266630A JP5344658B2 JP 5344658 B2 JP5344658 B2 JP 5344658B2 JP 2012266630 A JP2012266630 A JP 2012266630A JP 2012266630 A JP2012266630 A JP 2012266630A JP 5344658 B2 JP5344658 B2 JP 5344658B2
- Authority
- JP
- Japan
- Prior art keywords
- processing
- image processing
- item
- image
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Image Processing (AREA)
- Stored Programmes (AREA)
Description
本発明は、製品の検査を行うための画像処理プログラムの作成に関し、特に画像処理プログラムの作成に際して実行される画像処理の負荷を軽減することの可能な情報処理装置、その制御方法、及びプログラムに関する。 The present invention relates to creation of an image processing program for inspecting a product, and more particularly to an information processing apparatus capable of reducing the load of image processing executed when creating an image processing program, a control method thereof, and a program. .
従来、例えば、チップマウンターにおける基板や部品の位置決めや、出来上がった製品の検査などを目的として、カメラで撮影した検査対象の画像データを、一定のロジック(処理フロー)で画像処理する画像処理装置が広く用いられている。 2. Description of the Related Art Conventionally, for example, an image processing apparatus that performs image processing of image data to be inspected with a camera with a certain logic (processing flow) for the purpose of positioning a substrate or a component in a chip mounter or inspecting a finished product. Widely used.
このような用途の画像処理装置としては、例えば、予め決められた画像処理のロジックを搭載した汎用タイプの画像処理装置や、ユーザのニーズに合致するロジックをユーザ自身が構築することが可能な専用タイプの画像処理装置がある。 As such an image processing apparatus, for example, a general-purpose type image processing apparatus equipped with a predetermined image processing logic, or a dedicated user that can construct a logic that meets the user's needs. There are types of image processing devices.
ここで、汎用タイプの画像処理装置は、画像処理のロジックを新規に構築する必要がないため、実際の製造工程等への導入に際してユーザの労力はかからないが、ユーザのニーズを完全に満たすロジックであることは少ない。一方、専用タイプの画像処理装置は、ユーザのニーズを完全に満たす画像処理のロジックを構築することが可能であるが、そのために画像処理のロジックを都度開発する必要があるため、多大な開発労力と開発期間、更には多大なコストがかかるものであった。 Here, the general-purpose type image processing apparatus does not require the construction of a new image processing logic, so it does not require the user's labor when introducing it into an actual manufacturing process, etc., but the logic completely satisfies the user's needs. There are few. On the other hand, a dedicated type image processing apparatus can construct image processing logic that completely satisfies the user's needs. For this reason, it is necessary to develop the image processing logic each time, so a great amount of development effort is required. The development period and the cost were high.
そこで、従来、例えば下記の特許文献1に示すようなロジックの開発を効率化する技術が提案されている。具体的に、特許文献1では、ロジックを開発するコンピュータに予め複数の画像処理に係るモジュールを登録しておき、開発者が使用者のニーズに合致するモジュールを選択し、選択したモジュールに必要なパラメータを設定して、ソースコード化した上でオブジェクトコードを作成することにより、ロジックの開発を効率化するものである。
Therefore, conventionally, for example, a technique for improving the efficiency of logic development as shown in
このような画像処理のロジックを構築する際に、画像処理のモジュールをGUI(Graphical User Interface)上でフローチャート形式に構築することで、画像処理のプログラムを生成するアプリケーションが存在する。このようなアプリケーションは、各画像処理のモジュールをドラッグ&ドロップ等でフローチャート形式に構築すると、各モジュールに対応するソースコードをフローチャートの順序に基づいて組み合わせ、画像処理のプログラムを生成するものである。 When constructing such image processing logic, there is an application that creates an image processing program by constructing an image processing module in a flowchart format on a GUI (Graphical User Interface). In such an application, when each image processing module is constructed in a flowchart format by drag and drop or the like, the source code corresponding to each module is combined based on the order of the flowchart to generate an image processing program.
モジュールをフローチャート形式に構築する際には、フローチャート(処理フロー)上でモジュールの追加、移動、削除、設定変更等を行う度に、出来上がったフローチャートの出力結果を表示させている。つまりユーザは、撮影装置から取り込んだ画像データやあらかじめ用意した画像データを基に、作成した画像処理プログラムのシミュレーションを行い、ユーザのニーズを満たすロジックが作成できたか否かを逐次確認しながら、進めることができるようになっている。 When a module is constructed in a flowchart format, the output result of the completed flowchart is displayed each time a module is added, moved, deleted, or changed in settings in the flowchart (processing flow). In other words, the user proceeds with the simulation of the created image processing program based on the image data captured from the image capturing device and the image data prepared in advance, and confirming whether or not the logic satisfying the user's needs has been created. Be able to.
しかしながら、フローチャートに変更を加える度にフローチャート全体の画像処理が実行されるため、元となる画像データの容量が大きい場合には処理負荷が高くなってしまう。特に、ラインセンサのような撮影装置で撮影されたフィルムやシート、ガラス、鉄板などの長尺物の画像データを使用する場合には画像データの容量が大きいので、処理負荷が高く、待ち時間が発生してしまう。これでは、円滑に画像処理プログラムを構築することが困難となってしまう。 However, since image processing of the entire flowchart is executed every time a change is made to the flowchart, the processing load increases if the volume of the original image data is large. In particular, when using image data of a long object such as a film, sheet, glass, or iron plate photographed by a photographing device such as a line sensor, the capacity of the image data is large, so the processing load is high and the waiting time is long. Will occur. This makes it difficult to construct an image processing program smoothly.
そこで、フローチャートに変更があっても画像処理を実行しないような仕組みが考えられるが、この場合、最終的な出力結果や途中経過(処理結果)がどうなるのかわからないまま、フローチャートを構築するので、妥当なフローチャートが構築できているのか否かを判定することが難しい。つまり、出力結果や処理結果を確認しながらフローチャートを構築しないと、プログラムの出来はユーザの経験に大きく左右される上、完全にユーザのニーズを満たすことができない可能性が高い。 Therefore, a mechanism that does not execute image processing even if there is a change in the flowchart can be considered, but in this case, the flowchart is constructed without knowing what the final output result or progress (processing result) will be. It is difficult to determine whether a simple flowchart has been constructed. In other words, if the flowchart is not constructed while checking the output result and the processing result, the result of the program is greatly influenced by the user's experience, and there is a high possibility that the user's needs cannot be completely satisfied.
また、フローチャート上のモジュールごとに当該モジュールまでの処理結果をサムネイル画像として表示することもある。最終的な出力結果である画像データを見ても、どのモジュールを調整すればよいのかわかりにくいため、画像処理の過程をモジュールごとにサムネイル画像として表示するようにしている。 In addition, for each module on the flowchart, the processing result up to the module may be displayed as a thumbnail image. Since it is difficult to know which module should be adjusted by looking at the final output image data, the image processing process is displayed as a thumbnail image for each module.
しかしながら、前述の通り、フローチャートに変更があっても画像処理を実行しないような仕組みを適用すると、このようなサムネイル画像も表示されなくなってしまうため、どのモジュールに問題があるのか特定することが困難となってしまう問題もある。 However, as described above, if a mechanism that does not execute image processing is applied even if there is a change in the flowchart, such thumbnail images will not be displayed, so it is difficult to identify which module has the problem. There is also a problem that becomes.
本発明は上記の課題を鑑みてなされたもので、本発明の目的は、所定の処理を実行可能な画像処理アイテムに対してユーザから処理フローを編集する操作を受け付ける度に実行される一連の画像処理の負荷を軽減することの可能な仕組みを提供することである。
Series present invention has been made in view of the above problems, purpose of the present invention, which is executed every time receiving an operation to edit the processing flow from the user to the image processing executable items predetermined processing to provide a possible mechanism of the relief to Turkey the load of image processing.
上記の目的を達成するために、本発明の情報処理装置は、電子画像データに対して画像処理を実行する情報処理装置であって、所定の処理を実行可能な画像処理アイテムであって、ユーザから指定された処理順で処理フローを構成可能な画像処理アイテムに対して、ユーザから前記処理フローを編集する操作を受け付ける操作受付手段と、前記操作受付手段でユーザから前記処理フローを編集する操作を受け付ける度に、電子画像データに対して、前記処理フローを構成する画像処理アイテムに係る所定の処理を、前記処理順に基づいて実行する画像処理アイテム実行手段と、前記画像処理アイテム実行手段で前記画像処理アイテムに係る所定の処理が前記処理順に基づいて実行された場合に、前記操作受付手段で操作を受け付けた画像処理アイテムの実行の結果を表示する結果表示手段とを備え、前記画像処理アイテム実行手段は、前記操作受付手段で前記画像処理アイテムに対してユーザから前記処理フローを編集する操作を受け付けた場合には、前記処理フローを構成する画像処理アイテムに係る所定の処理のうち、前記操作受付手段で当該操作を受け付けた画像処理アイテムに係る所定の処理まで前記処理順に実行し、前記操作受付手段で操作を受け付けた画像処理アイテムよりも処理順が後の画像処理アイテムに係る所定の処理を実行しないことを特徴とする。また、上記の目的を達成するために、本発明の情報処理装置は、電子画像データに対して画像処理を実行する情報処理装置であって、所定の処理を実行可能な画像処理アイテムであって、ユーザから指定された処理順で処理フローを構成可能な画像処理アイテムに対して、ユーザから前記処理フローを編集する操作を受け付ける操作受付手段と、前記操作受付手段でユーザから前記処理フローを編集する操作を受け付けた画像処理アイテムに基づいて、前記処理フローにおいて基点となる画像処理アイテムを特定する画像処理アイテム特定手段と、前記操作受付手段でユーザから前記処理フローを編集する操作を受け付ける度に、電子画像データに対して、前記処理フローを構成する画像処理アイテムに係る所定の処理を、前記処理順に基づいて実行する画像処理アイテム実行手段とを備え、前記画像処理アイテム実行手段は、前記操作受付手段で前記画像処理アイテムに対してユーザから前記処理フローを編集する操作を受け付けた場合には、前記処理フローを構成する画像処理アイテムに係る所定の処理のうち、前記画像処理アイテム特定手段で特定された画像処理アイテムに係る所定の処理から当該特定された画像処理アイテムよりも処理順が後の画像処理アイテムに係る所定の処理を前記処理順に実行し、前記画像処理アイテム特定手段で特定された画像処理アイテムよりも処理順が前の画像処理アイテムに係る所定の処理を実行しないことを特徴とする。
In order to achieve the above object, an information processing apparatus according to the present invention is an information processing apparatus that performs image processing on electronic image data, and is an image processing item that can execute predetermined processing, and includes a user edits to configurable image processing item a processing flow in the order specified processing, and operation acceptance means from user chromatography the accepting an operation for editing the processing flow, the processing flow from the user by the operation acceptance means from And an image processing item execution unit that executes predetermined processing related to the image processing items constituting the processing flow on the electronic image data based on the processing order each time an operation is performed. When the predetermined processing related to the image processing item is executed based on the processing order, the image processing receives the operation by the operation receiving means And a result display means for displaying the results of execution of item, the image processing item execution means, when receiving an operation for editing the processing flow from the user to the image processing item by the operation accepting means Of the predetermined processing related to the image processing item constituting the processing flow, the operation receiving means executes the processing up to the predetermined processing related to the image processing item that has received the operation, and the operation receiving means performs the operation. A predetermined process related to an image processing item whose processing order is later than the received image processing item is not executed. In order to achieve the above object, an information processing apparatus of the present invention is an information processing apparatus that performs image processing on electronic image data, and is an image processing item that can execute predetermined processing. editing the image processing items that can be configured for the given processing order in the processing flow from the user, the operation acceptance means for accepting an operation for editing the processing flow from the user, the processing flow from the user by the operation reception means An image processing item specifying unit that specifies an image processing item that is a base point in the processing flow based on an image processing item that has received an operation to perform, and an operation for editing the processing flow from a user by the operation receiving unit , based on the electronic image data, predetermined processing according to the image processing items constituting the processing flow, the processing order And an image processing item execution means for executing Te, the image processing item execution means, when receiving an operation for editing the processing flow from the user to the image processing items in the operation acceptance means, the processing Image processing whose processing order is later than the specified image processing item from the predetermined processing related to the image processing item specified by the image processing item specifying unit among the predetermined processing related to the image processing item constituting the flow A predetermined process related to an item is executed in the order of the processing, and a predetermined process related to an image processing item whose processing order is earlier than the image processing item specified by the image processing item specifying unit is not executed.
以上説明したように、本発明によれば、画像処理アイテムに対してユーザから処理フローを編集する操作を受け付ける度に実行される画像処理の負荷を軽減することの可能な効果を奏する。
As described above, according to the present invention exhibits the possible effect of the light lessen Rukoto the load of image processing to be executed every time receiving an operation to edit the processing flow from the user to the image processing items.
また、本発明によれば、画像処理フローにおいて変更のあった画像処理アイテムから画像処理を実行し、変更のあった画像処理アイテムより前の実行済みの画像処理アイテムは実行しないので、画像処理プログラムの作成に際して実行される画像処理の負荷を軽減することの可能な効果を奏する。 In addition, according to the present invention, image processing is executed from an image processing item that has been changed in the image processing flow, and an executed image processing item before the changed image processing item is not executed. It is possible to reduce the load of image processing executed when creating the image.
以下、図面を参照しながら、本発明の実施の形態について説明する。図1は、本発明の実施の形態係る画像処理システム100の概略構成の一例を示す構成図である。図1に示す通り、画像処理システム100は、情報処理装置110と、入力装置120と、ディスプレイ装置130と、カメラ140と、照明装置コントローラ150と、照明装置160と、外部機器コントローラ170と、検査対象181が載置されたステージ180を有して構成されている。
Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is a configuration diagram showing an example of a schematic configuration of an
情報処理装置110は、画像処理システム100における動作を統括的に制御する装置である。ここで、本実施形態においては、情報処理装置110は、実際の製造工程に導入される情報処理装置で動作する画像処理プログラムの開発を支援する装置として適用した例を説明するが、本発明においてはこれに限定されるわけではなく、たとえば、実際の製造工程に導入されている情報処理装置として適用する形態も本発明に含まれる。
The
情報処理装置110は、所定のケーブル等を介して、検査対象181の撮像(撮影)を行うカメラ140と通信可能に構成されている。また、情報処理装置110は、所定のケーブル等を介して、照明装置160の制御を行う照明装置コントローラ150と通信可能に構成されている。また、情報処理装置110は、所定のケーブル等を介して、ステージ180を制御するプログラマブルコントローラ(PCL)などの外部機器コントローラ170と、あらかじめ設定した通信が可能に構成されている。さらに、情報処理装置110は、所定のケーブル等を介して、それぞれ、入力装置120およびディスプレイ装置130と通信可能に構成されている。すなわち、情報処理装置110は、所定のケーブル等を介して接続された、入力装置120、ディスプレイ装置130、カメラ140、照明装置コントローラ150および外部機器コントローラ170を制御することによって、画像処理システム100における動作を統括的に制御する。
The
入力装置120は、例えばユーザが情報処理装置110に対して各種の指示の入力を行う際にユーザによって操作されるものであり、ユーザからの入力指示操作に従って、当該入力指示を情報処理装置110に対して入力するものである。この入力装置120は、例えば、キーボード(KB)やポインティングデバイス等で構成されている。
The
ディスプレイ装置130は、情報処理装置110の制御に従って、各種の画像や各種の情報などを表示画面に表示する。
The
カメラ140は、情報処理装置110の制御に従って、ステージ180上に載置された検査対象181の撮影(撮像)を行い、撮影により得られた画像データ(電子画像データ)を所定のケーブル等を介して情報処理装置110に送信する。
The
照明装置コントローラ150は、情報処理装置110の制御に従って、照明装置160の照明を制御する。照明装置160は、照明装置コントローラ150の制御に基づき、検査対象181における検査内容に応じて、当該検査対象181に対する照明の点灯/非点灯の切り替えや明るさの調整等を行う。
The
外部機器コントローラ170は、情報処理装置110の制御に従って、ステージ180を制御する。ステージ180は、外部機器コントローラ170の制御に基づき、載置された検査対象181を目的の位置に移動させたり、検査対象181の搬入や搬出をしたりする。以上が画像処理システムの構成の一例の説明である。
The
次に、情報処理装置110のハードウェア構成について説明する。図2は、図1に示す情報処理装置110のハードウェア構成の一例を示す構成図である。図2には、情報処理装置110の内部構成に加えて、当該情報処理装置110と接続される各種装置についても記載している。
Next, the hardware configuration of the
情報処理装置110は、図2に示すように、CPU111と、RAM112と、ROM113と、システムバス114と、各種のコントローラ115(115a〜115g)と、外部メモリ116と、を備えている。各種のコントローラ115として、入力コントローラ115a、ビデオコントローラ115b、メモリコントローラ115c、通信I/Fコントローラ115d、115e、及び115g、画像入力コントローラ115fが構成されている。CPU111は、ROM113或いは外部メモリ116に記憶されたプログラム等に基づいてシステムバス114に接続された各デバイスを制御して、情報処理装置110における動作を統括的に制御する。RAM112は、CPU111の主メモリ、ワークエリア等として機能する。CPU111は、処理の実行に際して、必要なプログラム等をRAM112にロードして、プログラムを実行することにより、情報処理装置110における各種の動作を実現する。ROM113には、CPU111の制御プログラムであるBIOS(Basic Input
/ Output System)等が記憶されている。
As illustrated in FIG. 2, the
/ Output System) is stored.
システムバス114は、CPU111、RAM112、ROM113、入力コントローラ115a、ビデオコントローラ115b、メモリコントローラ115c、通信I/Fコントローラ115d及び115e、115g、画像入力コントローラ115fを、相互に通信可能に接続する。
The
入力コントローラ115aは、キーボード(KB)やポインティングデバイスなどからなる入力装置120からの入力を制御する。ビデオコントローラ115bは、表示装置であるディスプレイ装置130への表示を制御する。メモリコントローラ115cは、外部メモリ116へのアクセスを制御する。ここで、外部メモリ116は、例えばハードディスク(HD)やフレキシブルディスク(FD)等で構成され、ブートプログラムや、各種のアプリケーションプログラム、編集ファイル、各種のデータや各種の情報等を記憶する。また、外部メモリ116は、オペレーティングシステム(以下、「OS」とする)や、CPU111に後述する各種の処理を実行させるためのプログラム、当該プログラムの制御に従った処理を行う際に使用する各種のテーブルや各種の検査結果情報等も記憶する。
The
通信I/Fコントローラ115dは、外部機器コントローラ170との通信を制御する。また、通信I/Fコントローラ115eは、照明装置コントローラ150との通信を制御する。画像入力コントローラ115fは、カメラ140と通信を行って、カメラ140から画像データの受信が可能に構成されている。ここで、画像入力コントローラ115fは、コントローラ上で演算処理が可能なハードウェアを搭載しているものであってもよい。さらに、通信I/Fコントローラ115gは、ローカルエリアネットワーク(LAN)190等のネットワークに接続され、当該ネットワークに接続されている各種装置との通信を制御する。
The communication I /
次に、図3を用いて、画像入力コントローラ115fのハードウェア構成について説明する。図3に示す通り、画像入力コントローラ115fは、CPU(演算チップ)301、メモリコントローラ302、入力コントローラ303、オンボードメモリ304を備えている。
Next, the hardware configuration of the
CPU(演算チップ)301は、後述する各種の画像処理を実行する。メモリコントローラ302はCPU(演算チップ)301の制御に従って、オンボードメモリ304への各種データの入出力を制御する。入力コントローラ303はカメラ140からの画像データの入力を制御する。オンボードメモリ304はCPU(演算チップ)301の主記憶として機能する。以上が、画像入力コントローラ115fのハードウェア構成の説明である。
A CPU (arithmetic chip) 301 executes various image processing described later. The
次に、情報処理装置110の機能構成の一例について説明する。図4は、図1に示す情報処理装置110の機能構成の一例を示す構成図である。
Next, an example of a functional configuration of the
情報処理装置110には、図4に示すように、テーブル記憶部410、フロー作成部420、ソースコード変換部430、コンパイル部440、(検証)実行部450、データ保存部460、及び、データ入力・出力部470の各機能構成が構成される。また、テーブル記憶部410には、モジュール・ソースコードマスタテーブル411、処理フロー・入出力パラメータテーブル412、ソースコードテーブル413、オブジェクトコードテーブル414、プロジェクトファイルテーブル415、条件式テーブル416、ノード処理フラグテーブル417、フラグ設定テーブル418、及び処理履歴テーブル419が記憶されている。
As shown in FIG. 4, the
ここで、本実施形態においては、図4のテーブル記憶部410が、例えば図2に示す外部メモリ116に構成される(一旦、RAM112に構成された後に外部メモリ116に構成される場合も含む)。また、図4のフロー作成部420、ソースコード変換部430、コンパイル部440、(検証)実行部450、データ保存部460及びデータ入力・出力部470が、例えば図2に示すCPU111と、ROM113或いは外部メモリ116に記憶されているプログラムと、から構成される。
Here, in the present embodiment, the
図5を参照して、図4のテーブル記憶部410に記憶されるモジュール・ソースコードマスタテーブル411について説明する。図5のモジュール・ソースコードマスタテーブルT500は、モジュール・ソースコードマスタテーブル411の構成の一例を示す構成図である。
The module / source code master table 411 stored in the
図5に示すように、モジュール・ソースコードマスタテーブルT500には、インデックス(Index)501ごとに、画像処理に係る処理モジュール502と、各処理モジュールに対応するソースコード503、またその処理モジュールを実現するためのモジュールに対する初期値504と処理主体505が関連付けられている。このソースコードは、ソースコード変換部430で処理対象のモジュールをソースコードに変換する際に用いられるものである。
As shown in FIG. 5, in the module / source code master table T500, for each
次に、図6を参照して、図4のテーブル記憶部410に記憶される処理フロー・入出力パラメータテーブル412について説明する。図6に示す処理フロー・入出力パラメータテーブルT600は、図4に示す処理フロー・入出力パラメータテーブル412の構成の一例を示す構成図である。図6に示すように、処理フロー・入出力パラメータテーブルT600は、インデックス(Index)601ごとに、各モジュール(画像処理アイテム)の処理順である順序602と、各モジュールのモジュール名603と、各モジュールにおける入力パラメータ604及び出力パラメータ605と、各モジュールの実行要否を判定するための実行フラグ606(実行済み情報)と、分岐処理や反復処理の場合に参照する処理フロー・入出力パラメータテーブル412を示す参照先テーブル607と、各モジュールにおける画像処理結果の画像データを示すサムネイル608とが関連付けられている。入力パラメータ604は、各モジュールで使用する各種のデータが格納される画像バッファや記憶領域等を示す。出力パラメータ605は、各モジュールが実行された際の結果画像バッファや各種の処理に用いた閾値等を記憶する記憶領域を示す。
Next, the processing flow / input / output parameter table 412 stored in the
なお、図6に示す処理フロー・入出力パラメータテーブルT600におけるインデックス(Index)601と、図5に示すモジュール・ソースコードマスタテーブルT500におけるインデックス(Index)501とは特に対応させていないが、相互に対応させて各テーブルを作成する形態であってもよい。なお、処理フロー・入出力パラメータテーブルT600において、インデックス(Index)601の「2」は反復処理の一例であり、「4」は分岐処理の一例である。
The index (Index) 601 in the processing flow / input / output parameter table T600 shown in FIG. 6 and the index (Index) 501 in the module / source code master table T500 shown in FIG. It may be a form in which each table is created in correspondence. In the processing flow / input / output parameter table T600, “2” of the
また、処理フロー・入出力パラメータテーブルT610(ループテーブル)は反復処理を行う場合に参照され、処理フロー・入出力パラメータテーブルT620(分岐テーブル)は分岐処理を行う場合に参照される。処理フロー・入出力パラメータテーブルT610及び処理フロー・入出力パラメータテーブルT620の構成は前述した処理フロー・入出力パラメータテーブルT600と同様である。なお、処理フロー・入出力パラメータテーブルT620は、判定が真であった場合に参照される処理フロー・入出力パラメータテーブルT620−1(分岐テーブル(THEN))と、判定が真でなかった場合に参照される処理フロー・入出力パラメータテーブルT620−2(分岐テーブル(ELSE))に分かれている。判定結果によって、参照する処理フロー・入出力パラメータテーブル412を決定する。 The processing flow / input / output parameter table T610 (loop table) is referred to when performing iterative processing, and the processing flow / input / output parameter table T620 (branch table) is referred to when performing branch processing. The configuration of the processing flow / input / output parameter table T610 and the processing flow / input / output parameter table T620 is the same as that of the processing flow / input / output parameter table T600 described above. Note that the processing flow / input / output parameter table T620 is a processing flow / input / output parameter table T620-1 (branch table (THEN)) that is referred to when the determination is true, and when the determination is not true. The processing flow / input / output parameter table T620-2 (branch table (ELSE)) is referred to. The processing flow / input / output parameter table 412 to be referred to is determined based on the determination result.
ソースコードテーブル413は、処理フロー・入出力パラメータテーブル412に記憶されているモジュールについて、ソースコード変換部430でモジュール・ソースコードマスタテーブル411を用いてソースコードに変換し登録している、全てのモジュール或いは一部のモジュールにおけるソースコードを記憶する。
The source code table 413 converts all modules stored in the processing flow / input / output parameter table 412 into source codes using the module / source code master table 411 and registers them in the source
オブジェクトコードテーブル414は、ソースコードテーブル413に記憶されているソースコードをコンパイル部440で変換した、実行可能なモジュールであるオブジェクトコードを記憶する。プロジェクトファイルテーブル415は、画像処理に係る初期設定パラメータや、処理フローシーケンス、ソースコード、入出力パラメータ等を記憶する。また条件式テーブル416は、「条件分岐処理」モジュールが設定された際の、条件式等を記憶し、ノード処理フラグテーブル417は、「並列分岐処理」モジュールが設定された際の、呼び出し側のノード名等を記憶する。
The object code table 414 stores object code that is an executable module obtained by converting the source code stored in the source code table 413 by the compiling
フラグ設定テーブル418は、図5のフラグ設定テーブルT510に構成の一例を示す。図5に示すように、フラグ設定テーブルT510は、各モジュールの追加、変更、削除、設定変更等が行われる度に処理フロー(画像処理フロー)を自動実行するか否かを示す自動実行フラグ511と、自動実行する場合の実行モードを示す実行モード512と、自動実行された場合にサムネイル画像を表示するか否かを示すサムネイル表示フラグ513から構成される。実行モード512は、「前半実行」か「後半実行」が格納できる。自動実行フラグ511及びサムネイル表示フラグ513は「ON」か「OFF」が格納される。
The flag setting table 418 shows an example of the configuration in the flag setting table T510 of FIG. As shown in FIG. 5, the flag setting table T510 includes an
次に、図7を参照して、図4のテーブル記憶部410に記憶される処理履歴テーブル419について説明する。処理履歴テーブル419は、画像処理が実行された場合のモジュールの実行順を示すテーブルである。図7の処理履歴テーブルT700は、処理履歴テーブル419の構成の一例を示す構成図である。図7に示すように、処理履歴テーブルT700には、インデックス(Index)701ごとに、各モジュールのモジュール名702と、各モジュールにおける画像処理結果の画像データである処理結果画像703が関連付けられている。
Next, the processing history table 419 stored in the
続いて、図4のフロー作成部420、ソースコード変換部430、コンパイル部440、実行部450、データ保存部460、及び、データ入力・出力部470について説明する。
Next, the
フロー作成部420は、モジュール・ソースコードマスタテーブル411に含まれているモジュールの処理シーケンスを管理する処理フロー・入出力パラメータテーブル412の作成等と、処理フロー描画領域(後述する図9の902)へのモジュールの描画を行う機能を有する。
The
ソースコード変換部430は、フロー作成部420により作成された処理フロー・入出力パラメータテーブル412に記憶されている各モジュールの処理データをモジュール・ソースコードマスタテーブル411と照合して、各モジュールをソースコードに変換し、ソースコードテーブル413に記憶する機能を有する。
The source
なお、図5や図6に示すテーブルのモジュールには、画像に対する処理だけでなく、画像を取得するための事前処理や、処理結果を出力するための事後処理を含む外部機器に対する処理などを含めても勿論構わない。例えば、カメラ140の撮像条件を設定する制御指令や、照明装置160を制御するための照明装置コントローラ150への制御指令、或いは、ステージの移動などを制御するための外部機器コントローラ170への制御指令、LAN上に接続されたPCにデータを送信する等の制御指令を行うものであってもよい。
Note that the table modules shown in FIGS. 5 and 6 include not only processing for images but also processing for external devices including pre-processing for acquiring images and post-processing for outputting processing results. But of course. For example, a control command for setting the imaging conditions of the
コンパイル部440は、ソースコードテーブル413に記憶されているソースコードから実行可能なオブジェクトコードを生成し、生成したオブジェクトコードをオブジェクトコードテーブル414に記憶する機能を有する。
The compiling
なお、コンパイル部440が行うコンパイルには、デバッグ・コンパイルとリリース・コンパイルの2つのタイプがある。ここで、本実施形態においては、処理フロー作成中には、ソースコードレベルでのステップ実行を可能とするデバッグ・コンパイルを行い、データ保存時には、オンラインで利用可能なファイルを生成するリリース・コンパイルを行う。この際、デバッグ・コンパイル及びリリース・コンパイルの両者は、同じ変換手法で生成されたソースコードを参照するものとする。 There are two types of compilation performed by the compiling unit 440: debug compilation and release compilation. Here, in this embodiment, during the process flow creation, debugging / compilation that enables step execution at the source code level is performed, and release / compilation that generates a file that can be used online is performed when data is saved. Do. At this time, both the debug compilation and the release compilation refer to the source code generated by the same conversion method.
(検証)実行部450は、コンパイル部440により作成されたオブジェクトコードテーブル414に記憶されているオブジェクトコードを実行し、処理結果表示領域(後述する図9の906)と処理フロー・入出力パラメータテーブル412を更新する機能を有する。
The (verification)
データ保存部460は、例えば、RAM112にあるソースコードテーブル413、オブジェクトコードテーブル414及びプロジェクトファイルテーブル415を外部メモリ116に出力して、データの保存処理を行う。
For example, the
データ入力・出力部470は、各モジュールで使用する入出力パラメータを管理する機能を有する。
The data input /
次に、情報処理装置110によって実行される画像処理プログラム作成のための一連の処理手順について説明する。図8は、情報処理装置110のCPU111によって行われる、一連の処理手順の一例を示すフローチャートである。本処理をCPU111に実行させるためのプログラムは外部メモリ116に記憶されており、本処理の実行要求を入力装置120より受け付けた場合に、CPU111は、当該プログラムをRAM112にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。
Next, a series of processing procedures for creating an image processing program executed by the
まず、ステップS101において、情報処理装置110のCPU111は、例えば、入力装置120からの入力指示に基づいて、図9に示す画像処理システムの開発を行うための画像処理プロジェクト開発画面900をディスプレイ装置130に表示する処理を行う。(操作受付手段)
First, in step S101, the
図9は、画像処理プロジェクト開発画面900の一例を示す構成図である。図9に示す画像処理プロジェクト開発画面900には、利用可能な処理ユニット(即ち、「カメラ取込」等の画像処理に係る各モジュール、画像処理アイテム)を表示する処理モジュール一覧901と、画像処理の実行順序(即ち、各モジュールの実行順序)をフローチャート形式で処理フロー(画像処理フロー)を描画する処理フロー描画領域902と、各画像処理(即ち、各モジュールの処理)で実行した結果画像を表示するサムネイル画像表示領域903と、処理フロー全体の結果画像を表示する最終結果画像表示領域912と、メニューバー910には画像処理プログラムの開発を終了する際に操作される保存終了ボタン911等と、ツールバー907には処理フロー全体を実行する実行ボタン908や、処理フロー上でモジュールの追加、移動、削除、設定変更が選択されたときに各モジュールを実行するかどうかを選択する自動実行フラグボタン909等が設けられている。また、図9に示す画像処理プロジェクト開発画面900には、例えば、新規モジュールの登録時もしくはパラメータの編集時等に、処理フロー描画領域902のフローチャートの各ステップ(即ち、各モジュール)で利用するパラメータを設定するパラメータ編集画面904と、そのパラメータの設定で実行された結果画像を表示する調整結果画像表示領域905が表示される。図9に示す例では、パラメータ編集画面904には、「二値化」のモジュールに係るパラメータを設定する画面が示されている。以上が、画像処理プロジェクト開発画面900の構成の一例の説明である。
FIG. 9 is a configuration diagram illustrating an example of the image processing
図8の説明に戻る。ステップS101の処理が終了すると、CPU111は処理をステップS102に進める。ステップS102では、情報処理装置110のCPU111は、入力装置120からの入力指示に基づいて、ステップS101で表示された画像処理プロジェクト開発画面900を用いて新規に画像処理プログラムを開発するか否かを判定する。新規に画像処理プログラムを開発すると判定された場合には、ステップS104に処理を進め、そうでない場合には、ステップS103に処理を進める。
Returning to the description of FIG. When the process of step S101 ends, the
ステップS103に進むと、情報処理装置110のCPU111は、外部メモリ116に保存されているプロジェクトファイルテーブル415を読み出して、これをRAM112に記憶する。つまり、既に作成している処理フローの編集を行うことになる。
In
ステップS104では、情報処理装置110のCPU111は、ステップS103で読み出した処理フローを実行する処理を行う。起動処理の詳細は、後述する図10に示す。
In step S104, the
ステップS105では、情報処理装置110のCPU111は、入力装置120からの入力指示(具体的には、ステップS101で表示された画像処理プロジェクト開発画面900に対する入力指示)があったか否かを判定する。入力指示があったと判定した場合には、ステップS106に処理を進め、そうでない場合には、入力指示があるまで待機する。
In step S105, the
ステップS106に進むと、情報処理装置110のCPU111は、入力装置120から受け付けた入力指示に基づいて、選択された処理内容の判定処理を行う。このステップS106で判定される処理内容としては、本例では、「追加処理」、「変更処理」、「移動処理」、「削除処理」、「実行処理」、「動作設定処理」、「保存処理」である。なお、ここで挙げた処理内容は一例を示したものであり、その他の処理内容をステップS106で判定することも勿論可能である。
In step S106, the
ここで、ステップS106の判定処理では、CPU111は、例えば、図9に示す画像処理プロジェクト開発画面900において以下の入力がなされることによって、上述した各処理を判定するようにしている。
Here, in the determination process of step S106, the
まず、図9に示す処理モジュール一覧901からいずれかのモジュール(画像処理アイテム)が選択され、処理フロー描画領域902の処理フローシーケンスの任意の位置にドラッグ&ドロップされると、情報処理装置110のCPU111は、モジュールの「追加処理」のイベントであると判定する。また、処理フロー描画領域902に既に登録されているモジュールがユーザからの操作によって指定され、パラメータ編集画面904が表示されると、情報処理装置110のCPU111は、モジュールのパラメータの「変更処理」のイベントであると判定する。また、処理フロー描画領域902に既に登録されているモジュールが他のモジュールの間にドラッグ&ドロップされると、情報処理装置110のCPU111は、モジュールの「移動処理」のイベントであると判定する。また、処理フロー描画領域902に既に登録されているモジュールを選択し、削除キーが押下される、若しくはあるモジュールを指定して不図示のポップアップメニューを表示させ、削除メニュー項目が選択(クリック指示)されると、情報処理装置110のCPU111は、モジュールの「削除処理」のイベントであると判定する。また、画像処理プロジェクト開発画面900の実行ボタン908が選択されると、情報処理装置110のCPU111は、処理フロー描画領域902に設定された処理フローの「実行処理」のイベントであると判定する。また、ツールバー907の「動作設定」が選択されると、情報処理装置110のCPU111は、「動作設定処理」のイベントであると判定する。また、メニューバー910の保存終了ボタン911やツールバー907の「保存」が選択されると、情報処理装置110のCPU111は、処理フロー描画領域902に設定された処理フローの「保存処理」のイベントであると判定する。
First, when any module (image processing item) is selected from the
なお、本実施形態ではこのようにして処理内容の判定を行うようにしているが、これは一例であり、例えばツールバー907に「新規追加」などの処理内容に応じたアイコン等の機能を設けてもよく、上述した形態に限定されるものではない。
In this embodiment, the processing content is determined in this way, but this is an example. For example, the
続いて、ステップS107において、情報処理装置110のCPU111は、ステップS106で判定した処理内容が、モジュールの「追加処理」であるか否かを判定する。「追加処理」であると判定した場合には、ステップS108に処理を進め、そうでない場合には、ステップS109に処理を進める。
Subsequently, in step S <b> 107, the
ステップS108では、情報処理装置110のCPU111は、選択されたモジュールの追加処理を行う(変更受付手段)。追加処理の詳細は、後述する図11に示す。そして、ステップS108の処理が終了すると、ステップS105に戻り、入力装置120から次の入力指示があるまで待機する。
In step S108, the
ステップS109では、情報処理装置110のCPU111は、ステップS106で判定した処理内容が、モジュールのパラメータの「変更処理」であるか否かを判定する。「変更処理」であると判定した場合には、ステップS110に処理を進め、そうでない場合には、ステップS111に処理を進める。
In step S <b> 109, the
ステップS110では、情報処理装置110のCPU111は、選択されたモジュールのパラメータの変更処理を行う(変更受付手段)。変更処理の詳細は、後述する図12に示す。そして、ステップS110の処理が終了すると、ステップS105に戻り、入力装置120から次の入力指示があるまで待機する。
In step S110, the
ステップS111では、情報処理装置110のCPU111は、ステップS106で判定した処理内容が、モジュールの「移動処理」であるか否かを判定する。「移動処理」であると判定した場合には、ステップS112に処理を進め、そうでない場合には、ステップS113に処理を進める。
In step S111, the
ステップS112では、情報処理装置110のCPU111は、選択されたモジュールの移動処理を行う(変更受付手段)。移動処理の詳細は、後述する図13に示す。そして、ステップS112の処理が終了すると、ステップS105に戻り、入力装置120から次の入力指示があるまで待機する。
In step S112, the
ステップS113では、情報処理装置110のCPU111は、ステップS106で判定した処理内容が、モジュールの「削除処理」であるか否かを判定する。「削除処理」であると判定した場合には、ステップS114に処理を進め、そうでない場合には、ステップS115に処理を進める。
In step S113, the
ステップS114では、情報処理装置110のCPU111は、選択されたモジュールの削除処理を行う(変更受付手段)。削除処理の詳細は、後述する図14に示す。そして、ステップS114の処理が終了すると、ステップS105に戻り、入力装置120から次の入力指示があるまで待機する。
In step S114, the
ステップS115では、情報処理装置110のCPU111は、ステップS106で判定した処理内容が、処理フローの「実行処理」であるか否かを判定する。「実行処理」であると判定された場合には、ステップS116に処理を進め、そうでない場合には、ステップS117に処理を進める。
In step S115, the
ステップS116では、情報処理装置110のCPU111は、処理フロー描画領域902に設定された処理フローの実行処理を行う。実行処理の詳細は、後述する図15に示す。そして、ステップS116の処理が終了すると、ステップS105に戻り、入力装置120から次の入力指示があるまで待機する。
In step S <b> 116, the
ステップS117では、情報処理装置110のCPU111は、ステップS106で判定した処理内容が、処理フローの「動作設定処理」であるか否かを判定する。「動作設定処理」であると判定された場合には、ステップS118に処理を進め、そうでない場合には、ステップS119に処理を進める。
In step S117, the
ステップS118では、情報処理装置110のCPU111は、処理フローの動作設定を受け付ける。特に、フラグ設定テーブル418に格納する設定を受け付ける。不図示の設定受付画面を表示して、ユーザから設定内容の入力を受け付けてもよいし、他の方法でもよい。受け付けた内容に基づいて、フラグ設定テーブル418を更新する。そして、ステップS118の処理が終了すると、ステップS105に戻り、入力装置120から次の入力指示があるまで待機する。
In step S118, the
ステップS119では、情報処理装置110のCPU111は、ステップS106で判定した処理内容が、処理フローの「保存処理」であるか否かを判定する。「保存処理」であると判定された場合には、ステップS120に処理を進め、そうでない場合には、ステップS105に処理を戻す。
In step S119, the
ステップS120では、情報処理装置110のCPU111は、画像処理プロジェクト開発画面900で設定された内容の保存処理を行う。つまり、RAM112に展開されているプロジェクトファイルテーブル415を外部メモリ116に保存する。そして、ステップS120の処理が終了すると、画像処理プロジェクト開発画面900を終了する。
In step S <b> 120, the
次に、図10を参照して図8のステップS104の「起動処理」の詳細について説明する。図10は、情報処理装置110のCPU111によって行われる、「起動処理」の処理手順の一例を示すフローチャートである。本処理をCPU111に実行させるためのプログラムは外部メモリ116に記憶されており、本処理の実行要求を入力装置120より受け付けた場合に、CPU111は、当該プログラムをRAM112にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。
Next, the details of the “start-up process” in step S104 in FIG. 8 will be described with reference to FIG. FIG. 10 is a flowchart illustrating an example of a “start-up process” performed by the
ステップS201では、情報処理装置110のCPU111は、マスタ画像があるか否かを判定する。マスタ画像はカメラ140からあらかじめ取り込んだ画像データであり、外部メモリ116に記憶されている。マスタ画像があると判定された場合には、ステップS202に処理を進め、そうでない場合には、ステップS203に処理を進める。
In step S201, the
ステップS202では、情報処理装置110のCPU111は、外部メモリ116に記憶されたマスタ画像を取得し、RAM112に展開する。一方、ステップS203では、情報処理装置110のCPU111は、マスタ画像がないので、カメラ140に対して検査対象181の撮影を指示し、撮影された画像データを受信して、RAM203に展開する。
In step S <b> 202, the
ステップS204では、情報処理装置110のCPU111は、自動実行するか否かを判定する。具体的には、自動実行フラグ511に「ON」が格納されているか否かを判定する。「ON」が格納されていれば自動実行を行い、「OFF」が格納されていれば自動実行を行わない。自動実行をすると判定された場合には、ステップS205に処理を進め、そうでない場合には、起動処理を終了し、呼び出し元に処理を戻す。
In step S204, the
ステップS205では、情報処理装置110のCPU111は、処理フロー描画領域902の処理フロー全体を実行する(画像処理アイテム実行手段)。実行処理の詳細は、後述する図15に示す。実行処理を終了したら起動処理を終了し、呼び出し元に処理を戻す。
In step S205, the
次に、図11を参照して図8のステップS108の「追加処理」の詳細について説明する。図11は、情報処理装置110のCPU111によって行われる、「追加処理」の処理手順の一例を示すフローチャートである。本処理をCPU111に実行させるためのプログラムは外部メモリ116に記憶されており、本処理の実行要求を入力装置120より受け付けた場合に、CPU111は、当該プログラムをRAM112にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。
Next, the details of the “addition process” in step S108 of FIG. 8 will be described with reference to FIG. FIG. 11 is a flowchart illustrating an example of a processing procedure of “addition processing” performed by the
ステップS301では、情報処理装置110のCPU111は、ステップS106において処理モジュール一覧901で選択されたモジュールを特定する。そして、ステップS302では、情報処理装置110のCPU111は、ステップS106において指定された、モジュールの追加先を特定する。なお、ステップS301のモジュールの特定処理とステップS302の追加先の特定処理との処理の順番を、逆にする形態であってもよい。
In step S301, the
ステップS303では、情報処理装置110のCPU111は、処理フロー描画領域902に描画(表示)されている処理フローに、特定したモジュールを追加し、処理フロー描画領域902を再描画(再表示)する処理を行う。
In step S303, the
ステップS304では、情報処理装置110のCPU111は、ステップS302で特定したモジュールの追加処理に伴って、処理フロー・入出力パラメータテーブル412の更新を行う。例えば、図23に示す処理フローと処理フロー・入出力パラメータテーブルT600があった場合に、図24に示すように「二値化」モジュールを新しく追加するとする。このときに、「二値化」モジュールは、「ループ」モジュールと「ラベリング」モジュールの間に挿入する形で追加するので、図25に示す処理フロー・入出力パラメータテーブルT600の通りに更新する。具体的には、モジュール・ソースコードマスタテーブル411で得られた情報を基に、「U00003:二値化」を追加し、INDEX601と順序602を振り直す。入力パラメータ604と出力パラメータ605を設定し直す。そして、「二値化」モジュールのレコードの実行フラグ606に「ON」を格納する。なお、このステップでは、他の実行フラグ606は更新しない。
In step S304, the
ステップS305では、情報処理装置110のCPU111は、自動実行するか否かを判定する。具体的には、自動実行フラグ511に「ON」が格納されているか否かを判定する。「ON」が格納されていれば自動実行を行い、「OFF」が格納されていれば自動実行を行わない。自動実行をすると判定された場合には、ステップS306に処理を進め、そうでない場合には、追加処理を終了し、呼び出し元に処理を戻す。
In step S305, the
ステップS306では、情報処理装置110のCPU111は、探索実行処理を行う。探索実行処理では、変更があったモジュールまでを再実行、または変更があったモジュールから再実行するための処理を行う(画像処理アイテム実行手段)。つまり、全体を実行せずに一部だけを実行するようにすることで、処理負荷の軽減を図っている。探索実行処理の詳細は、後述する図17に示す。探索実行処理が終了したら、追加処理を終了し、呼び出し元に処理を戻す。
In step S306, the
次に、図12を参照して図8のステップS110の「変更処理」の詳細について説明する。図12は、情報処理装置110のCPU111によって行われる、「変更処理」の処理手順の一例を示すフローチャートである。本処理をCPU111に実行させるためのプログラムは外部メモリ116に記憶されており、本処理の実行要求を入力装置120より受け付けた場合に、CPU111は、当該プログラムをRAM112にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。
Next, the details of the “change process” in step S110 of FIG. 8 will be described with reference to FIG. FIG. 12 is a flowchart illustrating an example of a processing procedure of “change processing” performed by the
ステップS401では、情報処理装置110のCPU111は、ステップS106において処理フロー描画領域902で選択されたモジュールを特定する。ステップS402では、情報処理装置110のCPU111は、画像処理プロジェクト開発画面900にパラメータ編集画面904を表示する。パラメータ編集画面904では、ステップS401で特定されたモジュールのパラメータ設定を受け付ける。
In step S401, the
ステップS403では、情報処理装置110のCPU111は、入力装置120から任意のパラメータが変更されたか否かを判定する。パラメータが変更されたと判定された場合には、ステップS404に処理を進め、そうでない場合には、パラメータが変更されるまで待機する。
In step S <b> 403, the
ステップS404では、情報処理装置110のCPU111は、変更のあったパラメータを特定し、当該パラメータを設定した処理結果を調整結果画像表示領域905に表示する。そして、ステップS405では、情報処理装置110のCPU111は、変更のあったパラメータを設定するか否かを判定する。具体的には、パラメータ編集画面904に備えられた不図示の確定ボタンが押下されたか否かを判定する。パラメータを設定すると判定された場合には、ステップS406に処理を進め、そうでない場合には、待機する。
In step S <b> 404, the
ステップS406では、情報処理装置110のCPU111は、処理フロー・入出力パラメータテーブル412を更新する。例えば、図26に示す処理フローと処理フロー・入出力パラメータテーブルT600があった場合に、図27に示すように「二値化」モジュールのパラメータを変更するとする。このとき、変更を受け付けたパラメータに従って、図28に示す処理フロー・入出力パラメータテーブルT600の「二値化」モジュールのレコードを更新する。なお、このステップでは、実行フラグ606は更新しない。
In step S <b> 406, the
ステップS407では、情報処理装置110のCPU111は、自動実行するか否かを判定する。自動実行をすると判定された場合には、ステップS408に処理を進め、そうでない場合には、変更処理を終了し、呼び出し元に処理を戻す。
In step S407, the
ステップS408では、情報処理装置110のCPU111は、探索実行処理を行う(画像処理アイテム実行手段)。探索実行処理の詳細は、後述する図17に示す。探索実行処理が終了したら、変更処理を終了し、呼び出し元に処理を戻す。
In step S408, the
次に、図13を参照して図8のステップS112の「移動処理」の詳細について説明する。図13は、情報処理装置110のCPU111によって行われる、「移動処理」の処理手順の一例を示すフローチャートである。本処理をCPU111に実行させるためのプログラムは外部メモリ116に記憶されており、本処理の実行要求を入力装置120より受け付けた場合に、CPU111は、当該プログラムをRAM112にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。
Next, the details of the “movement process” in step S112 of FIG. 8 will be described with reference to FIG. FIG. 13 is a flowchart illustrating an example of a processing procedure of “move processing” performed by the
ステップS501では、情報処理装置110のCPU111は、ステップS106において処理フロー描画領域902で選択されたモジュールを特定する。ステップS502では、情報処理装置110のCPU111は、ステップS106において指定された、モジュールの移動先を特定する。
In step S501, the
ステップS503では、情報処理装置110のCPU111は、処理フロー描画領域902において、ステップS502で特定された移動先に、ステップS501で特定されたモジュールを移動させる。
In step S503, the
ステップS504では、情報処理装置110のCPU111は、処理フロー・入出力パラメータテーブル412を更新する。例えば、図26に示す処理フローと処理フロー・入出力パラメータテーブルT600があった場合に、図29に示すように「二値化」モジュールを「ラベリング」モジュールの下に移動させるとする。このとき、図30に示す処理フロー・入出力パラメータテーブルT600の通り、モジュール名603「U00003:二値化」を「U00004:ラベリング」の下にレコードを移動する。そして、INDEX601と順序602を振り直す。また、必要があれば入力パラメータ604と出力パラメータ605を設定し直す。なお、このステップでは、実行フラグ606は更新しない。
In step S504, the
ステップS505では、情報処理装置110のCPU111は、自動実行するか否かを判定する。自動実行をすると判定された場合には、ステップS506に処理を進め、そうでない場合には、移動処理を終了し、呼び出し元に処理を戻す。
In step S505, the
ステップS506では、情報処理装置110のCPU111は、探索実行処理を行う(画像処理アイテム実行手段)。探索実行処理の詳細は、後述する図17に示す。探索実行処理が終了したら、移動処理を終了し、呼び出し元に処理を戻す。
In step S506, the
次に、図14を参照して図8のステップS114の「削除処理」の詳細について説明する。図14は、情報処理装置110のCPU111によって行われる、「削除処理」の処理手順の一例を示すフローチャートである。本処理をCPU111に実行させるためのプログラムは外部メモリ116に記憶されており、本処理の実行要求を入力装置120より受け付けた場合に、CPU111は、当該プログラムをRAM112にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。
Next, the details of the “deletion process” in step S114 of FIG. 8 will be described with reference to FIG. FIG. 14 is a flowchart illustrating an example of a processing procedure of “deletion processing” performed by the
ステップS601では、情報処理装置110のCPU111は、ステップS106において処理フロー描画領域902で選択されたモジュールを特定する。ステップS502では、情報処理装置110のCPU111は、ステップS601で特定されたモジュールを処理フロー描画領域902から削除する。
In step S601, the
ステップS603では、情報処理装置110のCPU111は、処理フロー・入出力パラメータテーブル412を更新する。例えば、図26に示す処理フローと処理フロー・入出力パラメータテーブルT600があった場合に、図31に示すように「二値化」モジュールを削除させるとする。このとき、図31に示す処理フロー・入出力パラメータテーブルT600の通り、モジュール名603「U00003:二値化」を削除して、INDEX601と順序602を振り直す。また、必要があれば入力パラメータ604と出力パラメータ605を設定し直す。なお、このステップでは、実行フラグ606は更新しない。
In step S <b> 603, the
ステップS604では、情報処理装置110のCPU111は、自動実行するか否かを判定する。自動実行をすると判定された場合には、ステップS605に処理を進め、そうでない場合には、削除処理を終了し、呼び出し元に処理を戻す。
In step S604, the
ステップS605では、情報処理装置110のCPU111は、探索実行処理を行う(画像処理アイテム実行手段)。探索実行処理の詳細は、後述する図17に示す。探索実行処理が終了したら、削除処理を終了し、呼び出し元に処理を戻す。
In step S605, the
次に、図15を参照して図8のステップS116の「実行処理」の詳細について説明する。図15は、情報処理装置110のCPU111によって行われる、「実行処理」の処理手順の一例を示すフローチャートである。本処理をCPU111に実行させるためのプログラムは外部メモリ116に記憶されており、本処理の実行要求を入力装置120より受け付けた場合に、CPU111は、当該プログラムをRAM112にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。
Next, the details of the “execution process” in step S116 of FIG. 8 will be described with reference to FIG. FIG. 15 is a flowchart illustrating an example of a processing procedure of “execution processing” performed by the
ステップS701では、情報処理装置110のCPU111は、処理フロー・入出力パラメータテーブル412に格納された情報と、モジュール・ソースコードマスタテーブル411に格納された情報に基づいて、ソースコードに変換し、ソースコードテーブル413に記憶する。
In step S <b> 701, the
ステップS702では、情報処理装置110のCPU111は、ステップS701で変換されたソースコードに対して、デバッグ・コンパイルを行い、オブジェクトコードを生成し、オブジェクトコードテーブル414に記憶する。そして、オブジェクトコードテーブル414に記憶されたオブジェクトコードを実行して、構築した処理フロー全体を実行する(シミュレーションを行う)。処理フローの実行にあたっては、カメラ140に対して検査対象181の撮影を指示して取得した画像データを使用してもよいし、マスタ画像を使用してもよい。
In step S702, the
ステップS703では、情報処理装置110のCPU111は、ステップS702で実行されたモジュールの順序と処理結果の画像データとを処理履歴テーブル419に記憶する。ステップS704では、情報処理装置110のCPU111は、ステップS703で更新された処理履歴テーブル419に基づいて、処理フロー描画領域902に表示する処理フロー上に処理ルートの軌跡を識別可能に表示する。つまり、ステップS702で画像処理を実行した結果、どのような経路を通って画像処理がなされたのかを表示する。こうしておくことで、処理フローのどこが問題なのかを特定しやすい。
In step S703, the
ステップS705では、情報処理装置110のCPU111は、処理履歴テーブル419に基づいて、処理フロー描画領域902のサムネイル画像表示領域903に、各モジュールにおける処理結果をサムネイル画像として表示する。こうしておくことで、軌跡の表示と同様に、処理フローの問題点を発見しやすくなる。ステップS704とステップS705における軌跡とサムネイル画像の表示結果は、図16に示すような表示となる。この場合、「ループ」モジュールを通り、「分岐」モジュールで「U00006:文字表示」の方を通った軌跡となっている。また、画像処理がなされた「メディアン」モジュールでは、当該「メディアン」モジュールの処理結果であるサムネイル画像がサムネイル画像表示領域903に表示される。なお、このサムネイル画像を選択すると、拡大された画像が表示できる。また、「ループ」がなされていると、複数回「メディアン」モジュールで処理されることになるので、各回の処理結果をサムネイル画像に対する選択指示に応じて表示するようにしてもよい。
In step S705, the
ステップS706では、情報処理装置110のCPU111は、ステップS702で実行された画像処理の最終結果の画像データを最終結果画像表示領域912に表示する。そして、実行処理を終了し、呼び出し元に処理を戻す。
In step S706, the
次に、図17を参照して図11のステップS308等の「探索実行処理」の詳細について説明する。図17は、情報処理装置110のCPU111によって行われる、「探索実行処理」の処理手順の一例を示すフローチャートである。本処理をCPU111に実行させるためのプログラムは外部メモリ116に記憶されており、本処理の実行要求を入力装置120より受け付けた場合に、CPU111は、当該プログラムをRAM112にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。
Next, the details of the “search execution process” in step S308 of FIG. 11 will be described with reference to FIG. FIG. 17 is a flowchart illustrating an example of a processing procedure of “search execution processing” performed by the
ステップS801では、情報処理装置110のCPU111は、処理フローの変更箇所に基づいて、画像処理の基点となるモジュールを探索するための処理を行う(基点アイテム特定手段)。未実行探索処理の詳細は、後述する図18に示す。
In step S801, the
ステップS802では、情報処理装置110のCPU111は、ステップS801で決定した基点となるモジュール(基点モジュール)よりも後に実行するモジュールの実行フラグ606を「OFF」にする処理を行う(実行済み情報保存手段)。実行フラグOFF処理の詳細は、後述する図19に示す。
In step S802, the
ステップS803では、情報処理装置110のCPU111は、実行モードが「前半実行」なのか「後半実行」なのかを判定する。具体的には、図5に示すフラグ設定テーブルT510の実行モード512に格納されている情報に基づいて判定する。「前半実行」であると判定された場合には、ステップS804に処理を進め、「後半実行」であると判定された場合には、ステップS805に処理を進める。
In step S803, the
ステップS804では、情報処理装置110のCPU111は、ステップS801で決定された基点モジュールまでの処理フローを実行する処理を行う(画像処理実行手段)。前半実行処理の詳細は、後述する図20に示す。
In step S804, the
ステップS805では、情報処理装置110のCPU111は、ステップS801で決定された基点モジュールから処理フローを実行する処理を行う(画像処理実行手段)。後半実行処理の詳細は、後述する図21に示す。
In step S805, the
ステップS806では、情報処理装置110のCPU111は、ステップS804またはステップS805で実行された最終的な処理結果の画像データを最終結果画像表示領域912に表示する。表示が完了したら探索実行処理を終了し、呼び出し元に処理を戻す。
In step S806, the
次に、図18を参照して図17のステップS801の「未実行探索処理」の詳細について説明する。図18は、情報処理装置110のCPU111によって行われる、「未実行探索処理」の処理手順の一例を示すフローチャートである。本処理をCPU111に実行させるためのプログラムは外部メモリ116に記憶されており、本処理の実行要求を入力装置120より受け付けた場合に、CPU111は、当該プログラムをRAM112にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。
Next, the details of the “unexecuted search process” in step S801 in FIG. 17 will be described with reference to FIG. FIG. 18 is a flowchart illustrating an example of a processing procedure of “unexecuted search processing” performed by the
ステップS901では、情報処理装置110のCPU111は、前述した図13の移動処理で、モジュールが当該モジュールよりも下流に移動されたか否かを判定する。つまり、図29に示すように「二値化」モジュールを「ラベリング」モジュールの下に移動するような場合が該当する。モジュールが当該モジュールよりも下流に移動されたと判定された場合には、ステップS902に処理を進め、そうでない場合には、ステップS903に処理を進める。
In step S901, the
ステップS902では、情報処理装置110のCPU111は、下流に移動したモジュールが元々配置されていた場所の1つ下にあるモジュールを参照する。図29を用いて説明すると、元々「二値化」モジュールは「ラベリング」モジュールより1つ上に配置されていた。これを「ラベリング」モジュールの1つ下に移動すると、「二値化」モジュールが元々配置されていた場所の1つ下にあるモジュール、つまり「ラベリング」モジュールが参照される。
In step S <b> 902, the
ステップS903では、情報処理装置110のCPU111は、前述した図14の削除処理で、モジュールが削除されたか否かを判定する。つまり、図31に示すように「二値化」モジュールが削除された場合が該当する。モジュールが削除されたと判定された場合には、ステップS904に処理を進め、そうでない場合には、ステップS905に処理を進める。
In step S903, the
ステップS904では、情報処理装置110のCPU111は、削除されたモジュールが元々配置されていた場所の1つ下にあるモジュールを参照する。図31を用いて説明すると、元々「二値化」モジュールは「ラベリング」モジュールより1つ上に配置されていた。これを削除すると、「二値化」モジュールが元々配置されていた場所の1つ下にあるモジュール、つまり「ラベリング」モジュールが参照される。
In step S904, the
ステップS905では、情報処理装置110のCPU111は、ステップS301またはステップS401またはステップS501で特定されたモジュールを参照する。
In step S905, the
ステップS906では、情報処理装置110のCPU111は、参照中のモジュールの実行フラグ606が「OFF」であるか否かを判定する。実行フラグ606が「OFF」であると判定された場合には、ステップS907に処理を進め、そうでない場合には、ステップS909に処理を進める。
In step S906, the
ステップS907では、情報処理装置110のCPU111は、処理フロー中で最も上流の先頭のモジュール(先頭モジュール)であるか否かを判定する。先頭のモジュールであると判定された場合には、ステップS909に処理を進め、そうでない場合には、ステップS908に処理を進める。
In step S907, the
ステップS908では、情報処理装置110のCPU111は、参照中のモジュールの1つ上のモジュールを参照し、ステップS906に処理を進める。こうして繰り返し実行フラグが「OFF」でないモジュールを上流に向かって探索していくことで、どこを基点とすべきなのかを決定する。
In step S908, the
ステップS909では、情報処理装置110のCPU111は、参照中のモジュールを基点モジュールとして決定する(画像処理アイテム特定手段)。例えば、図26に示す処理フローと処理フロー・入出力パラメータテーブルT600を前提として、図29のように「二値化」モジュールを下に移動したとする。この場合、ステップS902で「ラベリング」モジュールが参照される。次に、ステップS906で参照中の「ラベリング」モジュールの実行フラグ606を確認する。図26に示す通り、「ラベリング」モジュールの実行フラグ606は「ON」であるため、ステップS909に進み、この「ラベリング」モジュールを基点モジュールとして決定する。処理が終了したら、未実行探索処理を終了し、呼び出し元に処理を戻す。
In step S909, the
次に、図19を参照して図17のステップS802の「実行フラグOFF処理」の詳細について説明する。図19は、情報処理装置110のCPU111によって行われる、「実行フラグOFF処理」の処理手順の一例を示すフローチャートである。本処理をCPU111に実行させるためのプログラムは外部メモリ116に記憶されており、本処理の実行要求を入力装置120より受け付けた場合に、CPU111は、当該プログラムをRAM112にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。
Next, details of the “execution flag OFF process” in step S802 of FIG. 17 will be described with reference to FIG. FIG. 19 is a flowchart illustrating an example of a processing procedure of “execution flag OFF processing” performed by the
ステップS1001では、情報処理装置110のCPU111は、図18のステップS909で決定した基点モジュールを参照する。
In step S1001, the
ステップS1002では、情報処理装置110のCPU111は、参照中のモジュールが分岐モジュールであるか否かを判定する。具合的には、処理フロー・入出力パラメータテーブルT600を参照して、参照中のモジュールが分岐モジュールであるか否かを判定する。分岐モジュールであると判定された場合には、ステップS1003に処理を進め、そうでない場合には、ステップS1008に処理を進める。
In step S1002, the
ステップS1003では、情報処理装置110のCPU111は、分岐モジュールの参照先テーブル607が示す分岐テーブル(THEN)を参照する。例えば、図6に示す処理フロー・入出力パラメータテーブルT600を用いて説明すると、分岐モジュールである「U00005:分岐」が参照されると、参照先テーブル607に格納された分岐テーブルのうち、分岐テーブル(THEN)を示す処理フロー・入出力パラメータテーブルT620−1を参照する。
In step S1003, the
ステップS1004では、情報処理装置110のCPU111は、ステップS1003で参照している分岐テーブル(THEN)のすべてのレコードの実行フラグ626を「OFF」に変更する。
In step S1004, the
ステップS1005では、情報処理装置110のCPU111は、分岐モジュールの参照先テーブル607が示す分岐テーブル(ELSE)を参照する。例えば、図6に示す処理フロー・入出力パラメータテーブルT600を用いて説明すると、分岐モジュールである「U00005:分岐」が参照されると、参照先テーブル607に格納された分岐テーブルのうち、分岐テーブル(ELSE)を示す処理フロー・入出力パラメータテーブルT620−2を参照する。
In step S1005, the
ステップS1006では、情報処理装置110のCPU111は、ステップS1005で参照している分岐テーブル(ELSE)のすべてのレコードの実行フラグ626を「OFF」に変更する。
In step S1006, the
ステップS1007では、情報処理装置110のCPU111は、処理フロー・入出力パラメータテーブル412のうち、現在参照しているモジュールの1つ下のモジュールを参照し、ステップS1002に処理を戻す。
In step S1007, the
ステップS1008では、情報処理装置110のCPU111は、参照中のモジュールがループモジュールであるか否かを判定する。具合的には、処理フロー・入出力パラメータテーブルT600を参照して、参照中のモジュールがループモジュールであるか否かを判定する。ループモジュールであると判定された場合には、ステップS1009に処理を進め、そうでない場合には、ステップS1011に処理を進める。
In step S1008, the
ステップS1009では、情報処理装置110のCPU111は、ループモジュールの参照先テーブル607が示すループテーブルを参照する。例えば、図6に示す処理フロー・入出力パラメータテーブルT600を用いて説明すると、ループモジュールである「U00001:ループ」が参照されると、参照先テーブル607に格納された分岐テーブルのうち、ループテーブルを示す処理フロー・入出力パラメータテーブルT610を参照する。
In step S1009, the
ステップS1010では、情報処理装置110のCPU111は、ステップS1009で参照しているループテーブルのすべてのレコードの実行フラグ616を「OFF」に変更する。更そして、ステップS1007に処理を進める。
In step S1010, the
ステップS1011では、情報処理装置110のCPU111は、参照中のモジュールの実行フラグ606を「OFF」に変更する。こちらも、処理フロー描画領域902において、実行フラグ626を「OFF」にしたモジュールのサムネイル表示を未実行状態であることがわかるようなサムネイル画像に変更する。詳細な処理については、ステップS1004で前述した通りである。ステップS1012では、情報処理装置110のCPU111は、基点モジュールよりも下流のモジュールがすべて終了したか否かを判定する。すべて終了していると判定された場合には、実行フラグOFF処理を終了し、呼び出し元に処理を戻し、そうでない場合には、ステップS1007に処理を進める。
In step S1011, the
このように、基点モジュールよりも下流に配置されたモジュールの実行フラグ606をすべて「OFF」にする。つまり、処理フローを変更することで影響を受けるのは、基点モジュールよりも下流に配置されたモジュールであるので、これらのモジュールの実行フラグ606を「OFF」に変更する。 In this way, all the execution flags 606 of the modules arranged downstream from the base point module are set to “OFF”. In other words, the modules that are affected by changing the processing flow are modules arranged downstream from the base module, so the execution flags 606 of these modules are changed to “OFF”.
次に、図20を参照して図17のステップS804の「前半実行処理」の詳細について説明する。図20は、情報処理装置110のCPU111によって行われる、「前半実行処理」の処理手順の一例を示すフローチャートである。本処理をCPU111に実行させるためのプログラムは外部メモリ116に記憶されており、本処理の実行要求を入力装置120より受け付けた場合に、CPU111は、当該プログラムをRAM112にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。
Next, the details of the “first half execution process” in step S804 in FIG. 17 will be described with reference to FIG. FIG. 20 is a flowchart illustrating an example of a “first half execution process” performed by the
ステップS1101では、情報処理装置110のCPU111は、処理フロー・入出力パラメータテーブル412に格納された先頭モジュールを参照する。つまり、処理フローの最初のモジュールを参照することになる。
In step S <b> 1101, the
ステップS1102では、情報処理装置110のCPU111は、参照しているモジュールの実行フラグ606が「OFF」であるか否かを判定する。つまり、参照中のモジュールが実行済みであるか否かを判定する。すでに実行済みであるならば、再実行してしまうと負荷がかかってしまう。なるべく実行済みであるのなら再実行をしないほうがよいので、ステップS1102において実行フラグ606が「OFF」か否かを判定している。実行フラグ606が「OFF」であると判定された場合には、ステップS1104に処理を進め、そうでない場合には、ステップS1103に処理を進める。
In step S1102, the
ステップS1103では、情報処理装置110のCPU111は、参照中のモジュールの次のモジュールを参照する。つまり、参照中のモジュールの1つ下に配置されたモジュールを参照する。そして、ステップS1102に処理を戻して、再度実行フラグ606が「OFF」であるか否かを判定する。
In step S1103, the
実行フラグが「OFF」であるモジュールが見つかったので、以降の処理で当該モジュールの実行(シミュレーション)を行う。ステップS1104では、情報処理装置110のCPU111は、参照中のモジュールが分岐モジュールであるか否かを判定する。具合的には、処理フロー・入出力パラメータテーブルT600を参照して、参照中のモジュールが分岐モジュールであるか否かを判定する。分岐モジュールであると判定された場合には、ステップS1105に処理を進め、そうでない場合には、ステップS1113に処理を進める。
Since a module whose execution flag is “OFF” has been found, the module is executed (simulated) in subsequent processing. In step S1104, the
ステップS1105では、情報処理装置110のCPU111は、モジュール・ソースコードマスタテーブル411と処理フロー・入出力パラメータテーブル412に基づいて、参照中の分岐モジュールを実行する。実行に際して、画像データが必要である場合には、カメラ140から取得するか、マスタ画像を使用する。ステップS1106では、情報処理装置110のCPU111は、分岐モジュールの判定結果が真か否かを判定する。判定結果が真であると判定された場合には、ステップS1107に処理を進め、そうでない場合には、ステップS1108に処理を進める。
In
ステップS1107では、情報処理装置110のCPU111は、判定結果が真であったので、分岐テーブル(THEN)の先頭モジュールを参照する。具体的には、処理フロー・入出力パラメータテーブルT620−1の先頭モジュールである、「U00006:文字表示」を参照する。一方、ステップS1108では、情報処理装置110のCPU111は、判定結果が真ではなかったので、分岐テーブル(ELSE)の先頭モジュールを参照する。具体的には、処理フロー・入出力パラメータテーブルT620−2の先頭モジュールである、「U00007:文字表示」を参照する。
In step S1107, the
ステップS1109では、情報処理装置110のCPU111は、参照しているモジュールの実行を行う。モジュール実行処理の詳細は、後述する図22に示す。
In step S1109, the
ステップS1110では、情報処理装置110のCPU111は、参照中の分岐テーブルに格納されたモジュールをすべて処理したか否かを判定する。すべて処理したと判定された場合には、ステップS1112に処理を進め、そうでない場合には、ステップS1111に処理を進める。
In step S1110, the
ステップS1111では、情報処理装置110のCPU111は、参照中のモジュールの次に実行するモジュールを参照する。そして、ステップS1109に処理を進める。
In step S1111, the
ステップS1112では、情報処理装置110のCPU111は、処理フロー・入出力パラメータテーブル412のうち、現在参照しているモジュールの次に実行すべきモジュールを参照する。そして、ステップS1104に処理を進める。
In step S <b> 1112, the
ステップS1113では、情報処理装置110のCPU111は、参照中のモジュールがループモジュールであるか否かを判定する。具合的には、処理フロー・入出力パラメータテーブルT600を参照して、参照中のモジュールがループモジュールであるか否かを判定する。ループモジュールであると判定された場合には、ステップS1114に処理を進め、そうでない場合には、ステップS1122に処理を進める。
In step S1113, the
ステップS1114では、情報処理装置110のCPU111は、モジュール・ソースコードマスタテーブル411と処理フロー・入出力パラメータテーブル412に基づいて、参照中のループモジュールを実行する。実行に際して、画像データが必要である場合には、カメラ140から取得するか、マスタ画像を使用する。ステップS1115では、情報処理装置110のCPU111は、ループモジュールの判定結果が真か否かを判定する。判定結果が真であると判定された場合には、ループを抜けてステップS1112に処理を進め、そうでない場合には、ステップS1116に処理を進める。
In
ステップS1116では、情報処理装置110のCPU111は、判定結果が真ではなかったので、ループテーブルの先頭モジュールを参照する。具体的には、図6に示す処理フロー・入出力パラメータテーブルT610の先頭レコードである「U00002:メディアン」を参照する。
In step S1116, the
ステップS1117では、情報処理装置110のCPU111は、参照しているモジュールの実行を行う。モジュール実行処理の詳細は、後述する図22に示す。
In step S1117, the
ステップS1120では、情報処理装置110のCPU111は、参照中のループテーブルに格納されたモジュールをすべて処理したか否かを判定する。すべて処理したと判定された場合には、ステップS1114に処理を戻し、そうでない場合には、ステップS1121に処理を進める。
In step S1120, the
ステップS1121では、情報処理装置110のCPU111は、ループテーブルのうち、参照中のモジュールの次に実行するモジュールを参照する。そして、ステップS1117に処理を進める。
In step S1121, the
ステップS1122では、情報処理装置110のCPU111は、参照中のモジュールが分岐モジュールでもループモジュールでもなかったため、参照しているモジュールの実行を行う。モジュール実行処理の詳細は、後述する図22に示す。
In step S1122, the
ステップS1123では、情報処理装置110のCPU111は、参照中のモジュールが図18のステップS909で決定した基点モジュールであるか否かを判定する。基点モジュールであると判定された場合には、ステップS1124に処理を進め、そうでない場合には、ステップS1112に処理を進める。つまり、前半実行処理は、ステップS1101で処理フローの先頭モジュールから処理を開始し、ステップS1123で基点モジュールまで実行して処理を終了する。先頭モジュールから基点モジュールまで実行し、基点モジュール以降のモジュールは実行しないことで、処理負荷の軽減を図っている。後述する後半実行処理とは異なり、基点モジュール以降のサムネイル画像は非表示となるが、その分、処理負荷を大幅に軽減させることができる。
In step S1123, the
ステップS1124では、情報処理装置110のCPU111は、基点モジュール以降のモジュールは実行しないので、基点モジュール以降のモジュールで表示するサムネイル画像を非表示またはブラックアウトさせる。こうすることで、実行したモジュールと実行していないモジュールをユーザが識別することができる。尚、本実施形態では、画像をブラックアウトさせているが、ユーザに対して当該モジュールの処理が実行されなかったことを認識させることができれば、どんな表示形態でもよい。サムネイル画像を他の異なるサムネイル画像に差し替えてもよいし、サムネイル画像自体を非表示としてもよい。完了したら、前半実行処理を終了し、呼び出し元に処理を戻す。
In step S1124, since the
次に、図21を参照して図17のステップS805の「後半実行処理」の詳細について説明する。図21は、情報処理装置110のCPU111によって行われる、「後半実行処理」の処理手順の一例を示すフローチャートである。本処理をCPU111に実行させるためのプログラムは外部メモリ116に記憶されており、本処理の実行要求を入力装置120より受け付けた場合に、CPU111は、当該プログラムをRAM112にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。
Next, the details of the “second half execution process” in step S805 of FIG. 17 will be described with reference to FIG. FIG. 21 is a flowchart illustrating an example of a processing procedure of “second half execution processing” performed by the
ステップS1201では、情報処理装置110のCPU111は、図18のステップS909で決定された基点モジュールよりも上流のモジュールが実行済み(シミュレーション済み)であるか否かを判定する。後半処理では、基点モジュールから実行を行うので、それよりも上流に配置されたモジュールを実行しなくてもよいか判定するための処理である。基点モジュールよりも上流のモジュールが実行済みであると判定された場合には、ステップS1203に処理を進め、そうでない場合には、処理フローに配置されたすべてのモジュールを実行する必要があるため、ステップS1202に処理を進める。
In step S1201, the
ステップS1202では、情報処理装置110のCPU111は、前述した実行処理を行う。実行処理の詳細は前述した図15に示す。後半処理では基点モジュールよりも上流に配置されたモジュールが実行済みである必要があるため、実行済みでないとこのように一度実行しておく必要がある。しかし、一度実行してしまえば、その後はステップS1201で実行済みと判定されるので、処理負荷の軽減が可能となる。
In step S1202, the
ステップS1203では、情報処理装置110のCPU111は、処理フロー・入出力パラメータテーブル412のうち、図18のステップS909で決定された基点モジュールを参照する。後半実行処理では、図20で説明した前半実行処理とは異なり、基点モジュールを参照して、それよりも下流に配置されたモジュールを実行する。
In step S1203, the
ステップS1203が完了すると、図20で前述したステップS1104乃至ステップS1122と同様の処理を行う。ここでは前述の通り、参照しているモジュールが分岐モジュールなのか、ループモジュールなのか、それ以外の通常のモジュールなのかを判定して、それぞれの処理を実行する。各ステップの詳細な説明は、前述の通りであるので省略する。 When step S1203 is completed, the same processing as in steps S1104 to S1122 described above with reference to FIG. 20 is performed. Here, as described above, it is determined whether the referenced module is a branch module, a loop module, or a normal module other than that, and each process is executed. The detailed description of each step is the same as described above, and will be omitted.
ステップS1204では、情報処理装置110のCPU111は、ステップS1122が完了すると、処理フローの最後のモジュール(最終モジュール)までの処理がすべて終了したか否かを判定する。すべて終了したと判定された場合には、最終結果の画像データ(最終結果画像データ)を最終結果画像表示領域912に表示した後(表示手段)、後半実行処理を終了して呼び出し元に処理を戻し、そうでない場合には、ステップS1112に処理を戻す。最終結果の画像データは、処理フローの最終モジュールが出力した処理結果の画像データを最終結果画像表示領域912に表示するようにすればよい。
In step S1204, when step S1122 is completed, the
このように、後半実行処理では、ステップS1203で処理フローの基点モジュールから処理を開始し、ステップS1204で処理フローの最終モジュールまで実行して処理を終了する。基点モジュールから最終モジュールまで実行し、基点モジュールまでのモジュールは実行しないことで、処理負荷の軽減を図っている。また、前半実行処理とは異なり、後半実行処理は、最終的にすべてのモジュールが実行済みとなるので、各モジュールのサムネイル画像表示領域903に処理結果のサムネイル画像を表示することも可能である。また、前半実行処理では処理フローの途中までしか実行されないので、最終結果の画像データは表示できないが、後半実行処理では最終結果の画像データを表示させることが可能である。こうすることで、処理負荷の軽減を図りつつも、最終結果を確認しながら作業を進めることができるようになる。
As described above, in the second half execution process, the process starts from the base module of the process flow in step S1203, and is executed until the last module of the process flow in step S1204. Processing from the base module to the final module is executed, and modules up to the base module are not executed, thereby reducing the processing load. Further, unlike the first half execution process, since all modules are finally executed in the second half execution process, it is also possible to display the thumbnail image of the processing result in the thumbnail
次に、図22を参照して図20のステップS1109等の「モジュール実行処理」の詳細について説明する。図22は、情報処理装置110のCPU111によって行われる、「モジュール実行処理」の処理手順の一例を示すフローチャートである。本処理をCPU111に実行させるためのプログラムは外部メモリ116に記憶されており、本処理の実行要求を入力装置120より受け付けた場合に、CPU111は、当該プログラムをRAM112にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。
Next, details of the “module execution process” in step S1109 and the like in FIG. 20 will be described with reference to FIG. FIG. 22 is a flowchart illustrating an example of a processing procedure of “module execution processing” performed by the
ステップS1301では、情報処理装置110のCPU111は、参照中のモジュールで行う処理で、画像データを使用するか否かを判定する。モジュールによっては、画像データを使用せず、設定された文字列を画面に表示するだけのもの等があるため、このような処理を行っている。画像データを使用すると判定された場合には、ステップS1302に処理を進め、そうでない場合には、ステップS1308に処理を進める。
In step S <b> 1301, the
ステップS1302では、情報処理装置110のCPU111は、参照中のモジュールが図18のステップS909で決定された基点モジュールであるか否かを判定する。基点モジュールであると判定された場合には、ステップS1303に処理を進め、そうでない場合には、ステップS1307に処理を進める。
In step S1302, the
ステップS1303では、情報処理装置110のCPU111は、実行中の処理が図17のステップS805で実行される後半実行処理であるか否かを判定する。後半実行処理では、前述した通り、基点モジュールよりも上流に配置されたモジュールは実行しないので、基点モジュールで使用する画像データを実行済みのモジュールから取得する処理を後述するステップS1304乃至ステップS1306の処理で行う。よって、ステップS1303でこのような判定を行っている。後半実行処理であると判定された場合には、ステップS1304に処理を進め、そうでない場合には、ステップS1307に処理を進める。
In step S1303, the
ステップS1304では、情報処理装置110のCPU111は、処理履歴テーブル419を参照し、処理フローを実行した場合に基点モジュールが実行される順番を特定する。例えば、図27に示すように、「二値化」モジュールを「ラベリング」モジュールの前に追加した場合を想定する。この場合、図7に示す処理履歴テーブルT700を見ると、「二値化」モジュールはINDEX701が「7」の前に実行されるはずである。よって、INDEX701が「6」と「7」の間を特定しておく。
In step S1304, the
ステップS1305では、情報処理装置110のCPU111は、ステップS1304で特定された順番より上流に配置されたモジュールのうち、処理結果画像703を持っている最も近いモジュールを特定する。ステップS1304での具体例を基に説明をすると、ステップS1304で特定された位置より上流のモジュールは、INDEX701が「1」から「6」となる。このうち、処理結果画像703があるモジュールはINDEX701が「3」と「5」である。そして、ステップS1304で特定された位置に最も近いのは、INDEX701が「5」の「U00002:メディアン」となる。このようにして、実行済みのモジュールのうち、処理結果画像を出力したモジュールで、最も基点モジュールに近いモジュールを特定する。
In step S1305, the
ステップS1306では、情報処理装置110のCPU111は、ステップS1305で特定されたモジュールから処理結果画像(処理済みデータ)を取得する。引き続き具体例を基に説明すると、ステップS1305で特定されたINDEX701が「5」の「U00002:メディアン」で出力された処理結果画像703「画像B−2」をRAM112等から取得する。
In step S1306, the
ステップS1304乃至ステップS1306は、図33のような場合に特に有効である。図33では、「二値化」モジュールを分岐モジュールの下に追加した場合を想定している。このような場合に後半実行処理を行うと、「二値化」モジュールは「U00006:輝度反転」と「U00007:輝度反転」のどちらの処理結果画像を取得すればいいのかわからない。このときに、図33に示す処理履歴テーブルT700を参照して、「二値化」モジュールが実行される順番を特定し、そこから上流のモジュールのうち、処理結果画像703を持つ最も近いモジュールである「U00006:輝度反転」を特定する。そして、特定された「U00006:輝度反転」から処理結果画像703を取得すればよい。このようにして、前回の実行履歴を基に、画像処理に使用する画像データを取得するようにすれば、問題なく後半実行処理が実行できる。
Steps S1304 to S1306 are particularly effective in the case shown in FIG. In FIG. 33, it is assumed that a “binarization” module is added below the branch module. When the second half execution process is performed in such a case, the “binarization” module does not know which of “U00006: luminance inversion” or “U00007: luminance inversion” should be acquired. At this time, with reference to the processing history table T700 shown in FIG. 33, the order in which the “binarization” modules are executed is specified, and the module closest to the
ステップS1307では、情報処理装置110のCPU111は、モジュールに設定された入力パラメータ604に基づいて、処理結果画像を取得する。
In step S1307, the
ステップS1308では、情報処理装置110のCPU111は、モジュール・ソースコードマスタテーブル411と処理フロー・入出力パラメータテーブル412に基づいて、参照中のモジュールを実行する。画像データを使用する場合には、ステップS1306またはステップS1307で取得した画像データを用いる。
In
ステップS1309では、情報処理装置110のCPU111は、ステップS1308で実行されたモジュールの順序と処理結果の画像データとを処理履歴テーブル419に記憶する(結果保存手段)。ステップS1310では、情報処理装置110のCPU111は、ステップS1309で更新された処理履歴テーブル419に基づいて、処理フロー描画領域902に表示する処理フロー上に処理ルートの軌跡を表示する。
In step S1309, the
ステップS1311では、情報処理装置110のCPU111は、ステップS1308で実行された参照中のモジュールの実行フラグ606を「ON」に変更する。こうすることで、実行済みとする。
In step S1311, the
ステップS1312では、情報処理装置110のCPU111は、ステップS1308で実行された結果、処理結果画像が存在するか否かを判定する。処理結果画像が存在する場合には、ステップS1313に処理を進め、そうでない場合には、モジュール実行処理を終了し、呼び出し元に処理を戻す。
In step S1312, the
ステップS1313では、情報処理装置110のCPU111は、フラグ設定テーブル418を参照して、処理フロー描画領域902のサムネイル画像表示領域903に処理結果画像のサムネイル画像を表示するか否かを判定する。具体的には、図5のフラグ設定テーブルT510のサムネイル表示フラグ513に「ON」が格納されていれば、サムネイル画像の表示を行う。サムネイル画像を表示すると判定された場合には、ステップS1314に処理を進め、そうでない場合には、モジュール実行処理を終了し、呼び出し元に処理を戻す。
In step S <b> 1313, the
ステップS1314では、情報処理装置110のCPU111は、参照中のモジュールの処理結果画像を縮小し、サムネイル画像を生成する(サムネイル画像生成手段)。そして、ステップS1315では、情報処理装置110のCPU111は、サムネイル画像表示領域903に、参照中のモジュールのサムネイル画像を表示する(サムネイル画像表示手段)。完了したら、モジュール実行処理を終了し、呼び出し元に処理を戻す。
In step S1314, the
次に、図23乃至図33を参照して、前述したモジュールの追加、変更、移動、削除の前半実行処理と後半実行処理について説明を行う。 Next, with reference to FIGS. 23 to 33, the first half execution process and the second half execution process of adding, changing, moving, and deleting the module described above will be described.
まず、図23乃至図25を参照して、モジュールを追加する場合について説明する。前提として、処理フロー描画領域902には図23に示すような処理フローが構築されており、一度すべてのモジュールが実行されている。また、処理フロー・入出力パラメータテーブル412は、図23に示すような処理フロー・入出力パラメータテーブルT600となっている。尚、参照先テーブル607の分岐テーブルやループテーブルは、図6の処理フロー・入出力パラメータテーブルT610と処理フロー・入出力パラメータテーブルT620に示す通りである。
First, a case where a module is added will be described with reference to FIGS. As a premise, a processing flow as shown in FIG. 23 is constructed in the processing
この場合に、図24に示すように、「二値化」モジュールを処理モジュール一覧901から選択して、ドラッグ&ドロップで「ラベリング」モジュールの1つ上に追加されたとする。すると、ステップS801で「二値化」モジュールを基点モジュールとし、ステップS802で「二値化」モジュールよりも下流に配置されているモジュールの実行フラグ606を「OFF」に更新する。これらを行うと、図25の処理フロー・入出力パラメータテーブルT600に示すようなデータに更新される。つまり、「二値化」モジュールのレコードを「ラベリング」モジュールの1つ上に追加し、「二値化」モジュール以降の実行フラグ606を「OFF」に更新する。
In this case, as shown in FIG. 24, it is assumed that the “binarization” module is selected from the
そして、前半実行処理(ステップS804)または後半実行処理(ステップS805)を実行する。図25に示す通り、前半実行処理は先頭モジュール(「START」モジュール)から基点モジュール(「二値化」モジュール)までを実行し、それ以降は実行しない。後半実行処理は、基点モジュール(「二値化」モジュール)から最終モジュール(「STOP」モジュール)まで実行し、それ以前は実行しない。このような実行にすることで、処理フローをすべて実行するよりも処理負荷を軽くすることができる。また、基点モジュールは確実に実行されるので、モジュールを追加した場合でも処理結果を確認することができる。 Then, the first half execution process (step S804) or the second half execution process (step S805) is executed. As shown in FIG. 25, the first half execution process executes from the top module (“START” module) to the base point module (“binarization” module), and does not execute thereafter. The second half execution process is executed from the base point module (“binarization” module) to the last module (“STOP” module), and is not executed before that. By performing such an execution, the processing load can be reduced as compared to executing the entire processing flow. In addition, since the base point module is reliably executed, the processing result can be confirmed even when the module is added.
次に、図26乃至図28を参照して、モジュールのパラメータを変更する場合について説明する。前提として、処理フロー描画領域902には図26に示すような処理フローが構築されており、一度すべてのモジュールが実行されている。また、処理フロー・入出力パラメータテーブル412は、図26に示すような処理フロー・入出力パラメータテーブルT600となっている。尚、参照先テーブル607の分岐テーブルやループテーブルは、図6の処理フロー・入出力パラメータテーブルT610と処理フロー・入出力パラメータテーブルT620に示す通りである。
Next, with reference to FIGS. 26 to 28, a case where the module parameters are changed will be described. As a premise, a processing flow as shown in FIG. 26 is constructed in the processing
この場合に、図27に示すように、処理フロー描画領域902に表示された処理フローから「二値化」モジュールを選択して、パラメータ編集画面904を開き、パラメータの変更が行われたとする。すると、ステップS801で「二値化」モジュールを基点モジュールとし、ステップS802で「二値化」モジュールよりも下流に配置されているモジュールの実行フラグ606を「OFF」に更新する。これらを行うと、図28の処理フロー・入出力パラメータテーブルT600に示すようなデータに更新される。つまり、「二値化」モジュール以降の実行フラグ606を「OFF」に更新する。
In this case, as shown in FIG. 27, it is assumed that the “binarization” module is selected from the processing flow displayed in the processing
そして、前半実行処理(ステップS804)または後半実行処理(ステップS805)を実行する。図28に示す通り、前半実行処理は先頭モジュール(「START」モジュール)から基点モジュール(「二値化」モジュール)までを実行し、それ以降は実行しない。後半実行処理は、基点モジュール(「二値化」モジュール)から最終モジュール(「STOP」モジュール)まで実行し、それ以前は実行しない。このような実行にすることで、処理フローをすべて実行するよりも処理負荷を軽くすることができる。 Then, the first half execution process (step S804) or the second half execution process (step S805) is executed. As shown in FIG. 28, the first half execution process executes from the top module (“START” module) to the base point module (“binarization” module), and does not execute thereafter. The second half execution process is executed from the base point module (“binarization” module) to the last module (“STOP” module), and is not executed before that. By performing such an execution, the processing load can be reduced as compared to executing the entire processing flow.
次に、図26、図29、図30を参照して、モジュールを下に移動する場合について説明する。前提として、処理フロー描画領域902には図26に示すような処理フローが構築されており、一度すべてのモジュールが実行されている。また、処理フロー・入出力パラメータテーブル412は、図26に示すような処理フロー・入出力パラメータテーブルT600となっている。尚、参照先テーブル607の分岐テーブルやループテーブルは、図6の処理フロー・入出力パラメータテーブルT610と処理フロー・入出力パラメータテーブルT620に示す通りである。
Next, a case where the module is moved downward will be described with reference to FIGS. 26, 29, and 30. FIG. As a premise, a processing flow as shown in FIG. 26 is constructed in the processing
この場合に、図29に示すように、処理フロー描画領域902に表示された処理フローから「二値化」モジュールを選択して、ドラッグ&ドロップで「ラベリング」モジュールの1つ下に移動されたとする。すると、ステップS801で「ラベリング」モジュールを基点モジュールとし、ステップS802で「ラベリング」モジュールよりも下流に配置されているモジュールの実行フラグ606を「OFF」に更新する。これらを行うと、図30の処理フロー・入出力パラメータテーブルT600に示すようなデータに更新される。つまり、「二値化」モジュールのレコードを「ラベリング」モジュールの1つ下に移動させ、「ラベリング」モジュール以降の実行フラグ606を「OFF」に更新する。移動されたのは「二値化」モジュールだが、「ラベリング」モジュールが基点モジュールとなるのは、「二値化」モジュールが元々配置されていた場所からいなくなることで、その場所以降のモジュールの画像処理に影響があるからである。よって、元々「二値化」モジュールがいた場所の1つ下の「ラベリング」モジュールを基点モジュールとしている。
In this case, as shown in FIG. 29, it is assumed that the “binarization” module is selected from the processing flow displayed in the processing
そして、前半実行処理(ステップS804)または後半実行処理(ステップS805)を実行する。図30に示す通り、前半実行処理は先頭モジュール(「START」モジュール)から基点モジュール(「ラベリング」モジュール)までを実行し、それ以降は実行しない。後半実行処理は、基点モジュール(「ラベリング」モジュール)から最終モジュール(「STOP」モジュール)まで実行し、それ以前は実行しない。このような実行にすることで、処理フローをすべて実行するよりも処理負荷を軽くすることができる。 Then, the first half execution process (step S804) or the second half execution process (step S805) is executed. As shown in FIG. 30, the first half execution process executes from the first module (“START” module) to the base point module (“labeling” module), and does not execute thereafter. The second half execution process is executed from the base point module (“labeling” module) to the last module (“STOP” module), and is not executed before that. By performing such an execution, the processing load can be reduced as compared to executing the entire processing flow.
次に、図26、図31、図32を参照して、モジュールを削除する場合について説明する。前提として、処理フロー描画領域902には図26に示すような処理フローが構築されており、一度すべてのモジュールが実行されている。また、処理フロー・入出力パラメータテーブル412は、図26に示すような処理フロー・入出力パラメータテーブルT600となっている。尚、参照先テーブル607の分岐テーブルやループテーブルは、図6の処理フロー・入出力パラメータテーブルT610と処理フロー・入出力パラメータテーブルT620に示す通りである。
Next, the case of deleting a module will be described with reference to FIGS. As a premise, a processing flow as shown in FIG. 26 is constructed in the processing
この場合に、図31に示すように、処理フロー描画領域902に表示された処理フローから「二値化」モジュールを選択して、削除されたとする。すると、ステップS801で「ラベリング」モジュールを基点モジュールとし、ステップS802で「ラベリング」モジュールよりも下流に配置されているモジュールの実行フラグ606を「OFF」に更新する。これらを行うと、図32の処理フロー・入出力パラメータテーブルT600に示すようなデータに更新される。つまり、「二値化」モジュールのレコードを削除し、「ラベリング」モジュール以降の実行フラグ606を「OFF」に更新する。「ラベリング」モジュールが基点モジュールとなるのは、「二値化」モジュールが元々配置されていた場所からいなくなることで、その場所以降のモジュールの画像処理に影響があるからである。よって、元々「二値化」モジュールがいた場所の1つ下の「ラベリング」モジュールを基点モジュールとしている。
In this case, as shown in FIG. 31, it is assumed that the “binarization” module is selected from the processing flow displayed in the processing
そして、前半実行処理(ステップS804)または後半実行処理(ステップS805)を実行する。図32に示す通り、前半実行処理は先頭モジュール(「START」モジュール)から基点モジュール(「ラベリング」モジュール)までを実行し、それ以降は実行しない。後半実行処理は、基点モジュール(「ラベリング」モジュール)から最終モジュール(「STOP」モジュール)まで実行し、それ以前は実行しない。このような実行にすることで、処理フローをすべて実行するよりも処理負荷を軽くすることができる。 Then, the first half execution process (step S804) or the second half execution process (step S805) is executed. As shown in FIG. 32, the first half execution process executes from the first module (“START” module) to the base point module (“labeling” module) and does not execute thereafter. The second half execution process is executed from the base point module (“labeling” module) to the last module (“STOP” module), and is not executed before that. By performing such an execution, the processing load can be reduced as compared to executing the entire processing flow.
次に、図39を参照して、実行フラグの必要性について説明する。前述した通り、モジュールに対して追加、移動、削除、パラメータ変更等の操作がユーザからなされた場合には、前半実行処理または後半実行処理を行うことで、処理負荷の軽減を図っている。この時、後半実行処理では実行フラグの状態を見ていない。何故なら、基点モジュールよりも下流に配置されたモジュールを再実行すればよいだけだからである。しかしながら、前半実行の場合には、実行フラグのONとOFFを見ている。これは、図39のような場合があるからである。図39では、図24に示すように「二値化」モジュールが処理フローに追加された後に、更に「輝度反転」モジュールを追加する場合である。図39を見ると、「輝度反転」モジュールは、実行フラグが「OFF」になっている「ラベリング」モジュールの下に追加されている。この追加に伴って前半実行処理が行われると、前述したステップS1101乃至ステップS1103において、先頭から実行フラグが「OFF」となっているモジュールを探索していくことになる。「ループ」モジュール、「メディアン」モジュール、「二値化」モジュールは、実行フラグが「ON」だが、「ラベリング」モジュールは、実行フラグが「OFF」である。よって、ここから基点モジュールの「輝度反転」モジュールまでが再実行されることになる。このように、前半実行処理は基点モジュールだけを実行しているかのように見えるが、図39のようなパターンもある。そのため、処理フローに配置されたモジュールごとに実行フラグの管理をしておくことで、図39のようなパターンも適切に処理できるようにしている。 Next, the necessity of the execution flag will be described with reference to FIG. As described above, when the user performs operations such as addition, movement, deletion, and parameter change, the first half execution process or the second half execution process is performed to reduce the processing load. At this time, the execution flag state is not seen in the second half execution process. This is because it is only necessary to re-execute a module arranged downstream from the base point module. However, in the case of the first half execution, the execution flag is turned ON and OFF. This is because there are cases as shown in FIG. In FIG. 39, as shown in FIG. 24, after the “binarization” module is added to the processing flow, a “brightness inversion” module is further added. 39, the “brightness inversion” module is added under the “labeling” module whose execution flag is “OFF”. When the first half execution process is performed along with this addition, the module whose execution flag is “OFF” is searched from the top in steps S1101 to S1103 described above. The execution flag of the “loop” module, the “median” module, and the “binarization” module is “ON”, but the execution flag of the “labeling” module is “OFF”. Therefore, from here to the “brightness inversion” module of the base point module is re-executed. In this way, the first half execution process appears to be executing only the base point module, but there is a pattern as shown in FIG. Therefore, by managing execution flags for each module arranged in the processing flow, a pattern as shown in FIG. 39 can be appropriately processed.
次に、本発明の第2の実施形態について説明を行う。 Next, a second embodiment of the present invention will be described.
前述した実施形態では、モジュールが処理フロー上で操作されると、どのようなモジュールであっても図17に示す探索実行処理が行われる。しかしながら、画像処理を再実行する必要のある場合は、最終的な出力結果や途中結果が変更となる場合である。最終的な出力結果や途中結果が変更となるのは、画像処理を行うモジュールが操作された場合である。 In the above-described embodiment, when a module is operated on the processing flow, the search execution process shown in FIG. 17 is performed for any module. However, when it is necessary to re-execute image processing, the final output result or intermediate result is changed. The final output result or intermediate result is changed when a module that performs image processing is operated.
画像処理を行うモジュールは、対象の画像データに画像処理を実行し、他のモジュール(当該モジュールよりも下流に配置されたモジュール)にその処理結果である画像データを渡す仕組みになっている。つまり、処理結果の画像データが変われば、その処理結果を受け取ったモジュールの処理結果に影響が出てくる。よって、画像処理を行うモジュールに対して追加、移動、削除、パラメータ変更等の操作がなされた場合には、探索実行処理を実行して、処理負荷の軽減を図る必要がある。 The module that performs image processing is configured to execute image processing on target image data and to pass the image data that is the processing result to another module (a module arranged downstream of the module). That is, if the image data of the processing result changes, the processing result of the module that received the processing result is affected. Therefore, when an operation such as addition, movement, deletion, or parameter change is performed on a module that performs image processing, it is necessary to reduce the processing load by executing search execution processing.
しかしながら、画像処理を行わないモジュールも存在する。例えば、分岐やループといった処理フローの処理順を変更するためのモジュールや、画面に「OK」や「NG」といった文字表示を行うだけのモジュール等である。このようなモジュールが操作されたとしても、画像データに画像処理を実行しないので、最終的な出力結果や途中結果に影響はない。よって、画像処理を行わないモジュールが操作された場合には、図17に示す探索実行処理を実行しないことで、更なる処理負荷の軽減を図る。以下、この仕組みについて説明を行う。 However, some modules do not perform image processing. For example, a module for changing the processing order of the processing flow such as branching or loop, a module for simply displaying characters such as “OK” and “NG” on the screen, and the like. Even if such a module is operated, image processing is not performed on the image data, and the final output result or intermediate result is not affected. Therefore, when a module that does not perform image processing is operated, the search execution process shown in FIG. 17 is not executed, thereby further reducing the processing load. Hereinafter, this mechanism will be described.
第2の実施形態のシステム構成、ハードウェア構成、モジュール構成は、前述した実施形態のシステム構成(図1)、ハードウェア構成(図2、図3)、モジュール構成(図4)と同様であるので説明を省略する。 The system configuration, hardware configuration, and module configuration of the second embodiment are the same as the system configuration (FIG. 1), hardware configuration (FIGS. 2 and 3), and module configuration (FIG. 4) of the above-described embodiment. Therefore, explanation is omitted.
また、第2の実施形態で使用する図38に示すモジュール・ソースコードマスタテーブルT800は、図4のモジュール・ソースコードマスタテーブル411である。Index801、処理モジュール802、ソースコード803、初期値804、処理主体805は、それぞれ図5に示すモジュール・ソースコードマスタテーブル411のIndex501、処理モジュール502、ソースコード503、初期値504、処理主体505と同様である。
The module / source code master table T800 shown in FIG. 38 used in the second embodiment is the module / source code master table 411 shown in FIG. The
モジュール・ソースコードマスタテーブルT800は、更に属性806を備える。属性806は、モジュールが画像データを保持するインターフェース(IsetTargetImage)を持っているか否かを示す情報である。画像データを保持するためのインターフェースを持つモジュールというのは、つまり画像処理を行うモジュールである。画像処理を行わないモジュールは、このインターフェースを持っていないので、属性806には空の値が格納されている。
The module / source code master table T800 further includes an
「IsetTargetImage」は、モジュールが画像処理を行う画像データを保持するためのインターフェースである。すなわち、この「IsetTargetImage」は、処理フローの上流のモジュールで画像処理された処理結果の画像データを受け取るインターフェースである。「IsetTargetImage」で受け取った画像データは、画像処理が実行され、また、処理された画像データはサムネイル表示にも利用される。「IsetTargetImage」を持っているモジュールは、粒子解析、二値化、空間フィルタ等がある。一方、「IsetTargetImage」を持っていないモジュールは、分岐、ループ、文字表示モジュール等がある。「IsetTargetImage」を持っていないモジュールは、モジュール内で画像処理を実行しないため、画像データを保持する機能を有していない。 “IsetTargetImage” is an interface for holding image data on which the module performs image processing. That is, this “IsetTargetImage” is an interface that receives image data of a processing result that has been subjected to image processing by a module upstream in the processing flow. The image data received by “IsetTargetImage” is subjected to image processing, and the processed image data is also used for thumbnail display. Modules having “IsetTargetImage” include particle analysis, binarization, and spatial filter. On the other hand, modules that do not have “IsetTargetImage” include branch, loop, and character display modules. Modules that do not have “IsetTargetImage” do not execute image processing within the module, and therefore do not have a function of holding image data.
よって、モジュール・ソースコードマスタテーブルT800の属性806に基づいて、「IsetTargetImage」の有無を判定すれば、画像処理を行うモジュールなのか、画像処理を行わないモジュールなのかが判断できる。
Therefore, based on the
その他のテーブルについては前述した実施形態と同様であるので説明を省略する。 The other tables are the same as those in the above-described embodiment, and thus description thereof is omitted.
次に、第2の実施形態における詳細な処理について説明を行う。尚、第2の実施形態は、前述した実施形態における図8のステップS108(追加処理)、ステップS110(変更処理)、ステップS112(移動処理)、ステップS114(削除処理)の変形例である。よって、これらの処理の変形例について説明を行う。それ以外の処理については、前述した実施形態と同様であるので説明を省略する。 Next, detailed processing in the second embodiment will be described. Note that the second embodiment is a modification of step S108 (addition processing), step S110 (change processing), step S112 (movement processing), and step S114 (deletion processing) in FIG. Therefore, a modified example of these processes will be described. Since other processes are the same as those in the above-described embodiment, description thereof will be omitted.
次に、図34を参照して図8のステップS108の「追加処理」の詳細について説明する。図34は、情報処理装置110のCPU111によって行われる、「追加処理」の処理手順の一例を示すフローチャートである。本処理をCPU111に実行させるためのプログラムは外部メモリ116に記憶されており、本処理の実行要求を入力装置120より受け付けた場合に、CPU111は、当該プログラムをRAM112にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。
Next, the details of the “addition process” in step S108 of FIG. 8 will be described with reference to FIG. FIG. 34 is a flowchart illustrating an example of a processing procedure of “addition processing” performed by the
ステップS1401では、情報処理装置110のCPU111は、ステップS106において処理モジュール一覧901で選択されたモジュールを特定する。そして、ステップS1402では、情報処理装置110のCPU111は、ステップS106において指定された、モジュールの追加先を特定する。なお、ステップS1401のモジュールの特定処理とステップS1402の追加先の特定処理との処理の順番を、逆にする形態であってもよい。
In step S1401, the
ステップS1403では、情報処理装置110のCPU111は、処理フロー描画領域902に描画(表示)されている処理フローに、特定したモジュールを追加し、処理フロー描画領域902を再描画(再表示)する処理を行う。
In step S1403, the
ステップS1404では、情報処理装置110のCPU111は、ステップS1402で特定したモジュールの追加処理に伴って、処理フロー・入出力パラメータテーブル412の更新を行う。例えば、図23に示す処理フローと処理フロー・入出力パラメータテーブルT600があった場合に、図24に示すように「二値化」モジュールを新しく追加するとする。このときに、「二値化」モジュールは、「ループ」モジュールと「ラベリング」モジュールの間に挿入する形で追加するので、図25に示す処理フロー・入出力パラメータテーブルT600の通りに更新する。具体的には、モジュール・ソースコードマスタテーブル411で得られた情報を基に、「U00003:二値化」を追加し、INDEX601と順序602を振り直す。入力パラメータ604と出力パラメータ605を設定し直す。そして、「二値化」モジュールのレコードの実行フラグ606に「ON」を格納する。なお、このステップでは、他の実行フラグ606は更新しない。
In step S <b> 1404, the
ステップS1405では、情報処理装置110のCPU111は、ステップS1403で追加されたモジュールが、画像処理を行うモジュールなのか否かを判定する。つまり、探索実行処理やサムネイルの更新をするべきモジュールなのか否かを判定する。具体的には、モジュール・ソースコードマスタテーブルT800の属性806に画像を保持するインターフェース「IsetTargetImage」が存在するか否かを判定すればよい。「IsetTargetImage」が存在すれば自動実行を行い、「IsetTargetImage」が存在しなければ自動実行を行わない。自動実行をすると判定された場合には、ステップS1406に処理を進め、そうでない場合には、追加処理を終了し、呼び出し元に処理を戻す。
In step S1405, the
ステップS1406では、情報処理装置110のCPU111は、自動実行するか否かを判定する。具体的には、自動実行フラグ511に「ON」が格納されているか否かを判定する。「ON」が格納されていれば自動実行を行い、「OFF」が格納されていれば自動実行を行わない。自動実行をすると判定された場合には、ステップS1407に処理を進め、そうでない場合には、追加処理を終了し、呼び出し元に処理を戻す。
In step S1406, the
ステップS1407では、情報処理装置110のCPU111は、探索実行処理を行う。探索実行処理では、変更があったモジュールまでを再実行、または変更があったモジュールから再実行するための処理を行う。つまり、全体を実行せずに一部だけを実行するようにすることで、処理負荷の軽減を図っている。探索実行処理の詳細は、図17で前述した通りである。探索実行処理が終了したら、追加処理を終了し、呼び出し元に処理を戻す。
In step S1407, the
追加処理では、処理フローに追加したモジュールが画像処理を行うモジュールなのか否かを判定し、画像処理を行うモジュールなら探索実行処理を実行し、画像処理を行うモジュールでないなら、探索実行処理を実行させない。こうすることで、画像処理を行わないモジュールが処理フローに追加された場合の探索実行処理を実行しないようにすることができる。 In addition processing, it is determined whether the module added to the processing flow is a module that performs image processing. If the module performs image processing, search execution processing is executed. If the module is not image processing processing, search execution processing is executed. I won't let you. By doing so, it is possible to prevent the search execution process from being executed when a module that does not perform image processing is added to the processing flow.
次に、図35を参照して図8のステップS110の「変更処理」の詳細について説明する。図35は、情報処理装置110のCPU111によって行われる、「変更処理」の処理手順の一例を示すフローチャートである。本処理をCPU111に実行させるためのプログラムは外部メモリ116に記憶されており、本処理の実行要求を入力装置120より受け付けた場合に、CPU111は、当該プログラムをRAM112にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。
Next, the details of the “change processing” in step S110 of FIG. 8 will be described with reference to FIG. FIG. 35 is a flowchart illustrating an example of a processing procedure of “change processing” performed by the
ステップS1501では、情報処理装置110のCPU111は、ステップS106において処理フロー描画領域902で選択されたモジュールを特定する。ステップS1502では、情報処理装置110のCPU111は、画像処理プロジェクト開発画面900にパラメータ編集画面904を表示する。パラメータ編集画面904では、ステップS1501で特定されたモジュールのパラメータ設定を受け付ける。
In step S1501, the
ステップS1503では、情報処理装置110のCPU111は、入力装置120から任意のパラメータが変更されたか否かを判定する。パラメータが変更されたと判定された場合には、ステップS1504に処理を進め、そうでない場合には、パラメータが変更されるまで待機する。
In step S1503, the
ステップS1504では、情報処理装置110のCPU111は、変更のあったパラメータを特定し、当該パラメータを設定した処理結果を調整結果画像表示領域905に表示する。そして、ステップS1505では、情報処理装置110のCPU111は、変更のあったパラメータを設定するか否かを判定する。具体的には、パラメータ編集画面904に備えられた不図示の確定ボタンが押下されたか否かを判定する。パラメータを設定すると判定された場合には、ステップS1506に処理を進め、そうでない場合には、待機する。
In step S1504, the
ステップS1506では、情報処理装置110のCPU111は、処理フロー・入出力パラメータテーブル412を更新する。例えば、図26に示す処理フローと処理フロー・入出力パラメータテーブルT600があった場合に、図27に示すように「二値化」モジュールのパラメータを変更するとする。このとき、変更を受け付けたパラメータに従って、図28に示す処理フロー・入出力パラメータテーブルT600の「二値化」モジュールのレコードを更新する。なお、このステップでは、実行フラグ606は更新しない。
In step S 1506, the
ステップS1507では、情報処理装置110のCPU111は、ステップS1504でパラメータ変更されたモジュールが、画像処理を行うモジュールなのか否かを判定する。つまり、探索実行処理やサムネイルの更新をするべきモジュールなのか否かを判定する。具体的には、モジュール・ソースコードマスタテーブルT800の属性806に画像を保持するインターフェース「IsetTargetImage」が存在するか否かを判定すればよい。「IsetTargetImage」が存在すれば自動実行を行い、「IsetTargetImage」が存在しなければ自動実行を行わない。自動実行をすると判定された場合には、ステップS1508に処理を進め、そうでない場合には、追加処理を終了し、呼び出し元に処理を戻す。
In step S1507, the
ステップS1508では、情報処理装置110のCPU111は、自動実行するか否かを判定する。自動実行をすると判定された場合には、ステップS1509に処理を進め、そうでない場合には、変更処理を終了し、呼び出し元に処理を戻す。
In step S1508, the
ステップS1509では、情報処理装置110のCPU111は、探索実行処理を行う。探索実行処理の詳細は、図17で前述した通りである。探索実行処理が終了したら、変更処理を終了し、呼び出し元に処理を戻す。
In step S1509, the
変更処理では、パラメータ変更のなされたモジュールが画像処理を行うモジュールなのか否かを判定し、画像処理を行うモジュールなら探索実行処理を実行し、画像処理を行うモジュールでないなら、探索実行処理を実行させない。こうすることで、画像処理を行わないモジュールのパラメータ変更がなされた場合の探索実行処理を実行しないようにすることができる。 In the change process, it is determined whether or not the module whose parameter has been changed is a module that performs image processing. If the module performs image processing, the search execution process is executed. If the module does not perform image processing, the search execution process is executed. I won't let you. By doing so, it is possible to prevent the search execution process from being executed when the parameter of a module that does not perform image processing is changed.
次に、図36を参照して図8のステップS112の「移動処理」の詳細について説明する。図36は、情報処理装置110のCPU111によって行われる、「移動処理」の処理手順の一例を示すフローチャートである。本処理をCPU111に実行させるためのプログラムは外部メモリ116に記憶されており、本処理の実行要求を入力装置120より受け付けた場合に、CPU111は、当該プログラムをRAM112にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。
Next, the details of the “movement process” in step S112 in FIG. 8 will be described with reference to FIG. FIG. 36 is a flowchart illustrating an example of a “moving process” processing procedure performed by the
ステップS1601では、情報処理装置110のCPU111は、ステップS106において処理フロー描画領域902で選択されたモジュールを特定する。ステップS1602では、情報処理装置110のCPU111は、ステップS106において指定された、モジュールの移動先を特定する。
In step S1601, the
ステップS1603では、情報処理装置110のCPU111は、処理フロー描画領域902において、ステップS1602で特定された移動先に、ステップS1601で特定されたモジュールを移動させる。
In step S1603, the
ステップS1604では、情報処理装置110のCPU111は、処理フロー・入出力パラメータテーブル412を更新する。例えば、図26に示す処理フローと処理フロー・入出力パラメータテーブルT600があった場合に、図29に示すように「二値化」モジュールを「ラベリング」モジュールの下に移動させるとする。このとき、図30に示す処理フロー・入出力パラメータテーブルT600の通り、モジュール名603「U00003:二値化」を「U00004:ラベリング」の下にレコードを移動する。そして、INDEX601と順序602を振り直す。また、必要があれば入力パラメータ604と出力パラメータ605を設定し直す。なお、このステップでは、実行フラグ606は更新しない。
In step S <b> 1604, the
ステップS1605では、情報処理装置110のCPU111は、ステップS1603で移動されたモジュールが、画像処理を行うモジュールなのか否かを判定する。つまり、探索実行処理やサムネイルの更新をするべきモジュールなのか否かを判定する。具体的には、モジュール・ソースコードマスタテーブルT800の属性806に画像を保持するインターフェース「IsetTargetImage」が存在するか否かを判定すればよい。「IsetTargetImage」が存在すれば自動実行を行い、「IsetTargetImage」が存在しなければ自動実行を行わない。自動実行をすると判定された場合には、ステップS1406に処理を進め、そうでない場合には、追加処理を終了し、呼び出し元に処理を戻す。
In step S1605, the
ステップS1606では、情報処理装置110のCPU111は、分岐モジュールまたはループモジュールであるか否かを判定する。分岐モジュールまたはループモジュールであると判定された場合には、ステップS1607に処理を進め、そうでない場合には、移動処理を終了し、呼び出し元に処理を戻す。
In step S1606, the
分岐モジュールやループモジュールというのは、条件に応じて処理の流れを変更するためのモジュールである。分岐モジュールやループモジュールは前述した通り、これらのモジュールの分岐先やループ内容として画像処理モジュールが入っている場合がある。分岐モジュールやループモジュールを移動させると、当該画像処理モジュールも一緒に移動するため、他の画像処理モジュールに影響がある。よって、必ず探索実行処理やサムネイルの更新を実行する。一方、分岐モジュールやループモジュールではなく、文字表示モジュールであった場合には、処理の流れに影響がないため、探索実行処理やサムネイルの更新を実行しないことになる。 The branch module and the loop module are modules for changing the flow of processing according to conditions. As described above, the branch module and the loop module may include an image processing module as a branch destination or loop content of these modules. When the branch module or the loop module is moved, the image processing module is also moved together, which affects other image processing modules. Therefore, the search execution process and the thumbnail update are always executed. On the other hand, if it is not a branch module or a loop module but a character display module, there is no effect on the flow of processing, and therefore search execution processing and thumbnail updating are not executed.
ステップS1607では、情報処理装置110のCPU111は、自動実行するか否かを判定する。自動実行をすると判定された場合には、ステップS1608に処理を進め、そうでない場合には、移動処理を終了し、呼び出し元に処理を戻す。
In step S1607, the
ステップS1608では、情報処理装置110のCPU111は、探索実行処理を行う。探索実行処理の詳細は、図17で前述した通りである。探索実行処理が終了したら、移動処理を終了し、呼び出し元に処理を戻す。
In step S1608, the
移動処理では、移動されたモジュールが画像処理を行うモジュールなのか否かを判定し、画像処理を行うモジュールなら探索実行処理を実行し、画像処理を行うモジュールでないなら、探索実行処理を実行させない。こうすることで、画像処理を行わないモジュールの移動がなされた場合の探索実行処理を実行しないようにすることができる。 In the movement process, it is determined whether or not the moved module is a module that performs image processing. If the module performs image processing, the search execution process is performed. If the module is not a module that performs image processing, the search execution process is not performed. By doing so, it is possible to prevent the search execution process from being executed when a module that does not perform image processing is moved.
次に、図37を参照して図8のステップS114の「削除処理」の詳細について説明する。図37は、情報処理装置110のCPU111によって行われる、「削除処理」の処理手順の一例を示すフローチャートである。本処理をCPU111に実行させるためのプログラムは外部メモリ116に記憶されており、本処理の実行要求を入力装置120より受け付けた場合に、CPU111は、当該プログラムをRAM112にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。
Next, the details of the “deletion process” in step S114 of FIG. 8 will be described with reference to FIG. FIG. 37 is a flowchart illustrating an example of a “deletion process” performed by the
ステップS1701では、情報処理装置110のCPU111は、ステップS106において処理フロー描画領域902で選択されたモジュールを特定する。ステップS1702では、情報処理装置110のCPU111は、ステップS1701で特定されたモジュールを処理フロー描画領域902から削除する。
In step S1701, the
ステップS1703では、情報処理装置110のCPU111は、処理フロー・入出力パラメータテーブル412を更新する。例えば、図26に示す処理フローと処理フロー・入出力パラメータテーブルT600があった場合に、図31に示すように「二値化」モジュールを削除させるとする。このとき、図31に示す処理フロー・入出力パラメータテーブルT600の通り、モジュール名603「U00003:二値化」を削除して、INDEX601と順序602を振り直す。また、必要があれば入力パラメータ604と出力パラメータ605を設定し直す。なお、このステップでは、実行フラグ606は更新しない。
In step S <b> 1703, the
ステップS1704では、情報処理装置110のCPU111は、ステップS1702で削除されたモジュールが、画像処理を行うモジュールであるか否かを判定する。具体的には、モジュール・ソースコードマスタテーブルT800の属性806に画像を保持するインターフェース「IsetTargetImage」が存在するか否かを判定する。「IsetTargetImage」が存在すれば自動実行を行い、「IsetTargetImage」が存在しなければ自動実行を行わない。自動実行をすると判定された場合には、ステップS1705に処理を進め、そうでない場合には、削除処理を終了し、呼び出し元に処理を戻す。
In step S1704, the
ステップS1705では、情報処理装置110のCPU111は、自動実行するか否かを判定する。自動実行をすると判定された場合には、ステップS1706に処理を進め、そうでない場合には、削除処理を終了し、呼び出し元に処理を戻す。
In step S1705, the
ステップS1706では、情報処理装置110のCPU111は、探索実行処理を行う。探索実行処理の詳細は、図17で前述した通りである。探索実行処理が終了したら、削除処理を終了し、呼び出し元に処理を戻す。
In step S1706, the
削除処理では、削除されたモジュールが画像処理を行うモジュールなのか否かを判定し、画像処理を行うモジュールなら探索実行処理を実行し、画像処理を行うモジュールでないなら、探索実行処理を実行させない。こうすることで、画像処理を行わないモジュールの削除がなされた場合の探索実行処理を実行しないようにすることができる。 In the deletion process, it is determined whether or not the deleted module is a module that performs image processing. If the module performs image processing, the search execution process is executed. If the module is not a module that performs image processing, the search execution process is not executed. By doing so, it is possible to prevent the search execution process from being executed when a module that does not perform image processing is deleted.
このように第2の実施形態では、画像処理を行うモジュールに関する操作(追加、移動、削除、パラメータ変更等)がなされた場合には、前述した前半実行または後半実行を行う探索実行処理を実行させ、画像処理を行わないモジュールに関する操作がなされた場合には、探索実行処理を実行しないことで、更なる処理負荷の軽減を図ることができる。 As described above, in the second embodiment, when an operation (addition, movement, deletion, parameter change, etc.) related to a module that performs image processing is performed, the above-described search execution process for performing the first half execution or the second half execution is executed. When an operation related to a module that does not perform image processing is performed, the processing load can be further reduced by not executing the search execution processing.
次に、第3の実施形態について説明を行う。第3の実施形態は、第1の実施形態における図20に示す前半実行処理の変形例である。第1の実施形態においては、ステップS1123において基点モジュールまで処理することで、処理負荷の軽減を図っていた。一方、別の実施形態として、ユーザから操作されたモジュールまで処理することで、処理負荷の軽減を図ってもよい。 Next, a third embodiment will be described. The third embodiment is a modification of the first half execution process shown in FIG. 20 in the first embodiment. In the first embodiment, the processing load is reduced by processing up to the base point module in step S1123. On the other hand, as another embodiment, the processing load may be reduced by processing up to the module operated by the user.
図40は、第3の実施形態における前半実行処理の詳細な処理手順を示すフローチャートである。このフローチャートは、第1の実施形態における図20の変形例である FIG. 40 is a flowchart illustrating a detailed processing procedure of the first half execution processing in the third embodiment. This flowchart is a modification of FIG. 20 in the first embodiment.
図40のステップS1101乃至ステップS1122は、図20のステップS1101乃至ステップS1122と同様であるので、説明を省略する。 Steps S1101 to S1122 in FIG. 40 are the same as steps S1101 to S1122 in FIG.
ステップS1801では、情報処理装置110のCPU111は、参照中のモジュールが図11のステップS301、図12のステップS401、図13のステップS501のいずれかで特定されたモジュールであるか否かを判定する。モジュールを削除してしまった場合には、図14のステップS601で特定されたモジュールは存在しないので、削除したモジュールより1つ上流に配置されたモジュールであるか否かを判定するようにする。特定されたモジュールであると判定された場合には、ステップS1802に処理を進め、そうでない場合には、ステップS1112に処理を進める。つまり、前半実行処理は、ステップS1101で処理フローの先頭モジュールから処理を開始し、ステップS1801で追加、移動、パラメータ変更されたモジュールまで、または削除されたモジュールの1つ上に配置されたモジュールまで実行して処理を終了する。このようにすることで、処理負荷の軽減を図っている。後述する後半実行処理とは異なり、基点モジュール以降のサムネイル画像は非表示となるが、その分、処理負荷を大幅に軽減させることができる。
In step S1801, the
ステップS1802では、情報処理装置110のCPU111は、追加、移動、パラメータ変更されたモジュール、または削除されたモジュールの1つ上に配置されたモジュール以降のモジュールは実行しないので、実行しないモジュールのサムネイル画像を非表示またはブラックアウトさせる。完了したら、前半実行処理を終了し、呼び出し元に処理を戻す。
In step S1802, the
このようにすることで、モジュールの移動と削除を行った場合の前半実行処理の処理範囲が変わる。例えば、図41では図29に示すような移動がなされた場合の処理概要を示している。つまり、図30の変形例である。図40の処理を実行すると、図41に示す通り、「ラベリング」モジュールの上にあった「二値化」モジュールを、「ラベリング」モジュールの下に移動させた場合、前半実行処理は、「二値化」モジュールまで実行されることになる。また、図42では図31に示すような削除がなされた場合の処理概要を示している。つまり、図32の変形例である。図40の処理を実行すると、図42に示す通り、「ラベリング」モジュールの上にあった「二値化」モジュールを削除した場合、前半実行処理は、「ラベリング」モジュールの前の「ループ」モジュールまで実行されることになる。 By doing so, the processing range of the first half execution process when the module is moved and deleted is changed. For example, FIG. 41 shows an outline of processing when the movement shown in FIG. 29 is performed. That is, this is a modification of FIG. When the process of FIG. 40 is executed, when the “binarization” module that was above the “labeling” module is moved below the “labeling” module as shown in FIG. It will be executed up to the “value” module. FIG. 42 shows an outline of processing when deletion as shown in FIG. 31 is performed. That is, this is a modification of FIG. When the processing of FIG. 40 is executed, as shown in FIG. 42, when the “binarization” module above the “labeling” module is deleted, the first half execution processing is performed by the “loop” module before the “labeling” module. Will be executed.
以上説明したように、処理フローにおいて変更のあった画像処理アイテムまで、または変更のあった画像処理アイテムから画像処理を実行し、それ以外の画像処理アイテムは実行しないので、画像処理プログラムの作成に際して実行される画像処理の負荷を軽減することの可能な効果を奏する。 As described above, image processing is executed up to or from an image processing item that has changed in the processing flow, and no other image processing items are executed. There is an effect capable of reducing the load of the image processing to be executed.
本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、1つの機器からなる装置に適用してもよい。 The present invention can be implemented as a system, apparatus, method, program, storage medium, or the like, and can be applied to a system including a plurality of devices. You may apply to the apparatus which consists of one apparatus.
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。 Note that the present invention includes a software program that implements the functions of the above-described embodiments directly or remotely from a system or apparatus. The present invention also includes a case where the system or the computer of the apparatus is achieved by reading and executing the supplied program code.
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。 Accordingly, since the functions of the present invention are implemented by computer, the program code installed in the computer also implements the present invention. In other words, the present invention includes a computer program itself for realizing the functional processing of the present invention.
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。 In that case, as long as it has the function of a program, it may be in the form of object code, a program executed by an interpreter, script data supplied to the OS, and the like.
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RWなどがある。また、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などもある。 Examples of the recording medium for supplying the program include a flexible disk, hard disk, optical disk, magneto-optical disk, MO, CD-ROM, CD-R, and CD-RW. There are also magnetic tape, nonvolatile memory card, ROM, DVD (DVD-ROM, DVD-R) and the like.
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。 As another program supply method, a browser on a client computer is used to connect to an Internet home page. The computer program itself of the present invention or a compressed file including an automatic installation function can be downloaded from the homepage by downloading it to a recording medium such as a hard disk.
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。 It can also be realized by dividing the program code constituting the program of the present invention into a plurality of files and downloading each file from a different homepage. That is, a WWW server that allows a plurality of users to download a program file for realizing the functional processing of the present invention on a computer is also included in the present invention.
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。 In addition, the program of the present invention is encrypted, stored in a storage medium such as a CD-ROM, distributed to users, and key information for decryption is downloaded from a homepage via the Internet to users who have cleared predetermined conditions. Let me. It is also possible to execute the encrypted program by using the downloaded key information and install the program on a computer.
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。 Further, the functions of the above-described embodiments are realized by the computer executing the read program. In addition, based on the instructions of the program, an OS or the like running on the computer performs part or all of the actual processing, and the functions of the above-described embodiments can also be realized by the processing.
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。 Further, the program read from the recording medium is written in a memory provided in a function expansion board inserted into the computer or a function expansion unit connected to the computer. Thereafter, the CPU of the function expansion board or function expansion unit performs part or all of the actual processing based on the instructions of the program, and the functions of the above-described embodiments are realized by the processing.
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。 The above-described embodiments are merely examples of implementation in carrying out the present invention, and the technical scope of the present invention should not be construed as being limited thereto. That is, the present invention can be implemented in various forms without departing from the technical idea or the main features thereof.
100 画像処理システム
110 情報処理装置
120 入力装置
130 ディスプレイ装置
140 カメラ
150 照明装置コントローラ
160 照明装置
170 外部機器コントローラ
180 ステージ
181 検査対象
190 LAN(Local Area Network)
111 CPU
112 RAM
113 ROM
114 システムバス
115a 入力コントローラ
115b ビデオコントローラ
115c メモリコントローラ
115d、115e、115g 通信I/Fコントローラ
115f 画像入力コントローラ
116 外部メモリ
DESCRIPTION OF
111 CPU
112 RAM
113 ROM
114
Claims (16)
所定の処理を実行可能な画像処理アイテムであって、ユーザから指定された処理順で処理フローを構成可能な画像処理アイテムに対して、ユーザから前記処理フローを編集する操作を受け付ける操作受付手段と、
前記操作受付手段でユーザから前記処理フローを編集する操作を受け付ける度に、電子画像データに対して、前記処理フローを構成する画像処理アイテムに係る所定の処理を、前記処理順に基づいて実行する画像処理アイテム実行手段と、
前記画像処理アイテム実行手段で前記画像処理アイテムに係る所定の処理が前記処理順に基づいて実行された場合に、前記操作受付手段で操作を受け付けた画像処理アイテムの実行の結果を表示する結果表示手段と
を備え、
前記画像処理アイテム実行手段は、前記操作受付手段で前記画像処理アイテムに対してユーザから前記処理フローを編集する操作を受け付けた場合には、前記処理フローを構成する画像処理アイテムに係る所定の処理のうち、前記操作受付手段で当該操作を受け付けた画像処理アイテムに係る所定の処理まで前記処理順に実行し、前記操作受付手段で操作を受け付けた画像処理アイテムよりも処理順が後の画像処理アイテムに係る所定の処理を実行しないことを特徴とする情報処理装置。 An information processing apparatus that performs image processing on electronic image data,
An image processing items capable of executing predetermined processing, the operation reception that respect configurable image processing items to the designated processing order in the processing flow from the user, and accepts an operation for editing the processing flow from User chromatography The Means,
An image for executing predetermined processing related to image processing items constituting the processing flow on the electronic image data based on the processing order each time an operation for editing the processing flow is received from the user by the operation receiving unit. Processing item execution means;
Result display means for displaying a result of execution of the image processing item accepted by the operation accepting means when a predetermined process related to the image processed item is executed by the image processing item executing means based on the processing order. And
The image processing item execution unit, when the operation receiving unit receives an operation for editing the processing flow from the user to the image processing item, a predetermined process related to the image processing item constituting the processing flow among the running operation acceptance means the processing order to a predetermined processing according to the image processing item accepted the operation, the image processing items later processing order than the image processing item receives an operation by said operation reception means An information processing apparatus that does not execute the predetermined processing.
前記画像処理アイテム実行手段で前記画像処理アイテムに係る所定の処理が実行された結果である結果画像データのサムネイル画像を当該画像処理アイテムごとに生成するサムネイル画像生成手段を更に備え、
前記結果表示手段は、前記画像処理アイテム実行手段で前記画像処理アイテムに係る所定の処理が前記処理順に基づいて実行された場合に、当該実行の結果であるサムネイル画像であって、前記サムネイル画像生成手段で生成されたサムネイル画像を、前記処理フローを構成する画像処理アイテムごとに表示し、
更に、前記結果表示手段は、前記画像処理アイテム実行手段で実行されなかった画像処理アイテムのサムネイル画像を、当該画像処理アイテムに係る所定の処理が実行されなかったことをユーザに認識させるように、変更することを特徴とする請求項1に記載の情報処理装置。 The information processing apparatus includes:
The image processing item execution means further comprises a thumbnail image generation means for generating a thumbnail image of the result image data, which is a result of execution of a predetermined process related to the image processing item, for each image processing item,
The result display means is a thumbnail image that is a result of the execution when the predetermined processing related to the image processing item is executed based on the processing order by the image processing item execution means, and the thumbnail image generation The thumbnail image generated by the means is displayed for each image processing item constituting the processing flow,
Further, the result display means allows the user to recognize the thumbnail image of the image processing item that has not been executed by the image processing item execution means, that the predetermined processing relating to the image processing item has not been executed. The information processing apparatus according to claim 1, wherein the information processing apparatus is changed.
前記情報処理装置に備えられた記憶手段に対して、前記画像処理アイテム実行手段で前記画像処理アイテムに係る所定の処理が実行されたか否かを示す実行済み情報を当該画像処理アイテムごとに保存する実行済み情報保存手段を更に備え、
前記画像処理アイテム実行手段は、前記操作受付手段で前記画像処理アイテムに対してユーザから前記処理フローを編集する操作を受け付けた場合には、前記処理フローを構成する画像処理アイテムのうち、前記実行済み情報が未実行である旨を示す画像処理アイテムから、前記操作受付手段で当該操作を受け付けた画像処理アイテムまでに係る所定の処理を、前記処理順に基づいて実行することを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。 The information processing apparatus includes:
Stored in the storage unit provided in the information processing apparatus is executed information indicating whether or not a predetermined process related to the image processing item has been executed by the image processing item execution unit for each image processing item. It further includes an executed information storage means,
The image processing item execution means, when the operation receiving means receives an operation for editing the processing flow from the user with respect to the image processing item, among the image processing items constituting the processing flow, claims requires information from the image processing item indicating a non-executed, a predetermined processing according to the up image processing item receiving the operation by the operation acceptance means, and executes, based on the processing order The information processing apparatus according to any one of 1 to 3.
前記情報処理装置の操作受付手段が、所定の処理を実行可能な画像処理アイテムであって、ユーザから指定された処理順で処理フローを構成可能な画像処理アイテムに対して、ユーザから前記処理フローを編集する操作を受け付ける操作受付ステップと、
前記情報処理装置の画像処理アイテム実行手段が、前記操作受付ステップでユーザから前記処理フローを編集する操作を受け付ける度に、前記処理フローを構成する画像処理アイテムに係る所定の処理を、前記処理順に基づいて実行する画像処理アイテム実行ステップと、
前記情報処理装置の結果表示手段が、前記画像処理アイテム実行ステップで前記画像処理アイテムに係る所定の処理が前記処理順に基づいて実行された場合に、前記操作受付ステップで操作を受け付けた画像処理アイテムの実行の結果を表示する結果表示ステップと
を備え、
前記画像処理アイテム実行ステップは、前記操作受付ステップで前記画像処理アイテムに対してユーザから前記処理フローを編集する操作を受け付けた場合には、前記処理フローを構成する画像処理アイテムに係る所定の処理のうち、前記操作受付ステップで当該操作を受け付けた画像処理アイテムに係る所定の処理まで前記処理順に実行し、前記操作受付ステップで操作を受け付けた画像処理アイテムよりも処理順が後の画像処理アイテムに係る所定の処理を実行しないことを特徴とする情報処理装置の制御方法。 A method of controlling an information processing apparatus that performs image processing on electronic image data,
Operation receiving means of the information processing apparatus, an image processing items capable of executing predetermined processing, the image processing items that can be configured for the given processing order in the processing flow from the user, from said Yu chromatography The An operation acceptance step for accepting an operation for editing the process flow ;
Each time the image processing item execution means of the information processing apparatus receives an operation for editing the processing flow from the user in the operation receiving step, a predetermined process related to the image processing items constituting the processing flow is performed in the order of the processing. An image processing item execution step to be executed based on;
The image processing item in which the result display unit of the information processing apparatus has received an operation in the operation receiving step when a predetermined process related to the image processing item is executed in the image processing item executing step based on the processing order A result display step for displaying the result of execution of
In the image processing item execution step, when an operation for editing the processing flow is received from a user for the image processing item in the operation receiving step, a predetermined process related to the image processing item constituting the processing flow among the executed the processing order to a predetermined processing according to the image processing items accept the operation by the operation receiving step, the image processing items later processing order than the image processing item receives an operation by the operation reception step of A control method for an information processing apparatus, wherein the predetermined processing according to the above is not executed.
実行させるためのコンピュータに読み取り実行可能なプログラムであって、
前記情報処理装置を、
所定の処理を実行可能な画像処理アイテムであって、ユーザから指定された処理順で処理フローを構成可能な画像処理アイテムに対して、ユーザから前記処理フローを編集する操作を受け付ける操作受付手段と、
前記操作受付手段でユーザから前記処理フローを編集する操作を受け付ける度に、前記処理フローを構成する画像処理アイテムに係る所定の処理を、前記処理順に基づいて実行する画像処理アイテム実行手段と、
前記画像処理アイテム実行手段で前記画像処理アイテムに係る所定の処理が前記処理順に基づいて実行された場合に、前記操作受付手段で操作を受け付けた画像処理アイテムの実行の結果を表示する結果表示手段として機能させ、
前記画像処理アイテム実行手段は、前記操作受付手段で前記画像処理アイテムに対してユーザから前記処理フローを編集する操作を受け付けた場合には、前記処理フローを構成する画像処理アイテムに係る所定の処理のうち、前記操作受付手段で当該操作を受け付けた画像処理アイテムに係る所定の処理まで前記処理順に実行し、前記操作受付手段で操作を受け付けた画像処理アイテムよりも処理順が後の画像処理アイテムに係る所定の処理を実行しないことを特徴とするコンピュータに読み取り実行可能なプログラム。 A computer readable and executable program for causing a computer to execute a control method of an information processing apparatus that performs image processing on electronic image data,
The information processing apparatus;
An image processing items capable of executing predetermined processing, the operation reception that respect configurable image processing items to the designated processing order in the processing flow from the user, and accepts an operation for editing the processing flow from User chromatography The Means,
Image processing item execution means for executing a predetermined process related to image processing items constituting the processing flow based on the processing order each time an operation for editing the processing flow is received from the user by the operation receiving means;
Result display means for displaying a result of execution of the image processing item accepted by the operation accepting means when a predetermined process related to the image processed item is executed by the image processing item executing means based on the processing order. Function as
The image processing item execution unit, when the operation receiving unit receives an operation for editing the processing flow from the user to the image processing item, a predetermined process related to the image processing item constituting the processing flow among the running operation acceptance means the processing order to a predetermined processing according to the image processing item accepted the operation, the image processing items later processing order than the image processing item receives an operation by said operation reception means A program that can be read and executed by a computer, wherein the predetermined processing according to the above is not executed.
所定の処理を実行可能な画像処理アイテムであって、ユーザから指定された処理順で処理フローを構成可能な画像処理アイテムに対して、ユーザから前記処理フローを編集する操作を受け付ける操作受付手段と、
前記操作受付手段でユーザから前記処理フローを編集する操作を受け付けた画像処理アイテムに基づいて、前記処理フローにおいて基点となる画像処理アイテムを特定する画像処理アイテム特定手段と、
前記操作受付手段でユーザから前記処理フローを編集する操作を受け付ける度に、電子画像データに対して、前記処理フローを構成する画像処理アイテムに係る所定の処理を、前記処理順に基づいて実行する画像処理アイテム実行手段と
を備え、
前記画像処理アイテム実行手段は、前記操作受付手段で前記画像処理アイテムに対してユーザから前記処理フローを編集する操作を受け付けた場合には、前記処理フローを構成する画像処理アイテムに係る所定の処理のうち、前記画像処理アイテム特定手段で特定された画像処理アイテムに係る所定の処理から当該特定された画像処理アイテムよりも処理順が後の画像処理アイテムに係る所定の処理を前記処理順に実行し、前記画像処理アイテム特定手段で特定された画像処理アイテムよりも処理順が前の画像処理アイテムに係る所定の処理を実行しないことを特徴とする情報処理装置。 An information processing apparatus that performs image processing on electronic image data,
An operation accepting unit that accepts an operation for editing the processing flow from the user with respect to an image processing item that can execute a predetermined process and that can configure the processing flow in a processing order specified by the user; ,
An image processing item specifying unit that specifies an image processing item that is a base point in the processing flow based on an image processing item that has received an operation for editing the processing flow from a user by the operation receiving unit;
An image for executing predetermined processing related to image processing items constituting the processing flow on the electronic image data based on the processing order each time an operation for editing the processing flow is received from the user by the operation receiving unit. Processing item execution means,
The image processing item execution unit, when the operation receiving unit receives an operation for editing the processing flow from the user to the image processing item, a predetermined process related to the image processing item constituting the processing flow A predetermined process related to the image processing item that is later in processing order than the specified image processing item from the predetermined process related to the image processing item specified by the image processing item specifying means. An information processing apparatus that does not execute a predetermined process related to an image processing item whose processing order is earlier than that of the image processing item specified by the image processing item specifying means.
前記画像処理アイテム特定手段で特定された画像処理アイテムよりも処理順が前の画像処理アイテムに係る所定の処理の結果である結果画像データを、前記情報処理装置に備えられた記憶手段に保存する結果保存手段を更に備え、
前記画像処理アイテム実行手段は、前記操作受付手段で前記画像処理アイテムに対してユーザから前記処理フローを編集する操作を受け付けた場合には、前記記憶手段から前記結果保存手段で保存した結果画像データを取得し、当該取得した結果画像データを用いて、前記処理フローを構成する画像処理アイテムに係る所定の処理を前記処理順に基づいて実行することを特徴とする請求項9に記載の情報処理装置。 The information processing apparatus includes:
Result image data that is a result of a predetermined process relating to an image processing item whose processing order is earlier than the image processing item specified by the image processing item specifying unit is stored in a storage unit provided in the information processing apparatus. Further comprising a result storage means;
The image processing item execution means stores the result image data stored in the result storage means from the storage means when the operation receiving means receives an operation for editing the processing flow from the user to the image processing item. The information processing apparatus according to claim 9, wherein a predetermined process related to an image processing item constituting the processing flow is executed based on the processing order using the acquired result image data. .
前記画像処理アイテム実行手段で実行された前記処理フローの最終結果である最終結果画像データを表示する表示手段を更に備えることを特徴とする請求項9または10に記載の情報処理装置。 The information processing apparatus includes:
The information processing apparatus according to claim 9, further comprising a display unit that displays final result image data that is a final result of the processing flow executed by the image processing item execution unit.
前記情報処理装置の操作受付手段が、所定の処理を実行可能な画像処理アイテムであって、ユーザから指定された処理順で処理フローを構成可能な画像処理アイテムに対して、ユーザから前記処理フローを編集する操作を受け付ける操作受付ステップと、
前記情報処理装置の画像処理アイテム特定手段が、前記操作受付ステップでユーザから前記処理フローを編集する操作を受け付けた画像処理アイテムに基づいて、前記処理フローにおいて基点となる画像処理アイテムを特定する画像処理アイテム特定ステップと、
前記情報処理装置の画像処理アイテム実行手段が、前記操作受付手段でユーザから前記処理フローを編集する操作を受け付ける度に、前記処理フローを構成する画像処理アイテムに係る所定の処理を、前記処理順に基づいて実行する画像処理アイテム実行ステップとを備え、
前記画像処理アイテム実行ステップは、前記操作受付ステップで前記画像処理アイテムに対してユーザから前記処理フローを編集する操作を受け付けた場合には、前記処理フローを構成する画像処理アイテムに係る所定の処理のうち、前記画像処理アイテム特定ステップで特定された画像処理アイテムに係る所定の処理から当該特定された画像処理アイテムよりも処理順が後の画像処理アイテムに係る所定の処理を前記処理順に実行し、前記画像処理アイテム特定ステップで特定された画像処理アイテムよりも処理順が前の画像処理アイテムに係る所定の処理を実行しないことを特徴とする情報処理装置の制御方法。 A method of controlling an information processing apparatus that performs image processing on electronic image data,
Operation receiving means of the information processing apparatus, an image processing items capable of executing predetermined processing for configurable image processing items to the designated processing order in the processing flow from the user, the processing flow from the user An operation accepting step for accepting an operation for editing ,
An image in which an image processing item specifying unit of the information processing apparatus specifies an image processing item that is a base point in the processing flow based on an image processing item that has received an operation for editing the processing flow from a user in the operation receiving step. Process item identification step;
Each time the image processing item execution unit of the information processing apparatus receives an operation for editing the processing flow from the user by the operation receiving unit, a predetermined process related to the image processing item constituting the processing flow is performed in the processing order. An image processing item execution step to be executed based on
In the image processing item execution step, when an operation for editing the processing flow is received from a user for the image processing item in the operation receiving step, a predetermined process related to the image processing item constituting the processing flow A predetermined process related to the image processing item that is later in processing order than the specified image processing item from the predetermined process related to the image processing item specified in the image processing item specifying step. A control method for an information processing apparatus, wherein a predetermined process related to an image processing item whose processing order is earlier than that of the image processing item specified in the image processing item specifying step is not executed.
前記情報処理装置を、
所定の処理を実行可能な画像処理アイテムであって、ユーザから指定された処理順で処理フローを構成可能な画像処理アイテムに対して、ユーザから前記処理フローを編集する操作を受け付ける操作受付手段と、
前記操作受付手段でユーザから前記処理フローを編集する操作を受け付けた画像処理アイテムに基づいて、前記処理フローにおいて基点となる画像処理アイテムを特定する画像処理アイテム特定手段と、
前記操作受付手段でユーザから前記処理フローを編集する操作を受け付ける度に、前記処理フローを構成する画像処理アイテムに係る所定の処理を、前記処理順に基づいて実行する画像処理アイテム実行手段として機能させ、
前記画像処理アイテム実行手段は、前記操作受付手段で前記画像処理アイテムに対してユーザから前記処理フローを編集する操作を受け付けた場合には、前記処理フローを構成する画像処理アイテムに係る所定の処理のうち、前記画像処理アイテム特定手段で特定された画像処理アイテムに係る所定の処理から当該特定された画像処理アイテムよりも処理順が後の画像処理アイテムに係る所定の処理を前記処理順に実行し、前記画像処理アイテム特定手段で特定された画像処理アイテムよりも処理順が前の画像処理アイテムに係る所定の処理を実行しないことを特徴とするコンピュータに読み取り実行可能なプログラム。
A computer readable and executable program for causing a computer to execute a control method of an information processing apparatus that performs image processing on electronic image data,
The information processing apparatus;
An operation accepting unit that accepts an operation for editing the processing flow from the user with respect to an image processing item that can execute a predetermined process and that can configure the processing flow in a processing order specified by the user; ,
An image processing item specifying unit that specifies an image processing item that is a base point in the processing flow based on an image processing item that has received an operation for editing the processing flow from a user by the operation receiving unit;
Each time the operation receiving unit receives an operation for editing the processing flow from the user, the predetermined processing related to the image processing items constituting the processing flow is made to function as an image processing item executing unit that executes based on the processing order. ,
The image processing item execution unit, when the operation receiving unit receives an operation for editing the processing flow from the user to the image processing item, a predetermined process related to the image processing item constituting the processing flow A predetermined process related to the image processing item that is later in processing order than the specified image processing item from the predetermined process related to the image processing item specified by the image processing item specifying means. A computer-readable and executable program that does not execute a predetermined process related to an image processing item whose processing order is earlier than that of the image processing item specified by the image processing item specifying means.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012266630A JP5344658B2 (en) | 2011-12-06 | 2012-12-05 | Information processing apparatus, control method thereof, and program |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011266412 | 2011-12-06 | ||
JP2011266412 | 2011-12-06 | ||
JP2012266630A JP5344658B2 (en) | 2011-12-06 | 2012-12-05 | Information processing apparatus, control method thereof, and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013140572A JP2013140572A (en) | 2013-07-18 |
JP5344658B2 true JP5344658B2 (en) | 2013-11-20 |
Family
ID=49037919
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012266630A Active JP5344658B2 (en) | 2011-12-06 | 2012-12-05 | Information processing apparatus, control method thereof, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5344658B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200013375A1 (en) * | 2017-03-07 | 2020-01-09 | Sony Corporation | Information processing apparatus and information processing method |
JP6890557B2 (en) * | 2018-01-17 | 2021-06-18 | 株式会社日立製作所 | Analytical model creation system, programming device and analytical model creation method |
CN113168368B (en) * | 2018-11-28 | 2023-09-29 | 株式会社特拉斯特技术 | Programming device and recording medium |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08335178A (en) * | 1995-06-06 | 1996-12-17 | Sharp Corp | Method and device for processing information |
JP3646390B2 (en) * | 1996-02-20 | 2005-05-11 | 富士ゼロックス株式会社 | Programming support apparatus and method |
JPH09288568A (en) * | 1996-04-23 | 1997-11-04 | Matsushita Electric Works Ltd | Image processor and execution flow preparing method for the same |
JP4442042B2 (en) * | 2001-02-23 | 2010-03-31 | パナソニック電工株式会社 | Image processing program creation method and system |
JP2008153949A (en) * | 2006-12-18 | 2008-07-03 | Ricoh Co Ltd | Image processor and image processing method |
JP2008287710A (en) * | 2007-04-16 | 2008-11-27 | Nst:Kk | Development control device |
JP4767309B2 (en) * | 2008-11-28 | 2011-09-07 | キヤノンItソリューションズ株式会社 | Information processing apparatus, information processing method, and computer program |
JP2011186650A (en) * | 2010-03-05 | 2011-09-22 | Canon It Solutions Inc | Apparatus and method for processing information, computer program, and recording medium with computer program recorded thereon |
-
2012
- 2012-12-05 JP JP2012266630A patent/JP5344658B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2013140572A (en) | 2013-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109634598B (en) | Page display method, device, equipment and storage medium | |
US9348563B1 (en) | Bi-directional editing between visual screen designer and source code | |
CN105308648B (en) | The system and method that interest region for selecting to user carries out super-resolution | |
US20190196672A1 (en) | Visual effects system for "big data" analysis workflow editors, distribution platforms, execution engines, and management systems comprising same | |
US20160313874A1 (en) | Visual effects system for "big data" analysis workflow editors, distribution platforms, execution engines, and management systems comprising same | |
US11223873B1 (en) | Methods and systems for remote streaming of a user-customized user interface | |
JP5344658B2 (en) | Information processing apparatus, control method thereof, and program | |
CN114154000A (en) | Multimedia resource publishing method and device | |
US20140173442A1 (en) | Presenter view in presentation application | |
JP4810009B2 (en) | Data processing apparatus, method and program | |
JP6795767B2 (en) | Information processing device and its processing method and program | |
KR102465870B1 (en) | Method and system for generating video content based on text to speech for image | |
JP5334124B2 (en) | Information processing apparatus, control method thereof, and program | |
CN113748409B (en) | Information processing system, information processing device, information processing method, and program | |
US20200293156A1 (en) | Studio builder for interactive media | |
JP2019008666A (en) | Information processing apparatus, control method, and program | |
JP2017151530A (en) | Information processing unit, control method thereof, and program | |
JP4886910B1 (en) | Information processing apparatus, information processing apparatus control method, program, and recording medium storing program | |
JP2011008352A (en) | Document processor, document processing method, and program | |
JP2009140339A (en) | Information processor and information processing method | |
JP6361770B2 (en) | Information processing apparatus, processing method thereof, and program | |
JP2019197259A (en) | Information processor, method for controlling the same, and program | |
Maskrey et al. | Documents and iCloud | |
JP2015143982A (en) | Information processing device, control method thereof, and program | |
JP5871046B2 (en) | Information processing apparatus, control method thereof, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130423 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20130531 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20130531 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130624 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130716 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130808 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5344658 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313115 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |