[go: up one dir, main page]

JP2010244507A - Information processing apparatus, method of controlling the same, and program - Google Patents

Information processing apparatus, method of controlling the same, and program Download PDF

Info

Publication number
JP2010244507A
JP2010244507A JP2009212423A JP2009212423A JP2010244507A JP 2010244507 A JP2010244507 A JP 2010244507A JP 2009212423 A JP2009212423 A JP 2009212423A JP 2009212423 A JP2009212423 A JP 2009212423A JP 2010244507 A JP2010244507 A JP 2010244507A
Authority
JP
Japan
Prior art keywords
processing
module
information
input
source code
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.)
Granted
Application number
JP2009212423A
Other languages
Japanese (ja)
Other versions
JP5257898B2 (en
Inventor
Hideji Fukunishi
秀次 福西
Tetsuji Yamaguchi
哲治 山口
Yoshitaka Uchida
吉貴 内田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon IT Solutions Inc
Original Assignee
Canon IT Solutions Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon IT Solutions Inc filed Critical Canon IT Solutions Inc
Priority to JP2009212423A priority Critical patent/JP5257898B2/en
Publication of JP2010244507A publication Critical patent/JP2010244507A/en
Application granted granted Critical
Publication of JP5257898B2 publication Critical patent/JP5257898B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To achieve construction of a logic (processing flow) of efficient image processing. <P>SOLUTION: In a PC 110, the following processing is executed when executing processing of an image input from a camera 140. At first, a processing flow-input/output information table and a branch processing condition table are stored. The processing flow-input/output information table includes each module of a processing flow formed by combining a plurality of modules respectively showing the processing to be executed to an image, and information or the like showing the execution order of each module. The branch processing condition table includes condition information relating to branch processing. Next, in response to an indication of a change relating to a module to the processing flow, a conditional expression table is generated when the module is a module relating to branch processing, and information of the processing flow-input/output information table including information to be associated with the conditional expression table is changed. The processing is executed for every module of the changed processing flow-input/output information table, and a resulting image for every module obtained by the execution is displayed on a CRT 130. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、画像の処理を行う情報処理装置及びその制御方法、並びに、当該制御方法をコンピュータに実行させるためのプログラムに関する。   The present invention relates to an information processing apparatus that performs image processing, a control method thereof, and a program for causing a computer to execute the control method.

従来、例えば、チップマウンターにおける基板や部品の位置決めや、出来上がった製品の検査などを目的として、カメラで撮影した検査対象の画像データを、一定のロジック(処理フロー)で画像処理する画像処理装置が広く用いられている。   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 (processing flow), so it does not require the user's effort to introduce it into the actual manufacturing process, but the user's needs are completely met. It is rare that the logic satisfies the above. 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 Patent Document 1 below has been proposed. Specifically, in Patent Document 1, a plurality of image processing modules are registered in advance in a computer that develops logic, the developer selects a module that meets the needs of the user, and is necessary for the selected module. By setting parameters and creating source code after creating source code, logic development is made more efficient.

特開2003−296112号公報JP 2003-296112 A

ここで、上述した専用タイプの画像処理装置においてロジック(処理フロー)を構築する場合、通常、複数のモジュールを組み合わせることにより行われる。この場合、1つ1つが理想的な結果を得る画像処理のモジュールを複数組み合わせて作ったロジック(処理フロー)であっても、画像処理対象の画像にはいろいろなものがあるため、全ての画像に対して目標とする結果が得られない可能性もある。そこで通常は、構築したロジックを用いて各種の画像に対して、それぞれのモジュールのパラメータを変更したり、モジュールの順序を変更したり、更には新規のモジュールを追加したりして、試行錯誤を繰り返して調整を行う必要がある。特に、判断処理をはじめとした分岐処理や反復処理があれば、必ず判断のための閾値や反復回数などのパラメータについての調整を行うものである。   Here, when a logic (processing flow) is constructed in the above-described dedicated type image processing apparatus, it is usually performed by combining a plurality of modules. In this case, even if the logic (processing flow) is created by combining a plurality of image processing modules each of which obtains an ideal result, there are various types of images to be processed. The target result may not be obtained. Therefore, it is usual to change the parameters of each module, change the order of modules, add new modules, etc. for various images using the built logic, and perform trial and error. It is necessary to make adjustments repeatedly. In particular, if there is a branching process or an iterative process such as a judgment process, parameters such as a threshold for judgment and the number of iterations are always adjusted.

しかしながら、このようなモジュールの調整を行う場合、上述した特許文献1の技術では、その調整の都度、始めからモジュールを選択しパラメータを設定するといった作業を行うことが必要になり、開発者にとって負荷の大きい作業を行わなければならないといった問題がある。   However, when such a module adjustment is performed, the technique disclosed in Patent Document 1 described above requires that a module is selected from the beginning and a parameter is set every time the adjustment is performed, which is a burden on the developer. There is a problem that a large work must be done.

また、構築したロジック(処理フロー)において、組み合わされた複数のモジュールのうちのどのモジュールについて、パラメータや順序の変更、或いは新規に追加する等の調整を行うのか、即ち、調整対象となるモジュールを特定する必要がある。   In addition, in the constructed logic (processing flow), for which module among the plurality of combined modules, adjustments such as change of parameters and order or addition of new ones, that is, modules to be adjusted are performed. Need to be identified.

しかしながら、上述した特許文献1の技術では、構築したロジックにおいては処理フローの途中のモジュールの処理結果が不明で最終的な処理結果しか分からないため、調整対象となるモジュールを特定することは、やはり、開発者にとって負荷の大きい作業を行わなければならないといった問題がある。   However, in the technique of Patent Document 1 described above, the processing result of the module in the middle of the processing flow is unknown and only the final processing result is known in the constructed logic. However, there is a problem that a heavy workload is required for the developer.

特に、分岐処理や反復処理を含む場合には、それらのパラメータを調整するべきか、前後の処理自体を調整するべきかの判断が必要になる。しかし上述した特許文献1の技術では、最終的な処理結果しか分からないため、結局は試行錯誤による調整が必要になったり、あるいは調整のための特別なプログラムを作成する必要があったりと、開発者にとって負荷の大きい作業を行わなければならないといった問題があった。   In particular, when branch processing or iterative processing is included, it is necessary to determine whether these parameters should be adjusted or whether the preceding and following processing itself should be adjusted. However, in the technique of Patent Document 1 described above, since only the final processing result is known, eventually, adjustment by trial and error is necessary, or it is necessary to create a special program for adjustment. There is a problem that it is necessary to perform a heavy work for a person.

さらに、分岐処理のあと複数の処理を別々に行って、それぞれの処理結果を用いて次の処理を行う並列分岐処理を含む場合においても、並列分岐処理のモジュールのパラメータを調整すべきか、前後の処理自体を調整するべきかの判断が必要になるが、同様の問題があった。   Furthermore, even when the parallel processing includes the parallel processing in which a plurality of processes are separately performed after the branch processing and the next processing is performed using each processing result, the parameter of the parallel branch processing module should be adjusted, Although it is necessary to determine whether to adjust the processing itself, there is a similar problem.

本発明は、このような問題点に鑑みてなされたものであり、効率のよい画像処理のロジック(処理フロー)の構築を実現し得る情報処理装置及びその制御方法、並びに、プログラムを提供することを目的とする。   The present invention has been made in view of such problems, and provides an information processing apparatus capable of realizing construction of an efficient image processing logic (processing flow), a control method therefor, and a program. With the goal.

本発明の情報処理装置は、画像の処理を行う情報処理装置であって、画像の処理に関する処理を示すモジュールと、各モジュールに対応するソースコードとが関連付けられているモジュール・ソースコードマスタテーブルと、前記モジュールを複数組み合わせた処理フローの各モジュールと当該各モジュールの実行の順序を示す情報と当該各モジュールの処理に係る入力情報及び出力情報とを含む処理フロー・入出力情報テーブルと、分岐処理に係る条件情報を含む分岐処理条件テーブルとを記憶するテーブル記憶手段と、前記処理フローに対して前記モジュールに関する変更の指示がされた際に、当該モジュールを特定するモジュール特定手段と、前記モジュール特定手段で当該モジュールが分岐処理に関するモジュールであると特定した場合には、分岐処理に関する情報である条件式テーブルを作成する条件式テーブル作成手段と、当該変更の指示に応じて、前記条件式テーブルとを関連づける情報を含め前記処理フロー・入出力情報テーブルの情報を変更する変更手段と、前記変更手段により変更された処理フロー・入出力情報テーブルの情報及び前記モジュール・ソースコードマスタテーブルの情報を用いて、前記モジュールごとにソースコードを生成するソースコード生成手段と、前記ソースコード生成手段により生成されたソースコードに基づいてオブジェクトコードを生成するオブジェクトコード生成手段と、前記オブジェクトコード生成手段により生成されたオブジェクトコードを用いて、前記変更手段により変更された処理フロー・入出力情報テーブルの前記モジュールごとに前記処理を実行する処理実行手段と、前記処理実行手段による処理の実行により得られた前記モジュールごとの結果画像を表示装置に表示する結果画像表示手段とを有する。   An information processing apparatus according to the present invention is an information processing apparatus that performs image processing, and includes a module / source code master table in which a module indicating processing related to image processing and a source code corresponding to each module are associated. A processing flow / input / output information table including information indicating the order of execution of each module in the processing flow in which a plurality of the modules are combined, input processing and output information related to processing of each module, and branch processing A table storage means for storing a branch processing condition table including condition information relating to the module, a module specifying means for specifying the module when an instruction to change the module is given to the processing flow, and the module specifying Means that the module is related to branch processing In this case, the conditional expression table creating means for creating a conditional expression table that is information relating to branch processing, and information relating to the conditional expression table according to the change instruction, the processing flow / input / output information table includes Source code generation for generating source code for each module by using the changing means for changing information, and the information of the processing flow / input / output information table changed by the changing means and the information of the module / source code master table The object code generating means for generating an object code based on the source code generated by the means, the object code generating means, and the object code generated by the object code generating means. Processing mode / input / output information table Having a processing execution means for executing said processing for each Yuru, the resulting image display means for displaying a result image of each of the module obtained by execution of processing by the processing execution unit on the display device.

本発明の情報処理装置の制御方法は、画像の処理を行う情報処理装置の制御方法であって、
画像の処理に関する処理を示すモジュールと、各モジュールに対応するソースコードとが関連付けられているモジュール・ソースコードマスタテーブルと、前記モジュールを複数組み合わせた処理フローの各モジュールと当該各モジュールの実行の順序を示す情報と当該各モジュールの処理に係る入力情報及び出力情報とを含む処理フロー・入出力情報テーブルと、分岐処理に係る条件情報を含む分岐処理条件テーブルとをテーブル記憶手段に記憶する記憶ステップと、前記処理フローに対して前記モジュールに関する変更の指示がされた際に、当該モジュールを特定するモジュール特定ステップと、前記モジュール特定ステップで当該モジュールが分岐処理に関するモジュールであると特定した場合には、分岐処理に関する情報である条件式テーブルを作成する条件式テーブル作成ステップと、当該変更の指示に応じて、前記条件式テーブルとを関連づける情報を含め前記処理フロー・入出力情報テーブルの情報を変更する変更ステップと、前記変更ステップにより変更された処理フロー・入出力情報テーブルの情報及び前記モジュール・ソースコードマスタテーブルの情報を用いて、前記モジュールごとにソースコードを生成するソースコード生成ステップと、前記ソースコード生成ステップにより生成されたソースコードに基づいてオブジェクトコードを生成するオブジェクトコード生成ステップと、
前記オブジェクトコード生成ステップにより生成されたオブジェクトコードを用いて、前記変更ステップにより変更された処理フロー・入出力情報テーブルの前記モジュールごとに前記処理を実行する処理実行ステップと、前記処理実行ステップによる処理の実行により得られた前記モジュールごとの結果画像を表示装置に表示する結果画像表示ステップとを有する。
An information processing apparatus control method according to the present invention is an information processing apparatus control method for processing an image,
Modules indicating processes related to image processing, module / source code master tables in which source codes corresponding to the respective modules are associated, modules in a processing flow combining a plurality of the modules, and execution order of the modules A storage step of storing a processing flow / input / output information table including input information and input information and output information related to processing of each module, and a branch processing condition table including condition information related to branch processing in a table storage unit And when a change instruction regarding the module is instructed to the processing flow, a module specifying step for specifying the module, and when the module specifying step specifies that the module is a module for branch processing , A condition that is information about branch processing A conditional expression table creating step for creating a table, a changing step for changing information in the processing flow / input / output information table including information for associating the conditional expression table in accordance with the change instruction, and the changing step. Using the changed processing flow / input / output information table information and the module / source code master table information, a source code generation step for generating a source code for each module and the source code generation step An object code generation step for generating an object code based on the source code;
A process execution step for executing the process for each module of the process flow / input / output information table changed by the change step using the object code generated by the object code generation step; and a process by the process execution step A result image display step of displaying on the display device a result image for each module obtained by executing

本発明のプログラムは、画像の処理に関する処理を示すモジュールと、各モジュールに対応するソースコードとが関連付けられているモジュール・ソースコードマスタテーブルと、前記モジュールを複数組み合わせた処理フローの各モジュールと当該各モジュールの実行の順序を示す情報と当該各モジュールの処理に係る入力情報及び出力情報とを含む処理フロー・入出力情報テーブルと、分岐処理に係る条件情報を含む分岐処理条件テーブルとをテーブル記憶手段に記憶する記憶ステップと、
前記処理フローに対して前記モジュールに関する変更の指示がされた際に、当該モジュールを特定するモジュール特定ステップと、前記モジュール特定ステップで当該モジュールが分岐処理に関するモジュールであると特定した場合には、分岐処理に関する情報である条件式テーブルを作成する条件式テーブル作成ステップと、当該変更の指示に応じて、前記条件式テーブルとを関連づける情報を含め前記処理フロー・入出力情報テーブルの情報を変更する変更ステップと、前記変更ステップにより変更された処理フロー・入出力情報テーブルの情報及び前記モジュール・ソースコードマスタテーブルの情報を用いて、前記モジュールごとにソースコードを生成するソースコード生成ステップと、前記ソースコード生成ステップにより生成されたソースコードに基づいてオブジェクトコードを生成するオブジェクトコード生成ステップと、前記オブジェクトコード生成ステップにより生成されたオブジェクトコードを用いて、前記変更ステップにより変更された処理フロー・入出力情報テーブルの前記モジュールごとに前記処理を実行する処理実行ステップと、前記処理実行ステップによる処理の実行により得られた前記モジュールごとの結果画像を表示装置に表示する結果画像表示ステップとをコンピュータに実行させるためのものである。
The program of the present invention includes a module indicating processing related to image processing, a module / source code master table in which source code corresponding to each module is associated, each module of a processing flow combining a plurality of the modules, and the module Table storage of processing flow / input / output information table including information indicating the execution order of each module, input information and output information related to processing of each module, and branch processing condition table including condition information related to branch processing A storage step for storing in the means;
When an instruction to change the module with respect to the processing flow is given, a module specifying step for specifying the module, and a branching process when the module specifying step specifies that the module is a module for branch processing. Conditional expression table creation step for creating a conditional expression table that is information related to processing, and change to change information in the processing flow / input / output information table including information for associating the conditional expression table according to the change instruction A source code generating step for generating a source code for each module, using the step, the information of the processing flow / input / output information table changed by the changing step and the information of the module / source code master table, and the source Generated by code generation step Object code generation step for generating object code based on the source code, and each module of the processing flow / input / output information table changed by the change step using the object code generated by the object code generation step The computer executes a process execution step for executing the process and a result image display step for displaying a result image for each module obtained by executing the process in the process execution step on a display device. .

本発明によれば、効率のよい画像処理のロジック(処理フロー)の構築を実現することができる。   According to the present invention, it is possible to realize efficient image processing logic (processing flow).

本発明の実施形態に係る画像処理システムの概略構成の一例を示す模式図である。1 is a schematic diagram illustrating an example of a schematic configuration of an image processing system according to an embodiment of the present invention. 図1に示すPCの内部のハードウェア構成の一例を示す模式図である。It is a schematic diagram which shows an example of the hardware constitutions inside PC shown in FIG. 図1に示すPCの機能構成の一例を示す模式図である。It is a schematic diagram which shows an example of a function structure of PC shown in FIG. 図3に示すモジュール・ソースコードマスタテーブルの一例を示す模式図である。It is a schematic diagram which shows an example of the module source code master table shown in FIG. 図3に示す処理フロー・入出力パラメータテーブルの一例を示す模式図である。It is a schematic diagram which shows an example of the process flow and input / output parameter table shown in FIG. 図1に示すPCによる制御方法の処理手順の一例を示すフローチャートである。It is a flowchart which shows an example of the process sequence of the control method by PC shown in FIG. 本発明の実施形態を示し、画像処理プログラム開発画面の一例を示す模式図である。It is a schematic diagram which shows embodiment of this invention and shows an example of an image processing program development screen. 図6のステップS107におけるモジュールの「新規追加処理」の詳細な処理手順の一例を示すフローチャートである。7 is a flowchart illustrating an example of a detailed processing procedure of “new addition processing” of a module in step S107 of FIG. 図6のステップS109におけるモジュールのパラメータの「変更処理」の詳細な処理手順の一例を示すフローチャートである。FIG. 7 is a flowchart illustrating an example of a detailed processing procedure of “change processing” of a module parameter in step S <b> 109 of FIG. 6. FIG. 本発明の実施形態を示し、パラメータ編集画面の一例を示す模式図である。It is a schematic diagram which shows embodiment of this invention and shows an example of a parameter edit screen. 図6のステップS111におけるモジュールの「移動処理」の詳細な処理手順の一例を示すフローチャートである。7 is a flowchart illustrating an example of a detailed processing procedure of a “move process” of a module in step S111 in FIG. 6. 図6のステップS113におけるモジュールの「挿入処理」の詳細な処理手順の一例を示すフローチャートである。7 is a flowchart illustrating an example of a detailed processing procedure of “insertion processing” of a module in step S113 in FIG. 6. 図6のステップS115における処理フローの「全体実行処理」の詳細な処理手順の一例を示すフローチャートである。It is a flowchart which shows an example of the detailed process sequence of the "all execution process" of the process flow in step S115 of FIG. 分岐処理を含む処理手順の一例を示すフローチャートである。It is a flowchart which shows an example of the process sequence containing a branch process. 本発明の実施形態を示し、条件式入力画面の一例を示す模式図である。It is a schematic diagram which shows embodiment of this invention and shows an example of a conditional expression input screen. 分岐処理モジュールが追加された際の処理手順の一例を示すフローチャートである。It is a flowchart which shows an example of the process sequence at the time of a branch process module being added. 前回の設定値での処理結果画像比較ウィンドウの一例を示す。An example of the processing result image comparison window with the last set value is shown. 分岐処理を含む、処理フロー・入出力パラメータテーブルの一例を示す模式図である。It is a schematic diagram which shows an example of a process flow / input / output parameter table including a branch process. 分岐処理に使用する条件式テーブルの一例を示す模式図である。It is a schematic diagram which shows an example of the conditional expression table used for a branch process. 反復処理中の経過画像を表示するウィンドウの一例を示す。An example of the window which displays the progress image in process of repetition is shown. 「並列分岐処理」の詳細な処理手順の一例を示すフローチャートである。It is a flowchart which shows an example of the detailed process sequence of a "parallel branch process." ノード処理テーブルの一例を示す模式図である。It is a schematic diagram which shows an example of a node process table. 分岐処理入力画面の一例を示す模式図である。It is a schematic diagram which shows an example of a branch process input screen. 第2の実施例における、新規追加処理の詳細な処理手順の一例を示すフローチャートである。It is a flowchart which shows an example of the detailed process sequence of a new addition process in 2nd Example. 第2の実施例における処理フロー・入出力パラメータテーブルの一例を示す模式図である。It is a schematic diagram which shows an example of the process flow and input / output parameter table in a 2nd Example. 第3の実施例における新規追加処理の詳細な手順の一例を示すフローチャートである。It is a flowchart which shows an example of the detailed procedure of the new addition process in a 3rd Example. 第3の実施例における処理フロー・入出力パラメータテーブルの一例を示す模式図である。It is a schematic diagram which shows an example of the process flow and input / output parameter table in a 3rd Example. 画面作成処理の一例を示すフローチャートである。It is a flowchart which shows an example of a screen creation process. 画面作成処理で使用されるレイアウト画面の一例を示す模式図である。It is a schematic diagram which shows an example of the layout screen used by a screen creation process. 図28のステップS2805の新規ボタン追加処理の詳細を示すフローチャートである。It is a flowchart which shows the detail of the new button addition process of step S2805 of FIG. 図28のステップS2807の新規画面追加処理の詳細を示すフローチャートである。It is a flowchart which shows the detail of the new screen addition process of step S2807 of FIG. 図28のステップS2809の新規ボックス追加処理の詳細を示すフローチャートである。It is a flowchart which shows the detail of the new box addition process of step S2809 of FIG. 図28のステップS2811の変更・移動処理の詳細を示すフローチャートである。It is a flowchart which shows the detail of the change / movement process of step S2811 of FIG. 図28のステップS2813の保存処理の詳細を示すフローチャートである。It is a flowchart which shows the detail of the preservation | save process of step S2813 of FIG. 画面レイアウトテーブルの一例を示す模式図である。It is a schematic diagram which shows an example of a screen layout table. ボタンコントロールテーブルの一例を示す模式図である。It is a schematic diagram which shows an example of a button control table. 画面コントロールテーブルの一例を示す模式図である。It is a schematic diagram which shows an example of a screen control table. ボックスコントロールテーブルの一例を示す模式図である。It is a schematic diagram which shows an example of a box control table.

以下、図面を参照しながら、本発明の実施の形態について説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings.

<第1の実施例>
図1は、本発明の実施の形態に係る画像処理システム100の概略構成の一例を示す模式図である。
<First embodiment>
FIG. 1 is a schematic diagram illustrating an example of a schematic configuration of an image processing system 100 according to an embodiment of the present invention.

画像処理システム100は、図1に示すように、パーソナルコンピュータ(以下、「PC」と称する)110と、操作入力装置120と、CRTディスプレイ(以下、「CRT」と称する)130と、カメラ140と、照明装置コントローラ150と、照明装置160と、外部機器コントローラ170と、検査対象181が載置されたステージ180を有して構成されている。   As shown in FIG. 1, the image processing system 100 includes a personal computer (hereinafter referred to as “PC”) 110, an operation input device 120, a CRT display (hereinafter referred to as “CRT”) 130, and a camera 140. The illumination device controller 150, the illumination device 160, the external device controller 170, and the stage 180 on which the inspection object 181 is placed.

PC110は、画像処理システム100における動作を統括的に制御する情報処理装置である。ここで、本実施形態においては、PC110は、実際の製造工程等に導入される画像処理装置の画像処理プログラムの開発を支援する装置として適用した例を説明するが、本発明においてはこれに限定されるわけではなく、例えば、実際の製造工程等に導入される画像処理装置として適用する形態も本発明に含まれる。   The PC 110 is an information processing apparatus that comprehensively controls operations in the image processing system 100. Here, in the present embodiment, an example will be described in which the PC 110 is applied as an apparatus that supports development of an image processing program of an image processing apparatus introduced into an actual manufacturing process, but the present invention is not limited to this. However, the present invention includes a form applied as an image processing apparatus introduced into an actual manufacturing process or the like, for example.

PC110は、所定のケーブル等を介して、検査対象181の撮像(撮影)を行うカメラ140と通信可能に構成されている。また、PC110は、所定のケーブル等を介して、照明装置160の制御を行う照明装置コントローラ150と通信可能に構成されている。また、PC110は、所定のケーブル等を介して、ステージ180を制御するプログラムマブルコントローラ(PLC)などの外部機器コントローラ170と予め設定した通信が可能に構成されている。さらに、PC110は、所定のケーブル等を介して、それぞれ、操作入力装置120及びCRT130と通信可能に構成されている。即ち、PC110は、所定のケーブル等を介して接続された、操作入力装置120、CRT130、カメラ140、照明装置コントローラ150及び外部機器コントローラ170を制御することによって、画像処理システム100における動作を統括的に制御する。   The PC 110 is configured to be able to communicate with a camera 140 that captures an image of the inspection object 181 via a predetermined cable or the like. The PC 110 is configured to be able to communicate with a lighting device controller 150 that controls the lighting device 160 via a predetermined cable or the like. The PC 110 is configured to be able to communicate with an external device controller 170 such as a programmable controller (PLC) that controls the stage 180 via a predetermined cable or the like. Further, the PC 110 is configured to be able to communicate with the operation input device 120 and the CRT 130 via a predetermined cable or the like. That is, the PC 110 controls the operation in the image processing system 100 by controlling the operation input device 120, the CRT 130, the camera 140, the lighting device controller 150, and the external device controller 170 connected via a predetermined cable or the like. To control.

操作入力装置120は、例えばユーザがPC110に対して入力指示を行う際にユーザによって操作されるものであり、ユーザから入力指示があった場合に、当該入力指示をPC110に対して入力するものである。この操作入力装置120は、例えば、キーボード(KB)やマウス等で構成されている。   The operation input device 120 is operated by the user when the user gives an input instruction to the PC 110, for example, and inputs the input instruction to the PC 110 when the user gives an input instruction. is there. The operation input device 120 includes, for example, a keyboard (KB) and a mouse.

CRT130は、PC110の制御にしたがって、各種の画像や各種の情報などを表示画面に表示する。   The CRT 130 displays various images and various information on the display screen according to the control of the PC 110.

カメラ140は、PC110の制御にしたがって、ステージ180上に載置された検査対象181の撮影(撮像)を行い、撮影により得られた画像データを所定のケーブル等を介してPC110に送信する。 The camera 140 performs imaging (imaging) of the inspection object 181 placed on the stage 180 according to the control of the PC 110, and transmits image data obtained by the imaging to the PC 110 via a predetermined cable or the like.

照明装置コントローラ150は、PC110の制御にしたがって、照明装置160における照明を制御する。照明装置160は、照明装置コントローラ150の制御に基づき、検査対象181における検査内容に応じて、当該検査対象181に対する照明の点灯/非点灯を切り替え等する。   The illumination device controller 150 controls illumination in the illumination device 160 according to the control of the PC 110. Based on the control of the lighting device controller 150, the lighting device 160 switches lighting / non-lighting of the illumination on the inspection target 181 according to the inspection content of the inspection target 181.

外部機器コントローラ170は、PC110の制御にしたがって、ステージ180を制御する。ステージ180は、外部機器コントローラ170の制御に基づき、載置された検査対象181を目的の位置に移動させたり、検査対象181の搬入や搬出をしたりする。   The external device controller 170 controls the stage 180 according to the control of the PC 110. The stage 180 moves the placed inspection object 181 to a target position and carries in or out the inspection object 181 based on the control of the external device controller 170.

次に、PC110の内部のハードウェア構成について説明する。図2は、図1に示すPC110の内部のハードウェア構成の一例を示す模式図である。ここで、図2には、PC110の内部構成に加えて、当該PC110と接続される装置についても記載している。   Next, the internal hardware configuration of the PC 110 will be described. FIG. 2 is a schematic diagram illustrating an example of an internal hardware configuration of the PC 110 illustrated in FIG. Here, in FIG. 2, in addition to the internal configuration of the PC 110, a device connected to the PC 110 is also described.

PC110は、図2に示すように、CPU111と、RAM112と、ROM113と、システムバス114と、各種のコントローラ115(115a〜115f)と、外部メモリ116のハードウェア構成を有して構成されている。具体的に、各種のコントローラ115として、入力コントローラ115a、ビデオコントローラ115b、メモリコントローラ115c、通信I/Fコントローラ115d及び115e、画像入力コントローラ115fが構成されている。CPU111は、ROM113或いは外部メモリ116に記憶されたプログラム等に基づいてシステムバス114に接続された各デバイスを制御して、PC110における動作を統括的に制御する。RAM112は、CPU111の主メモリ、ワークエリア等として機能する。CPU111は、処理の実行に際して、必要なプログラム等をRAM112にロードして、プログラムを実行することにより、PC110における各種の動作を実現する。ROM113には、CPU111の制御プログラムであるBIOS(Basic Input
/ Output System)やオペレーティングシステムプログラム(以下、「OS」と称する)、CPU111がPC110の機能を実現するために必要な各種のプログラム等が記憶されている。なお、これらのプログラムは、外部メモリ116に記憶されている形態であってもよい。
As shown in FIG. 2, the PC 110 has a hardware configuration including a CPU 111, a RAM 112, a ROM 113, a system bus 114, various controllers 115 (115 a to 115 f), and an external memory 116. . Specifically, as various controllers 115, an input controller 115a, a video controller 115b, a memory controller 115c, communication I / F controllers 115d and 115e, and an image input controller 115f are configured. The CPU 111 controls each device connected to the system bus 114 based on a program or the like stored in the ROM 113 or the external memory 116, and comprehensively controls the operation in the PC 110. The RAM 112 functions as a main memory and work area for the CPU 111. The CPU 111 implements various operations in the PC 110 by loading a necessary program or the like into the RAM 112 and executing the program when executing the processing. The ROM 113 has a BIOS (Basic Input) which is a control program of the CPU 111.
/ Output System), an operating system program (hereinafter referred to as “OS”), various programs necessary for the CPU 111 to realize the functions of the PC 110, and the like are stored. Note that these programs may be stored in the external memory 116.

システムバス114は、CPU111、RAM112、ROM113、入力コントローラ115a、ビデオコントローラ115b、メモリコントローラ115c、通信I/Fコントローラ115d及び115e、画像入力コントローラ115fを、相互に通信可能に接続する。   The system bus 114 connects the CPU 111, RAM 112, ROM 113, input controller 115a, video controller 115b, memory controller 115c, communication I / F controllers 115d and 115e, and image input controller 115f so that they can communicate with each other.

入力コントローラ115aは、キーボード(KB)やマウスなどからなる操作入力装置120からの入力を制御する。ビデオコントローラ115bは、表示装置であるCRT130への表示を制御する。メモリコントローラ115cは、外部メモリ116へのアクセスを制御する。ここで、外部メモリ116は、例えばハードディスク(HD)やフレキシブルディスク(FD)等で構成され、ブートプログラムや、各種のアプリケーションプログラム、編集ファイル、各種のデータや各種の情報等を記憶する。また、外部メモリ116は、CPU111がプログラムを用いた処理を行う際に使用する各種のテーブルや各種の検査結果情報等も記憶する。通信I/Fコントローラ115dは、外部機器コントローラ170との通信を制御する。また、通信I/Fコントローラ115eは、照明装置コントローラ150との通信を制御する。画像入力コントローラ115fは、カメラ140と通信を行って、カメラ140から画像データの受信が可能に構成されている。なお、本実施形態では、カメラ140からの画像データの入力を前提に説明を行うが、画像ファイルを読み込んで入力する形態であってもよい。   The input controller 115a controls input from the operation input device 120 such as a keyboard (KB) and a mouse. The video controller 115b controls display on the CRT 130 which is a display device. The memory controller 115 c controls access to the external memory 116. Here, the external memory 116 is composed of, for example, a hard disk (HD) or a flexible disk (FD), and stores a boot program, various application programs, editing files, various data, various information, and the like. The external memory 116 also stores various tables, various inspection result information, and the like used when the CPU 111 performs processing using a program. The communication I / F controller 115d controls communication with the external device controller 170. Further, the communication I / F controller 115e controls communication with the lighting device controller 150. The image input controller 115 f is configured to be able to receive image data from the camera 140 by communicating with the camera 140. In the present embodiment, the description is based on the assumption that image data is input from the camera 140, but an image file may be read and input.

次に、PC110の機能構成について説明する。図3は、図1に示すPC110の機能構成の一例を示す模式図である。   Next, the functional configuration of the PC 110 will be described. FIG. 3 is a schematic diagram illustrating an example of a functional configuration of the PC 110 illustrated in FIG.

PC110には、図3に示すように、テーブル記憶部310、フロー作成部320、ソースコード変換部330、コンパイル部340、(検証)実行部350、データ保存部360、及び、データ入力・出力部370の各機能構成が構成される。また、テーブル記憶部310には、モジュール・ソースコードマスタテーブル311、処理フロー・入出力パラメータテーブル312、ソースコードテーブル313、オブジェクトコードテーブル314、及び、プロジェクトファイルテーブル315が保持されている。さらに、図示はしていないが、条件式テーブルやノード処理フラグテーブルも保持されている。   As shown in FIG. 3, the PC 110 includes a table storage unit 310, a flow creation unit 320, a source code conversion unit 330, a compilation unit 340, a (verification) execution unit 350, a data storage unit 360, and a data input / output unit. Each functional configuration of 370 is configured. The table storage unit 310 holds a module / source code master table 311, a processing flow / input / output parameter table 312, a source code table 313, an object code table 314, and a project file table 315. Further, although not shown, a conditional expression table and a node processing flag table are also held.

ここで、本実施形態においては、図3のテーブル記憶部310が、例えば図2に示す外部メモリ116に構成される(一旦RAM112に構成された後に外部メモリ116に構成される場合も含む)。また、図3のフロー作成部320、ソースコード変換部330、コンパイル部340、(検証)実行部350、データ保存部360及びデータ入力・出力部370が、例えば図2に示すCPU111とROM113或いは外部メモリ116に記憶されているプログラムとから構成される。   Here, in the present embodiment, the table storage unit 310 in FIG. 3 is configured in the external memory 116 shown in FIG. 2, for example (including a case where the table storage unit 310 is configured in the external memory 116 after being once configured in the RAM 112). Also, the flow creation unit 320, the source code conversion unit 330, the compilation unit 340, the (verification) execution unit 350, the data storage unit 360, and the data input / output unit 370 shown in FIG. And a program stored in the memory 116.

まず、図3のテーブル記憶部310に保持される各種のテーブルについて説明する。図4は、図3に示すモジュール・ソースコードマスタテーブル311の一例を示す模式図である。   First, various tables held in the table storage unit 310 of FIG. 3 will be described. FIG. 4 is a schematic diagram showing an example of the module / source code master table 311 shown in FIG.

モジュール・ソースコードマスタテーブル311には、図4に示すように、インデックス(Index)ごとに、画像処理に係るモジュール(画像処理モジュール)と、各モジュールに対応するソースコードが関連付けられている。このソースコードは、ソースコード変換部330で処理対象のモジュールをソースコードに変換する際に用いられるものである。   In the module / source code master table 311, as shown in FIG. 4, a module (image processing module) related to image processing and a source code corresponding to each module are associated with each index. This source code is used when the source code conversion unit 330 converts a module to be processed into a source code.

図5は、図3に示す処理フロー・入出力パラメータテーブル312の一例を示す模式図である。処理フロー・入出力パラメータテーブル312は、図5に示すように、インデックス(Index)501ごとに、画像処理に係るモジュール503と、各モジュール503の順序502と、各モジュール503のフロー登録名504と、各モジュール503における入力パラメータ505及び出力パラメータ506が関連付けられている。入力パラメータ505は、各モジュールで使用する画像バッファや処理領域等を示す。出力パラメータ506は、各モジュールが実行された際の結果画像バッファや閾値等を示す。次ステップ507は、次に処理されるべきステップのインデックス(Index)501を示す。なお、この項目は、複数のインデックス(Index)を持つこともある。また、分岐参照508は、モジュール503に「反復処理」モジュール、「条件分岐処理」モジュールを設定した際に、各条件(ノード)が次にどのステップを処理するかを指定する条件式テーブルを示す。   FIG. 5 is a schematic diagram showing an example of the processing flow / input / output parameter table 312 shown in FIG. As illustrated in FIG. 5, the processing flow / input / output parameter table 312 includes, for each index 501, a module 503 relating to image processing, an order 502 of each module 503, and a flow registration name 504 of each module 503. The input parameter 505 and the output parameter 506 in each module 503 are associated with each other. An input parameter 505 indicates an image buffer, a processing area, and the like used in each module. The output parameter 506 indicates a result image buffer, a threshold value, and the like when each module is executed. A next step 507 indicates an index 501 of a step to be processed next. Note that this item may have a plurality of indexes. The branch reference 508 indicates a conditional expression table that specifies which step is to be processed next by each condition (node) when the “iterative processing” module and the “conditional branch processing” module are set in the module 503. .

なお、図5に示す処理フロー・入出力パラメータテーブル312におけるインデックス(Index)501と、図4に示すモジュール・ソースコードマスタテーブル311におけるインデックス(Index)とは特に対応させていないが、相互に対応させて各テーブルを作成する形態であってもよい。   The index (Index) 501 in the processing flow / input / output parameter table 312 shown in FIG. 5 and the index (Index) in the module / source code master table 311 shown in FIG. In this case, each table may be created.

ソースコードテーブル313は、処理フロー・入出力パラメータテーブル312に記憶されているモジュール503について、ソースコード変換部330でモジュール・ソースコードマスタテーブル311を用いてソースコードに変換し登録している、全てのモジュール或いは一部のモジュールにおけるソースコードを記憶する。   The source code table 313 converts all modules 503 stored in the processing flow / input / output parameter table 312 into source codes using the module / source code master table 311 and registers them in the source code conversion unit 330. The source code in the module or a part of the modules is stored.

オブジェクトコードテーブル314は、ソースコードテーブル313に記憶されているソースコードについてコンパイル部340で変換した実行可能なモジュールのオブジェクトコードを記憶する。プロジェクトファイルテーブル315は、画像処理に係る初期設定パラメータや、処理フローシーケンス、ソースコード、入出力パラメータ等を記憶する。   The object code table 314 stores the object code of an executable module obtained by converting the source code stored in the source code table 313 by the compiling unit 340. The project file table 315 stores initial setting parameters relating to image processing, processing flow sequences, source codes, input / output parameters, and the like.

続いて、図3のフロー作成部320、ソースコード変換部330、コンパイル部340、(検証)実行部350、データ保存部360、及び、データ入力・出力部370について説明する。 Next, the flow creation unit 320, the source code conversion unit 330, the compilation unit 340, the (verification) execution unit 350, the data storage unit 360, and the data input / output unit 370 in FIG. 3 will be described.

フロー作成部320は、モジュール・ソースコードマスタテーブル311に含まれているモジュールの処理シーケンスを管理する処理フロー・入出力パラメータテーブル312の作成等と、処理フロー描画領域(後述する図7の702)へのモジュールの描画を行う機能を有する。   The flow creation unit 320 creates a processing flow / input / output parameter table 312 for managing the processing sequence of modules included in the module / source code master table 311 and the processing flow drawing area (702 in FIG. 7 described later). It has a function to draw a module in

ソースコード変換部330は、フロー作成部320により作成された処理フロー・入出力パラメータテーブル312に記憶されている各モジュールの処理データをモジュール・ソースコードマスタテーブル311と照合して、各モジュールをソースコードに変換し、ソースコードテーブル313に記憶する機能を有する。   The source code conversion unit 330 collates the processing data of each module stored in the processing flow / input / output parameter table 312 created by the flow creation unit 320 with the module / source code master table 311 to source each module. It has a function of converting into code and storing it in the source code table 313.

なお、図4及び図5に示すテーブルのモジュールとしては、画像に対する処理だけでなく、画像を取得するための事前処理や、処理結果を出力するための事後処理を含む外部機器に対する処理など画像の処理に関する処理であればよい。例えば、カメラ140の撮像条件を設定する制御指令や、照明装置160を制御するための照明装置コントローラ150への制御指令、或いは、ステージの移動などを制御するための外部機器コントローラ170への制御指令を行うものであってもよい。   The table modules shown in FIGS. 4 and 5 include not only image processing but also image processing such as pre-processing for acquiring images and post-processing for outputting processing results to external devices. Any process related to the process may be used. For example, a control command for setting the imaging conditions of the camera 140, a control command for the lighting device controller 150 for controlling the lighting device 160, or a control command for the external device controller 170 for controlling movement of the stage, etc. It may be what performs.

コンパイル部340は、ソースコードテーブル313に記憶されているソースコードから実行可能なオブジェクトコードを生成し、生成したオブジェクトコードをオブジェクトコードテーブル314に記憶する機能を有する。   The compiling unit 340 has a function of generating executable object code from the source code stored in the source code table 313 and storing the generated object code in the object code table 314.

なお、コンパイル部340が行うコンパイルには、デバッグ・コンパイルとリリース・コンパイルの2つのタイプがある。ここで、本実施形態においては、処理フロー作成中には、ソースコードレベルでのステップ実行を可能とするデバッグ・コンパイルを行い、データ保存時には、オンラインで利用可能なファイルを生成するリリース・コンパイルを行う。この際、デバッグ・コンパイル及びリリース・コンパイルの両者は、同じ変換手法で生成されたソースコードを参照するものとする。   There are two types of compilation performed by the compiling unit 340: 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.

(検証)実行部350は、コンパイル部340により作成されたオブジェクトコードテーブル314に記憶されているオブジェクトコードを実行し、結果画像表示領域(後述する図7の703)と処理フロー・入出力パラメータテーブル312を更新する機能を有する。   The (verification) execution unit 350 executes the object code stored in the object code table 314 created by the compiling unit 340, results image display area (703 in FIG. 7 described later), processing flow / input / output parameter table 312 is updated.

データ保存部360は、例えば、RAM112にあるソースコードテーブル313、オブジェクトコードテーブル314及びプロジェクトファイルテーブル315を外部メモリ116に出力して、データの保存処理を行う。   For example, the data storage unit 360 outputs the source code table 313, the object code table 314, and the project file table 315 in the RAM 112 to the external memory 116, and performs data storage processing.

データ入力・出力部370は、各モジュールで使用する入出力パラメータを管理する機能を有する。   The data input / output unit 370 has a function of managing input / output parameters used in each module.

次に、PC110による制御方法の処理手順について説明する。図6は、図1に示すPC110による制御方法の処理手順の一例を示すフローチャートである。   Next, the processing procedure of the control method by the PC 110 will be described. FIG. 6 is a flowchart illustrating an example of a processing procedure of a control method performed by the PC 110 illustrated in FIG.

まず、図6のステップS101において、PC110のCPU111は、例えば、操作入力装置120からの入力指示に基づいて、画像処理プログラムの開発を行うための画像処理プログラム開発画面をCRT130に表示する処理を行う。   First, in step S101 of FIG. 6, the CPU 111 of the PC 110 performs a process of displaying an image processing program development screen for developing an image processing program on the CRT 130 based on an input instruction from the operation input device 120, for example. .

図7は、本発明の実施形態を示し、画像処理プログラム開発画面700の一例を示す模式図である。この画像処理プログラム開発画面700は、例えばGUIで構成されている。   FIG. 7 is a schematic diagram illustrating an example of the image processing program development screen 700 according to the embodiment of this invention. The image processing program development screen 700 is configured with, for example, a GUI.

図7に示す画像処理プログラム開発画面700には、利用可能な処理ユニット(即ち、「カメラ取込」等の画像処理に係る各モジュール)を表示するツールボックス701と、画像処理の実行順序(即ち、各モジュールの実行順序)をフローチャートで描画する処理フロー描画領域702と、各画像処理(即ち、各モジュールの処理)で実行した結果画像を表示する結果画像表示領域703と、メニューバー706及びツールバー707と、画像処理プログラムの開発を終了する際に操作される閉じるボタン708等が設けられている。また、図7に示す画像処理プログラム開発画面700には、例えば、新規モジュールの登録時もしくはパラメータの編集時等に、処理フロー描画領域702のフローチャートの各ステップ(即ち、各モジュール)で利用するパラメータを設定するパラメータ編集画面704と、そのパラメータの設定で実行された結果画像を表示する結果画像表示ウィンドウ705が表示される。図7に示す例では、パラメータ編集画面704には、「二値化」のモジュールに係るパラメータを設定する画面が示されている。ここで、再び、図6の説明に戻る。   An image processing program development screen 700 shown in FIG. 7 includes a tool box 701 that displays available processing units (that is, modules related to image processing such as “camera capture”), and an execution order of image processing (that is, , The execution order of each module) in a flowchart, a process flow drawing area 702, a result image display area 703 for displaying a result image executed in each image process (that is, each module process), a menu bar 706, and a tool bar 707, a close button 708 that is operated when the development of the image processing program is finished, and the like. Further, the image processing program development screen 700 shown in FIG. 7 includes parameters used in each step (that is, each module) of the flowchart of the processing flow drawing area 702 when, for example, a new module is registered or a parameter is edited. A parameter editing screen 704 for setting the parameter and a result image display window 705 for displaying the result image executed by setting the parameter are displayed. In the example shown in FIG. 7, the parameter editing screen 704 shows a screen for setting parameters related to the “binarization” module. Here, it returns to description of FIG. 6 again.

ステップS101の処理が終了すると、ステップS102に進む。ステップS102に進むと、PC110のCPU111は、操作入力装置120からの入力指示に基づいて、ステップS101で表示された画像処理プログラム開発画面700を用いて新規に画像処理プログラムを開発するか否かを判断する。具体的に、本例では、画像処理プログラム開発画面700のツールバー707における新規作成ボタン707aの選択の有無に応じて、新規に画像処理プログラムを開発するか否かを判断する。即ち、本例では、新規作成ボタン707aが選択された場合に、新規に画像処理プログラムを開発すると判断される。   When the process of step S101 ends, the process proceeds to step S102. In step S102, the CPU 111 of the PC 110 determines whether or not to newly develop an image processing program using the image processing program development screen 700 displayed in step S101 based on an input instruction from the operation input device 120. to decide. Specifically, in this example, whether or not to newly develop an image processing program is determined according to whether or not a new creation button 707a is selected on the toolbar 707 of the image processing program development screen 700. That is, in this example, when the new creation button 707a is selected, it is determined that a new image processing program is to be developed.

ステップS102の判断の結果、新規に画像処理プログラムを開発しない場合には(ステップS102/NO)、ステップS103に進む。   As a result of the determination in step S102, when a new image processing program is not developed (step S102 / NO), the process proceeds to step S103.

ステップS103に進むと、PC110のCPU111は、外部メモリ116に保存されているプロジェクトファイルテーブル315を読み出して、これをRAM112に記憶する。 In step S 103, the CPU 111 of the PC 110 reads the project file table 315 saved in the external memory 116 and stores it in the RAM 112.

ステップS103の処理が終了した場合、或いは、ステップS102で新規に画像処理プログラムを開発すると判断された場合には(ステップS102/YES)、ステップS104に進む。   When the process of step S103 is completed, or when it is determined in step S102 that a new image processing program is to be developed (YES in step S102), the process proceeds to step S104.

ステップS104に進むと、PC110のCPU111は、操作入力装置120からの入力指示(具体的には、ステップS101で表示された画像処理プログラム開発画面700に対する入力指示)があったか否かを判断する。   In step S104, the CPU 111 of the PC 110 determines whether there is an input instruction from the operation input device 120 (specifically, an input instruction for the image processing program development screen 700 displayed in step S101).

ステップS104の判断の結果、操作入力装置120からの入力指示がなかった場合には(ステップS104/NO)、操作入力装置120からの入力指示があるまで、ステップS104で待機する。一方、ステップS104の判断の結果、操作入力装置120からの入力指示があった場合には(ステップS104/YES)、ステップS105に進む。   As a result of the determination in step S104, if there is no input instruction from the operation input device 120 (step S104 / NO), the process waits in step S104 until there is an input instruction from the operation input device 120. On the other hand, as a result of the determination in step S104, if there is an input instruction from the operation input device 120 (step S104 / YES), the process proceeds to step S105.

ステップS105に進むと、PC110のCPU111は、操作入力装置120からの入力指示に基づいて、選択された処理内容の判定処理を行う。このステップS105で判定される処理内容としては、本例では、「新規追加処理」、「変更処理」、「移動処理」、「挿入処理」、「全体実行処理」、「保存処理」及び「開発終了処理」である。なお、ここで挙げた処理内容は一例を示したものであり、その他の処理内容をステップS105で判定することも可能である。   In step S105, the CPU 111 of the PC 110 performs a process for determining the selected process content based on an input instruction from the operation input device 120. In this example, the processing contents determined in step S105 include “new addition processing”, “change processing”, “move processing”, “insertion processing”, “overall execution processing”, “save processing”, and “development processing”. It is “end processing”. Note that the processing content given here is an example, and other processing content can be determined in step S105.

ここで、ステップS105の判定処理では、例えば、図7に示す画像処理プログラム開発画面700において以下の入力がなされることによって、上述した各処理を判定するようにしている。   Here, in the determination process of step S105, for example, the following processes are determined by making the following inputs on the image processing program development screen 700 shown in FIG.

まず、図7に示すツールボックス701からモジュールが選択され、処理フロー描画領域702の処理フローシーケンスの最後尾にドラッグ&ドロップ、またはツールボックス701のモジュールがダブルクリックされると、PC110のCPU111は、モジュールの「新規追加処理」のイベントであると判定する。また、処理フロー描画領域702に既に登録されているモジュールがダブルクリックされると、PC110のCPU111は、モジュールのパラメータの「変更処理」のイベントであると判定する。また、処理フロー描画領域702に既に登録されているモジュールが他のモジュールの間にドラッグ&ドロップされると、PC110のCPU111は、モジュールの「移動処理」のイベントであると判定する。また、図7に示すツールボックス701からモジュールが選択され、処理フロー描画領域702に既に登録されているモジュールの間にドラッグ&ドロップされると、PC110のCPU111は、モジュールの「挿入処理」のイベントであると判定する。また、メニューバー706もしくはツールバー707の実行が選択されると、PC110のCPU111は、処理フロー描画領域702に設定された処理フローの「全体実行処理」のイベントであると判定する。また、メニューバー706もしくはツールバー707の保存が選択されると、PC110のCPU111は、処理フロー描画領域702に設定された処理フローの「保存処理」のイベントであると判定する。また、例えば閉じるボタン708もしくはメニューバー706の終了が選択されると、PC110のCPU111は、画像処理プログラムの「開発終了処理」のイベントであると判定する。   First, when a module is selected from the tool box 701 shown in FIG. 7 and dragged and dropped to the end of the processing flow sequence in the processing flow drawing area 702 or when the module in the tool box 701 is double-clicked, the CPU 111 of the PC 110 It is determined that the event is a module “new addition process” event. When a module already registered in the processing flow drawing area 702 is double-clicked, the CPU 111 of the PC 110 determines that the event is a module parameter “change process” event. When a module already registered in the processing flow drawing area 702 is dragged and dropped between other modules, the CPU 111 of the PC 110 determines that the event is a “movement process” of the module. When a module is selected from the toolbox 701 shown in FIG. 7 and dragged and dropped between modules already registered in the processing flow drawing area 702, the CPU 111 of the PC 110 causes the event of “insertion processing” of the module. It is determined that When execution of the menu bar 706 or the tool bar 707 is selected, the CPU 111 of the PC 110 determines that the event is an “all execution process” event of the process flow set in the process flow drawing area 702. When saving of the menu bar 706 or the toolbar 707 is selected, the CPU 111 of the PC 110 determines that the event is a “save process” event of the process flow set in the process flow drawing area 702. For example, when the close button 708 or the end of the menu bar 706 is selected, the CPU 111 of the PC 110 determines that the event is a “development end process” event of the image processing program.

なお、本実施形態ではこのようにして処理内容の判定を行うようにしているが、これは一例であり、例えばメニューバー706もしくはツールバー707に「新規追加」などの処理内容に応じたアイコン等の機能を設けてもよく、上述した形態に限定されるものではない。   In this embodiment, the processing content is determined in this way. However, this is an example. For example, an icon or the like corresponding to the processing content such as “add new” is added to the menu bar 706 or the toolbar 707. A function may be provided, and is not limited to the above-described form.

続いて、ステップS106において、PC110のCPU111は、ステップS105で判定した処理内容が、モジュールの「新規追加処理」であるか否かを判断する。   Subsequently, in step S <b> 106, the CPU 111 of the PC 110 determines whether or not the processing content determined in step S <b> 105 is a “new addition process” of the module.

ステップS106の判断の結果、ステップS105で判定した処理内容が、モジュールの「新規追加処理」である場合には(ステップS106/YES)、ステップS107に進む。   As a result of the determination in step S106, when the processing content determined in step S105 is the “new addition process” of the module (step S106 / YES), the process proceeds to step S107.

ステップS107に進むと、PC110のCPU111は、選択されたモジュールの「新規追加処理」を行う。このステップS107の詳細については、図8を用いて後述する。そして、ステップS107の処理が終了すると、ステップS104に戻り、操作入力装置120から次の入力指示があるまで待機する。   In step S107, the CPU 111 of the PC 110 performs a “new addition process” for the selected module. Details of step S107 will be described later with reference to FIG. When the process of step S107 is completed, the process returns to step S104, and waits until the next input instruction is received from the operation input device 120.

一方、ステップS106の判断の結果、ステップS105で判定した処理内容が、モジュールの「新規追加処理」でない場合には(ステップS106/NO)、ステップS108に進む。   On the other hand, as a result of the determination in step S106, when the processing content determined in step S105 is not the “new addition process” of the module (step S106 / NO), the process proceeds to step S108.

ステップS108に進むと、PC110のCPU111は、ステップS105で判定した処理内容が、モジュールのパラメータの「変更処理」であるか否かを判断する。   In step S108, the CPU 111 of the PC 110 determines whether or not the processing content determined in step S105 is a “parameter change process” for the module.

ステップS108の判断の結果、ステップS105で判定した処理内容が、モジュールのパラメータの「変更処理」である場合には(ステップS108/YES)、ステップS109に進む。   As a result of the determination in step S108, when the processing content determined in step S105 is “change processing” of the module parameter (step S108 / YES), the process proceeds to step S109.

ステップS109に進むと、PC110のCPU111は、選択されたモジュールのパラメータの「変更処理」を行う。このステップS109の詳細については、図9を用いて後述する。そして、ステップS109の処理が終了すると、ステップS104に戻り、操作入力装置120から次の入力指示があるまで待機する。   In step S109, the CPU 111 of the PC 110 performs “change processing” for the parameter of the selected module. Details of step S109 will be described later with reference to FIG. When the process of step S109 is completed, the process returns to step S104, and waits for a next input instruction from the operation input device 120.

一方、ステップS108の判断の結果、ステップS105で判定した処理内容が、モジュールのパラメータの「変更処理」でない場合には(ステップS108/NO)、ステップS110に進む。ステップS110に進むと、PC110のCPU111は、ステップS105で判定した処理内容が、モジュールの「移動処理」であるか否かを判断する。   On the other hand, as a result of the determination in step S108, if the processing content determined in step S105 is not a “parameter change process” for the module parameter (step S108 / NO), the process proceeds to step S110. In step S110, the CPU 111 of the PC 110 determines whether or not the processing content determined in step S105 is a “movement process” of the module.

ステップS110の判断の結果、ステップS105で判定した処理内容が、モジュールの「移動処理」である場合には(ステップS110/YES)、ステップS111に進む。   As a result of the determination in step S110, if the processing content determined in step S105 is a “movement process” of the module (step S110 / YES), the process proceeds to step S111.

ステップS111に進むと、PC110のCPU111は、選択されたモジュールの「移動処理」を行う。このステップS111の詳細については、図11を用いて後述する。そして、ステップS111の処理が終了すると、ステップS104に戻り、操作入力装置120から次の入力指示があるまで待機する。   In step S111, the CPU 111 of the PC 110 performs “move processing” for the selected module. Details of step S111 will be described later with reference to FIG. When the process of step S111 is completed, the process returns to step S104 and waits until the next input instruction is received from the operation input device 120.

一方、ステップS110の判断の結果、ステップS105で判定した処理内容が、モジュールの「移動処理」でない場合には(ステップS110/NO)、ステップS112に進む。ステップS112に進むと、PC110のCPU111は、ステップS105で判定した処理内容が、モジュールの「挿入処理」であるか否かを判断する。   On the other hand, as a result of the determination in step S110, when the processing content determined in step S105 is not the “movement process” of the module (step S110 / NO), the process proceeds to step S112. In step S112, the CPU 111 of the PC 110 determines whether or not the processing content determined in step S105 is the “insertion processing” of the module.

ステップS112の判断の結果、ステップS105で判定した処理内容が、モジュールの「挿入処理」である場合には(ステップS112/YES)、ステップS113に進む。   As a result of the determination in step S112, when the processing content determined in step S105 is “insertion processing” of the module (step S112 / YES), the process proceeds to step S113.

ステップS113に進むと、PC110のCPU111は、選択されたモジュールの「挿入処理」を行う。このステップS113の詳細については、図12を用いて後述する。そして、ステップS113の処理が終了すると、ステップS104に戻り、操作入力装置120から次の入力指示があるまで待機する。 In step S113, the CPU 111 of the PC 110 performs “insertion processing” for the selected module. Details of step S113 will be described later with reference to FIG. When the process of step S113 is completed, the process returns to step S104 and waits until the next input instruction is received from the operation input device 120.

一方、ステップS112の判断の結果、ステップS105で判定した処理内容が、モジュールの「挿入処理」でない場合には(ステップS112/NO)、ステップS114に進む。ステップS114に進むと、PC110のCPU111は、ステップS105で判定した処理内容が、処理フローの「全体実行処理」であるか否かを判断する。   On the other hand, as a result of the determination in step S112, if the processing content determined in step S105 is not the “insertion processing” of the module (step S112 / NO), the process proceeds to step S114. In step S114, the CPU 111 of the PC 110 determines whether the processing content determined in step S105 is “overall execution processing” in the processing flow.

ステップS114の判断の結果、ステップS105で判定した処理内容が、処理フローの「全体実行処理」である場合には(ステップS114/YES)、ステップS115に進む。   As a result of the determination in step S114, when the processing content determined in step S105 is “overall execution processing” in the processing flow (step S114 / YES), the process proceeds to step S115.

ステップS115に進むと、PC110のCPU111は、処理フロー描画領域702に設定された処理フローの「全体実行処理」を行う。このステップS115の詳細については、図13を用いて後述する。そして、ステップS115の処理が終了すると、ステップS104に戻り、操作入力装置120から次の入力指示があるまで待機する。一方、ステップS114の判断の結果、ステップS105で判定した処理内容が、処理フローの「全体実行処理」でない場合には(ステップS114/NO)、ステップS116に進む。   In step S 115, the CPU 111 of the PC 110 performs “overall execution processing” of the processing flow set in the processing flow drawing area 702. Details of step S115 will be described later with reference to FIG. When the process of step S115 is completed, the process returns to step S104, and waits for a next input instruction from the operation input device 120. On the other hand, as a result of the determination in step S114, if the processing content determined in step S105 is not the “overall execution process” in the processing flow (step S114 / NO), the process proceeds to step S116.

ステップS116に進むと、PC110のCPU111は、ステップS105で判定した処理内容が、処理フローの「保存処理」であるか否かを判断する。   In step S116, the CPU 111 of the PC 110 determines whether the processing content determined in step S105 is “save processing” in the processing flow.

ステップS116の判断の結果、ステップS105で判定した処理内容が、処理フローの「保存処理」である場合には(ステップS116/YES)、ステップS117に進む。   As a result of the determination in step S116, when the processing content determined in step S105 is “save processing” in the processing flow (step S116 / YES), the process proceeds to step S117.

ステップS117に進むと、PC110のCPU111は、処理フロー描画領域702に設定された処理フローの全体をソース変換する処理を行う。具体的に、ステップS117では、PC110のCPU111(例えばソースコード変換部330)は、RAM112に記憶されている処理フロー・入出力パラメータテーブル312をソースコードに変換して、RAM112に記憶されているソースコードテーブル313を更新する処理を行う。また、PC110のCPU111(例えばコンパイル部340)は、ソースコードテーブル313のソースコードをリリース・コンパイルしてリリース版のオブジェクトコードに変換して、RAM112に記憶されているオブジェクトコードテーブル314を更新する処理を行う。   In step S117, the CPU 111 of the PC 110 performs a source conversion process for the entire processing flow set in the processing flow drawing area 702. Specifically, in step S117, the CPU 111 (for example, the source code conversion unit 330) of the PC 110 converts the processing flow / input / output parameter table 312 stored in the RAM 112 into source code, and stores the source stored in the RAM 112. Processing for updating the code table 313 is performed. Further, the CPU 111 (for example, the compiling unit 340) of the PC 110 releases and compiles the source code of the source code table 313, converts it into a release version of the object code, and updates the object code table 314 stored in the RAM 112. I do.

続いて、ステップS118において、PC110のCPU111(例えばデータ保存部360)は、RAM112上にある、ソースコードテーブル313をソースファイルとして、オブジェクトコードテーブル314をEXEファイルまたはDLLファイルとして、また、プロジェクトファイルテーブル315を外部メモリ116に保存する処理を行う。そして、ステップS118の処理が終了すると、ステップS104に戻り、操作入力装置120から次の入力指示があるまで待機する。   Subsequently, in step S118, the CPU 111 (for example, the data storage unit 360) of the PC 110 stores the source code table 313 on the RAM 112 as a source file, the object code table 314 as an EXE file or DLL file, and a project file table. A process of storing 315 in the external memory 116 is performed. Then, when the process of step S118 ends, the process returns to step S104, and waits for a next input instruction from the operation input device 120.

一方、ステップS116の判断の結果、ステップS105で判定した処理内容が、処理フローの「保存処理」でない場合には(ステップS116/NO)、ステップS119に進む。   On the other hand, as a result of the determination in step S116, if the processing content determined in step S105 is not “save processing” in the processing flow (step S116 / NO), the process proceeds to step S119.

ステップS119に進むと、PC110のCPU111は、ステップS105で判定した処理内容が、画像処理プログラムの「開発終了処理」であるか否かを判断する。   In step S119, the CPU 111 of the PC 110 determines whether the processing content determined in step S105 is “development end processing” of the image processing program.

ステップS119の判断の結果、ステップS105で判定した処理内容が、画像処理プログラムの「開発終了処理」でない場合には(ステップS119/NO)、ステップS104に戻り、操作入力装置120から入力指示があるまで待機する。   As a result of the determination in step S119, when the processing content determined in step S105 is not “development end processing” of the image processing program (step S119 / NO), the process returns to step S104, and an input instruction is issued from the operation input device 120. Wait until.

一方、ステップS119の判断の結果、ステップS105で判定した処理内容が、画像処理プログラムの「開発終了処理」である場合には(ステップS119/YES)、図6の示すフローチャートの処理を終了する。   On the other hand, as a result of the determination in step S119, when the processing content determined in step S105 is “development end processing” of the image processing program (step S119 / YES), the processing of the flowchart shown in FIG.

次に、図6のステップS107、S109、S111、S113及びS115の詳細について説明を行うが、具体的に、「カメラ取込」→「二値化」→「粒子解析」のモジュールの順序で処理フローを登録し、また、その後の処理を行う例について説明を行う。まず、図6のステップS107の詳細な処理について説明する。図8は、図6のステップS107におけるモジュールの「新規追加処理」の詳細な処理手順の一例を示すフローチャートである。   Next, details of steps S107, S109, S111, S113, and S115 in FIG. 6 will be described. Specifically, processing is performed in the order of modules of “camera capture” → “binarization” → “particle analysis”. An example of registering a flow and performing subsequent processing will be described. First, detailed processing in step S107 in FIG. 6 will be described. FIG. 8 is a flowchart showing an example of a detailed processing procedure of the “new addition processing” of the module in step S107 of FIG.

図6のステップS107の処理では、まず、図8のステップS201において、PC110のCPU111(例えばフロー作成部320)は、ステップS104の入力において選択されたモジュールを特定する処理を行う。ここで、本例では、まず、最初の「カメラ取込」のモジュールが特定される。   In the process of step S107 of FIG. 6, first, in step S201 of FIG. 8, the CPU 111 of the PC 110 (for example, the flow creation unit 320) performs a process of specifying the module selected in the input of step S104. Here, in this example, first, the first “camera capture” module is specified.

続いて、ステップS210では、ステップS201で特定されたモジュールが反復処理か条件分岐処理かのモジュールであるかを判断する。この場合、反復処理か条件分岐処理かのモジュールの場合、ステップS211に進むが、今回は「カメラ取込」のモジュールであるのでNO、つまり、ステップS202に進む。   Subsequently, in step S210, it is determined whether the module identified in step S201 is a module that is an iterative process or a conditional branch process. In this case, if the module is an iterative process or a conditional branch process, the process proceeds to step S211.

ステップS202において、PC110のCPU111(例えばフロー作成部320)は、CRT130に、ステップS201で特定されたモジュールのパラメータ編集画面704を表示する処理を行う。そして、PC110のCPU111(例えばフロー作成部320)は、パラメータ編集画面704に関して、操作入力装置120による編集を受け付ける。なお、ステップS201で「カメラ取込」のモジュールが特定された場合には、図7に示す画像処理プログラム開発画面700には、「カメラ取込」のモジュールに係るパラメータ編集画面704が表示されることになる。   In step S202, the CPU 111 of the PC 110 (for example, the flow creation unit 320) performs processing for displaying the parameter editing screen 704 of the module specified in step S201 on the CRT 130. Then, the CPU 111 of the PC 110 (for example, the flow creation unit 320) accepts editing by the operation input device 120 regarding the parameter editing screen 704. If the “camera capture” module is specified in step S201, a parameter editing screen 704 related to the “camera capture” module is displayed on the image processing program development screen 700 shown in FIG. It will be.

また、パラメータ編集画面704では、各モジュールに関するパラメータ、及び、処理領域などの入力パラメータ(図5に示す入力パラメータ505)や処理結果を記憶する出力パラメータ(図5に示す出力パラメータ506)の設定が可能に構成されている。   In the parameter editing screen 704, parameters related to each module, input parameters such as processing areas (input parameters 505 shown in FIG. 5), and output parameters for storing processing results (output parameters 506 shown in FIG. 5) are set. It is configured to be possible.

続いて、ステップS203において、PC110のCPU111(例えばフロー作成部320)は、操作入力装置120からの入力指示に基づいて、パラメータ編集画面704で編集されたパラメータを登録するか否かを判断する。具体的に、ここでは、図7に示すパラメータ編集画面704のOKボタン7041が選択された際に当該パラメータ編集画面704で編集されたパラメータを登録すると判断し、また、図8に示すパラメータ編集画面704の中止ボタン7042等が選択された際に当該パラメータ編集画面704で編集されたパラメータを登録しないと判断する。   Subsequently, in step S203, the CPU 111 of the PC 110 (for example, the flow creation unit 320) determines whether or not to register the parameter edited on the parameter editing screen 704 based on the input instruction from the operation input device 120. Specifically, here, when the OK button 7041 on the parameter editing screen 704 shown in FIG. 7 is selected, it is determined that the parameter edited on the parameter editing screen 704 is registered, and the parameter editing screen shown in FIG. When the cancel button 7042 of 704 or the like is selected, it is determined that the parameter edited on the parameter editing screen 704 is not registered.

ステップS203の判断の結果、パラメータ編集画面704で編集されたパラメータを登録する場合には(ステップS203/YES)、ステップS204に進む。   If the parameter edited on the parameter editing screen 704 is registered as a result of the determination in step S203 (step S203 / YES), the process proceeds to step S204.

ステップS204に進むと、PC110のCPU111(例えばフロー作成部320)は、ステップS201及びS202の処理で得られた情報を、処理フロー・入出力パラメータテーブル312に1レコードとして追加する処理を行う。   In step S204, the CPU 111 of the PC 110 (for example, the flow creation unit 320) performs processing for adding the information obtained in the processing in steps S201 and S202 as one record to the processing flow / input / output parameter table 312.

例えば、図5に示す処理フロー・入出力パラメータテーブル312に、最初に「カメラ取込」のモジュールに関するレコードを追加する場合について説明する。   For example, a case where a record relating to the “camera capture” module is first added to the processing flow / input / output parameter table 312 shown in FIG. 5 will be described.

この場合、モジュール503として「カメラ取込」が設定され、インデックス(Index)501として「1」が設定され、順序502として「1」が設定され、フロー登録名504として「U00001」が設定される。また、例えば、出力パラメータ506として、結果画像の格納先である「画像バッファA」の情報(アドレス等)が設定される。ここで「カメラ取込」処理は、処理フローの第1番目のモジュールであるため、入力パラメータ505には、画像バッファの情報(アドレス等)は格納されない。ここで、再び、図8の説明に戻る。   In this case, “camera capture” is set as the module 503, “1” is set as the index 501, “1” is set as the order 502, and “U00001” is set as the flow registration name 504. . For example, as the output parameter 506, information (address, etc.) of “image buffer A” that is the storage destination of the result image is set. Here, since the “camera capture” process is the first module in the process flow, the input parameter 505 does not store image buffer information (such as an address). Here, it returns to description of FIG. 8 again.

ステップS204の処理が終了すると、続いて、ステップS205において、PC110のCPU111(例えばフロー作成部320)は、ステップS201で特定したモジュールを処理フロー描画領域702に追加して描画(表示)する。なお、本実施形態においては、ステップS204の処理フロー・入出力パラメータテーブル312に関する処理とステップS205の処理フロー描画領域702の描画処理との処理の順番を、逆にする形態であってもよい。   When the process of step S204 is completed, in step S205, the CPU 111 of the PC 110 (for example, the flow creation unit 320) adds the module identified in step S201 to the process flow drawing area 702 and draws (displays) it. In the present embodiment, the order of the processing related to the processing flow / input / output parameter table 312 in step S204 and the drawing processing in the processing flow drawing area 702 in step S205 may be reversed.

続いて、ステップS214では、ステップS201で特定されたモジュールが並列分岐処理のモジュールであるかを判断する。この場合、並列分岐処理のモジュールの場合、YESに進み処理は終了となるが、今回は「カメラ取込」のモジュールであるのでNO、つまり、ステップS206に進む。   Subsequently, in step S214, it is determined whether the module specified in step S201 is a module for parallel branch processing. In this case, in the case of a parallel branch processing module, the process proceeds to YES, and the process ends. However, since this time the module is a “camera capture” module, NO, that is, the process proceeds to step S206.

ステップS206において、PC110のCPU111(例えばソースコード変換部330)は、ステップS205で処理フロー描画領域702に追加したモジュールを、モジュール・ソースコードマスタテーブル311を用いてソースコードに変換し、変換により得られたソースコードをソースコードテーブル313に記憶する。この際、PC110のCPU111(例えばソースコード変換部330)は、モジュール・ソースコードマスタテーブル311から読み出したソースコードに対して、必要に応じて、ステップS202で編集されたパラメータを反映させる等の修正を行って、得られたソースコードをソースコードテーブル313に記憶する。   In step S206, the CPU 111 of the PC 110 (for example, the source code conversion unit 330) converts the module added to the processing flow drawing area 702 in step S205 into source code using the module / source code master table 311 and obtains it by conversion. The stored source code is stored in the source code table 313. At this time, the CPU 111 of the PC 110 (for example, the source code conversion unit 330) modifies the source code read from the module / source code master table 311 to reflect the parameter edited in step S202 as necessary. The obtained source code is stored in the source code table 313.

その後、PC110のCPU111(例えばコンパイル部340)は、ソースコードテーブル313に記憶されているソースコードから実行可能なオブジェクトコードを生成し、生成したオブジェクトコードをオブジェクトコードテーブル314に記憶する。この際、PC110のCPU111(例えばコンパイル部340)は、ソースコードテーブル313のソースコードをデバッグ・コンパイルして、デバッグ版のオブジェクトコードとしてオブジェクトコードテーブル314に記憶する。   Thereafter, the CPU 111 (for example, the compiling unit 340) of the PC 110 generates an executable object code from the source code stored in the source code table 313, and stores the generated object code in the object code table 314. At this time, the CPU 111 (for example, the compiling unit 340) of the PC 110 debugs and compiles the source code of the source code table 313 and stores it in the object code table 314 as a debug version of the object code.

続いて、ステップS207において、PC110のCPU111(例えば(検証)実行部350)は、必要に応じて、処理フロー・入出力パラメータテーブル312の入力パラメータ505として記憶されている、前ステップの結果画像バッファに格納されている画像データを用いて、ステップS206で生成されたオブジェクトコードを実行する処理を行う。これにより、カメラ140からの画像データが処理結果画像として取得され、例えば、フロー作成部320は、当該処理結果画像を格納するバッファの情報を処理フロー・入出力パラメータテーブル312の出力パラメータ506に設定する。   Subsequently, in step S207, the CPU 111 of the PC 110 (for example, the (verification) execution unit 350) stores the result image buffer of the previous step stored as the input parameter 505 of the processing flow / input / output parameter table 312 as necessary. Is used to execute the object code generated in step S206. As a result, the image data from the camera 140 is acquired as a processing result image. For example, the flow creation unit 320 sets information on a buffer for storing the processing result image in the output parameter 506 of the processing flow / input / output parameter table 312. To do.

ただし、「カメラ取込」のモジュールの場合には、最初のステップであるため、入力パラメータ505に画像バッファの情報(アドレス等)が格納されていない。このため、最初の「カメラ取込」の場合には、単に、カメラ140からの画像データを取り込むことになる。したがって、ステップS207の実行処理に際しては、ステップS202で設定された入力パラメータや出力パラメータを参照して処理を実行し、結果画像表示ウィンドウ705に結果画像(カメラ140から取り込んだ画像データ)を表示することになる。   However, in the case of the “camera capture” module, since this is the first step, image buffer information (address, etc.) is not stored in the input parameter 505. Therefore, in the case of the first “camera capture”, the image data from the camera 140 is simply captured. Therefore, in the execution process of step S207, the process is executed with reference to the input parameter and output parameter set in step S202, and the result image (image data captured from the camera 140) is displayed in the result image display window 705. It will be.

続いて、ステップS208において、PC110のCPU111(例えば(検証)実行部350)は、ステップS204で追加したレコードの出力パラメータ506における画像バッファAのアドレスに格納されている結果画像データに基づく結果画像を結果画像表示領域703に描画(表示)する。なお、結果画像表示領域703には、モジュールごとの処理結果画像を表示することになるが、これにより、開発者は、どこの処理に問題があるのか、どのモジュールに対して修正処理するべきかの判断をすることが可能となる。   In step S208, the CPU 111 of the PC 110 (for example, the (verification) execution unit 350) displays a result image based on the result image data stored in the address of the image buffer A in the output parameter 506 of the record added in step S204. Draw (display) in the result image display area 703. In the result image display area 703, the processing result image for each module is displayed. With this, the developer should know which processing has a problem and which module should be corrected. It becomes possible to make a judgment.

ステップS208の処理が終了した場合、或いは、ステップS203においてパラメータ編集画面704で編集されたパラメータを登録しないと判断された場合には(ステップS203/NO)、操作入力装置120から「新規追加処理」の終了が指示されたときは図8のフローチャートの処理を終了し、また、操作入力装置120から「新規追加処理」の継続が指示されたときはステップS201に戻って、ステップS201以降の処理を再度行うことになる。   When the process of step S208 is completed, or when it is determined not to register the parameter edited on the parameter editing screen 704 in step S203 (step S203 / NO), the operation input device 120 performs “new addition process”. 8 is terminated, and when the operation input device 120 is instructed to continue the “new addition process”, the process returns to step S201, and the processes after step S201 are performed. Will do it again.

ここで、本例では、上述したように、「カメラ取込」→「二値化」→「粒子解析」のモジュールの順序で処理フローを登録するものであるため、以下に、同様の手順で、処理フローに「二値化」及び「粒子解析」のモジュールを追加する場合について説明する。なお、以下の説明では、上述した「カメラ取込」のモジュールにおける処理と異なる点を中心に説明を行う。   Here, in this example, as described above, the processing flow is registered in the order of modules of “camera capture” → “binarization” → “particle analysis”. The case of adding “binarization” and “particle analysis” modules to the processing flow will be described. In the following description, the description will focus on differences from the processing in the “camera capture” module described above.

「二値化」のモジュールを処理フローに追加する場合も、上述した「カメラ取込」の場合と基本的に同様の処理となるが、ステップS204では、新たに、図5に示すインデックス(Index)501の「2」に、モジュール503として「二値化」が設定され、順序502として「2」が設定され、フロー登録名504として「U00002」が設定される。また、入力パラメータ505としては、前ステップ(即ち、「カメラ取込」)の結果画像を格納する画像バッファAの情報(アドレス等)が格納される。即ち、「二値化」のモジュールの入力パラメータ505には、前ステップである「カメラ取込」の入力パラメータ505に格納されている画像バッファの情報が格納される。   Adding a “binarization” module to the processing flow is basically the same as the above-described “camera capture”, but in step S204, a new index (Index) shown in FIG. ) “2” of 501 is set to “binarization” as the module 503, “2” is set as the order 502, and “U00002” is set as the flow registration name 504. Further, as the input parameter 505, information (such as an address) of the image buffer A that stores the result image of the previous step (that is, “camera capture”) is stored. In other words, the input parameter 505 of the “binarization” module stores information of the image buffer stored in the input parameter 505 of “camera capture” which is the previous step.

続いて、ステップS205では、ステップS201で特定したモジュール(「二値化」)を処理フロー描画領域702に追加して描画(表示)する。そして、ステップS206では、ステップS205で追加登録したモジュールを、モジュール・ソースコードマスタテーブル311を用いてソースコードに変換し、変換により得られたソースコードをソースコードテーブル313に記憶して更新する。また、ソースコードテーブル313のソースコードをデバッグ・コンパイルして、これをオブジェクトコードテーブル314に記憶して更新する。   Subsequently, in step S205, the module ("binarization") specified in step S201 is added to the processing flow drawing area 702 and drawn (displayed). In step S206, the module additionally registered in step S205 is converted into source code using the module / source code master table 311. The source code obtained by the conversion is stored in the source code table 313 and updated. Also, the source code of the source code table 313 is debugged and compiled, and this is stored in the object code table 314 and updated.

続いて、ステップS207では、オブジェクトコードテーブル314に記憶されているオブジェクトコードを実行して、「二値化」のモジュールの入力パラメータ505を用いた二値化処理を行う。これにより、二値化処理がなされた画像データが処理結果画像として取得され、例えば、フロー作成部320は、当該処理結果画像を格納するバッファBの情報及びその際の閾値(例えば数値=98)の情報を処理フロー・入出力パラメータテーブル312の出力パラメータ506に設定する。   In step S207, the object code stored in the object code table 314 is executed to perform binarization processing using the input parameter 505 of the “binarization” module. As a result, the binarized image data is acquired as a processing result image. For example, the flow creation unit 320 includes information on the buffer B that stores the processing result image and a threshold value (for example, numerical value = 98). Is set in the output parameter 506 of the processing flow / input / output parameter table 312.

その後、ステップS208では、ステップS204で追加したレコードの出力パラメータ506における画像バッファBのアドレスに格納されている画像データに基づく結果画像を結果画像表示領域703に描画(表示)する。   Thereafter, in step S208, a result image based on the image data stored in the address of the image buffer B in the output parameter 506 of the record added in step S204 is drawn (displayed) in the result image display area 703.

また、「粒子解析」のモジュールを処理フローに追加する場合も、上述したモジュールの場合と基本的に同様の処理となるが、ステップS204では、インデックス(Index)501の「3」に、モジュール503として「粒子解析」が設定され、順序502としてここでは「3」が設定され、フロー登録名504としてここでは「U00003」が設定される。また、入力パラメータ505としては、前ステップ(ここでは、「二値化」)の結果画像を格納する画像バッファBの情報(アドレス等)が格納される。   In addition, when the “particle analysis” module is added to the processing flow, the processing is basically the same as the case of the above-described module, but in step S204, the module 503 is added to “3” of the index 501. “Particle analysis” is set as “3”, “3” is set here as the order 502, and “U00003” is set here as the flow registration name 504. In addition, as the input parameter 505, information (such as an address) of the image buffer B that stores the result image of the previous step (here, “binarization”) is stored.

続いて、ステップS205では、ステップS201で特定したモジュール(「粒子解析」)を処理フロー描画領域702に描画(表示)する。そして、ステップS206では、ステップS205で追加登録したモジュールを、モジュール・ソースコードマスタテーブル311を用いてソースコードに変換し、変換により得られたソースコードをソースコードテーブル313に記憶して更新する。また、ソースコードテーブル313のソースコードをデバッグ・コンパイルして、これをオブジェクトコードテーブル314に記憶して更新する。   Subsequently, in step S205, the module (“particle analysis”) specified in step S201 is drawn (displayed) in the processing flow drawing area 702. In step S206, the module additionally registered in step S205 is converted into source code using the module / source code master table 311. The source code obtained by the conversion is stored in the source code table 313 and updated. Also, the source code of the source code table 313 is debugged and compiled, and this is stored in the object code table 314 and updated.

続いて、ステップS207では、オブジェクトコードテーブル314に記憶されているオブジェクトコードを実行して、「粒子解析」のモジュールの入力パラメータ505を用いた粒子解析処理を行う。これにより、粒子解析がなされた画像データが処理結果画像として取得され、例えば、フロー作成部320は、当該処理結果画像を格納するバッファCの情報及びその際の粒子数(ここでは、例えば粒子数=51)の情報を処理フロー・入出力パラメータテーブル312の出力パラメータ506に設定する。   Subsequently, in step S207, the object code stored in the object code table 314 is executed to perform particle analysis processing using the input parameter 505 of the “particle analysis” module. As a result, the image data subjected to particle analysis is acquired as a processing result image. For example, the flow creation unit 320 includes information on the buffer C storing the processing result image and the number of particles at that time (here, for example, the number of particles). = 51) is set in the output parameter 506 of the processing flow / input / output parameter table 312.

その後、ステップS208では、ステップS204で追加したレコードの出力パラメータ506における画像バッファCのアドレスに格納されている画像データに基づく結果画像を結果画像表示領域703に描画(表示)する。ここで、本例では、結果画像表示領域703には、例えば、図7に示すように、その左側から順番に、処理フロー描画領域702に設定された処理フローの順序(即ち、「カメラ取込」→「二値化」→「粒子解析」のモジュールの順序)に応じて、その処理結果画像が表示される。以上のようにして、図6のステップS107におけるモジュールの「新規追加処理」が行われる。   Thereafter, in step S208, a result image based on the image data stored at the address of the image buffer C in the output parameter 506 of the record added in step S204 is drawn (displayed) in the result image display area 703. In this example, in the result image display area 703, for example, as shown in FIG. 7, the order of the processing flows set in the processing flow drawing area 702 (in other words, “camera capture” in order from the left side) ”→“ binarization ”→“ particle analysis ”module order), the processing result image is displayed. As described above, the “new addition process” for the module in step S107 in FIG. 6 is performed.

次に、図6のステップS109の詳細な処理について説明する。   Next, detailed processing in step S109 in FIG. 6 will be described.

図9は、図6のステップS109におけるモジュールのパラメータの「変更処理」の詳細な処理手順の一例を示すフローチャートである。ここでは、図8に示す処理により処理フロー描画領域702の処理フローに既に登録されている「二値化」のモジュールのパラメータを変更する例について説明する。   FIG. 9 is a flowchart showing an example of a detailed processing procedure of the “change processing” of the module parameter in step S109 of FIG. Here, an example will be described in which the parameters of the “binarization” module already registered in the processing flow of the processing flow drawing area 702 are changed by the processing shown in FIG.

図6のステップS109の処理では、まず、図9のステップS301において、PC110のCPU111(例えばフロー作成部320)は、ステップS104の入力において選択された、既に処理フローとして登録されているモジュールを特定する処理を行う。ここで、本例では、「二値化」のモジュールが特定される。   In the process of step S109 of FIG. 6, first, in step S301 of FIG. 9, the CPU 111 of the PC 110 (for example, the flow creation unit 320) specifies the module that has been selected as the input of step S104 and has already been registered as the process flow. Perform the process. Here, in this example, a “binarization” module is specified.

続いて、ステップS302において、PC110のCPU111(例えばフロー作成部320)は、CRT130に、ステップS301で特定されたモジュールのパラメータ編集画面704を表示する処理を行う。本例では、「二値化」のモジュールに係るパラメータ編集画面704が表示される。   Subsequently, in step S302, the CPU 111 of the PC 110 (for example, the flow creation unit 320) performs processing for displaying the parameter editing screen 704 of the module identified in step S301 on the CRT 130. In this example, a parameter editing screen 704 related to the “binarization” module is displayed.

図10は、本発明の実施形態を示し、パラメータ編集画面704の一例を示す模式図である。この図10に示すパラメータ編集画面704は、「二値化」のモジュールのパラメータの編集を行うための画面であり、二値化のタイプを設定する二値化タイプ設定部1001や、二値化の閾値を設定する閾値設定部1002、OKボタン7041及び中止ボタン7042等が設けられている。 FIG. 10 is a schematic diagram illustrating an example of the parameter editing screen 704 according to the embodiment of this invention. The parameter editing screen 704 shown in FIG. 10 is a screen for editing the parameters of the “binarization” module. The binarization type setting unit 1001 for setting the binarization type and the binarization A threshold value setting unit 1002 for setting the threshold value, an OK button 7041, a stop button 7042, and the like are provided.

そして、PC110のCPU111(例えばフロー作成部320)は、パラメータ編集画面704に関して、操作入力装置120による編集を受け付ける。ここで、図10に示す閾値設定部1002の閾値が変更されると、当該閾値の変更に応じて、結果画像表示ウィンドウ705に表示している画像が随時更新されて表示される。   Then, the CPU 111 of the PC 110 (for example, the flow creation unit 320) accepts editing by the operation input device 120 regarding the parameter editing screen 704. Here, when the threshold value of the threshold value setting unit 1002 shown in FIG. 10 is changed, the image displayed in the result image display window 705 is updated and displayed as needed according to the change of the threshold value.

続いて、ステップS303において、PC110のCPU111(例えばフロー作成部320)は、操作入力装置120からの入力指示に基づいて、ステップS301で特定したモジュールのパラメータをパラメータ編集画面704で編集されたパラメータに変更するか否かを判断する。具体的に、ここでは、パラメータ編集画面704でパラメータが変更されて、図10に示すパラメータ編集画面704のOKボタン7041が選択された際に、ステップS301で特定したモジュールのパラメータを変更すると判断する。   Subsequently, in step S303, the CPU 111 of the PC 110 (for example, the flow creation unit 320) converts the parameter of the module identified in step S301 into the parameter edited on the parameter editing screen 704 based on the input instruction from the operation input device 120. Determine whether to change. Specifically, here, when the parameter is changed on the parameter edit screen 704 and the OK button 7041 on the parameter edit screen 704 shown in FIG. 10 is selected, it is determined that the parameter of the module specified in step S301 is changed. .

ステップS303の判断の結果、ステップS301で特定したモジュールのパラメータをパラメータ編集画面704で編集されたパラメータに変更する場合には(ステップS303/YES)、ステップS304に進む。   As a result of the determination in step S303, when the parameter of the module specified in step S301 is changed to the parameter edited in the parameter editing screen 704 (step S303 / YES), the process proceeds to step S304.

ステップS304に進むと、PC110のCPU111(例えばソースコード変換部330)は、ステップS303でパラメータを変更すると判断されたモジュール以降のモジュールについて、モジュール・ソースコードマスタテーブル311を用いてソースコードに変換し、変換により得られたソースコードをソースコードテーブル313に記憶して更新する。具体的に、本例では、「二値化」のモジュールのパラメータを変更するものであるため、図8の処理で登録された処理フロー、即ち、「カメラ取込」→「二値化」→「粒子解析」のモジュールのうち、「二値化」及び「粒子解析」のモジュールについてソースコード変換が行われる。この際、PC110のCPU111(例えばソースコード変換部330)は、モジュール・ソースコードマスタテーブル311から読み出したソースコードに対して、必要に応じて、ステップS302で編集されたパラメータを反映させる等の修正を行って、得られたソースコードをソースコードテーブル313に記憶する。このように、変更すると判断されたモジュール以降のモジュールについてのみソースコード変換処理することで、この後説明するコンパイル処理と合わせて、開発時間の短縮が可能となり、効率のよい画像処理のロジック(処理フロー)の構築を実現することができる。   In step S304, the CPU 111 (for example, the source code conversion unit 330) of the PC 110 converts the module after the module determined to change the parameter in step S303 into the source code using the module / source code master table 311. The source code obtained by the conversion is stored in the source code table 313 and updated. Specifically, in this example, since the parameter of the “binarization” module is changed, the processing flow registered in the processing of FIG. 8, that is, “camera capture” → “binarization” → Among the “particle analysis” modules, source code conversion is performed for the “binarization” and “particle analysis” modules. At this time, the CPU 111 (for example, the source code conversion unit 330) of the PC 110 modifies the source code read from the module / source code master table 311 to reflect the parameter edited in step S302 as necessary. The obtained source code is stored in the source code table 313. In this way, by performing source code conversion processing only for modules after the module determined to be changed, development time can be shortened together with compilation processing described later, and efficient image processing logic (processing) Flow) can be realized.

その後、PC110のCPU111(例えばコンパイル部340)は、ソースコードテーブル313に記憶されているソースコードから実行可能なオブジェクトコードを生成し、生成したオブジェクトコードをオブジェクトコードテーブル314に記憶する。この際、PC110のCPU111(例えばコンパイル部340)は、ソースコードテーブル313のソースコードをデバッグ・コンパイルして、デバッグ版のオブジェクトコードとしてオブジェクトコードテーブル314に記憶して更新する。   Thereafter, the CPU 111 (for example, the compiling unit 340) of the PC 110 generates an executable object code from the source code stored in the source code table 313, and stores the generated object code in the object code table 314. At this time, the CPU 111 (for example, the compiling unit 340) of the PC 110 debugs and compiles the source code of the source code table 313, and stores and updates the source code in the object code table 314 as a debug version of the object code.

続いて、ステップS305において、PC110のCPU111(例えば(検証)実行部350)は、必要に応じて、処理フロー・入出力パラメータテーブル312の入力パラメータ505として示されている画像バッファに格納されている画像データを用いて、ステップS304で生成されたオブジェクトコードを実行する処理を行う。具体的に、本例では、処理対象が「二値化」のモジュールであるため、図5に示す処理フロー・入出力パラメータテーブル312の入力パラメータ505として記憶されている画像バッファAに格納されている画像データを用いて、ステップS304で生成されたオブジェクトコードを実行して二値化処理を行う。これにより、二値化処理がなされた画像データが処理結果画像として取得され、例えば、フロー作成部320は、当該処理結果画像を格納するバッファBの情報及びその際の閾値の情報を処理フロー・入出力パラメータテーブル312の出力パラメータ506に設定する。   Subsequently, in step S305, the CPU 111 of the PC 110 (for example, the (verification) execution unit 350) is stored in the image buffer indicated as the input parameter 505 of the processing flow / input / output parameter table 312 as necessary. Using the image data, processing for executing the object code generated in step S304 is performed. Specifically, in this example, since the processing target is a “binarization” module, the module is stored in the image buffer A stored as the input parameter 505 of the processing flow / input / output parameter table 312 shown in FIG. The binarization process is performed by executing the object code generated in step S304 using the existing image data. As a result, the binarized image data is acquired as a processing result image. For example, the flow creation unit 320 displays information about the buffer B that stores the processing result image and information about the threshold value at that time. The output parameter 506 of the input / output parameter table 312 is set.

続いて、ステップS306において、PC110のCPU111(例えば(検証)実行部350)は、処理フロー・入出力パラメータテーブル312の出力パラメータ506における画像バッファのアドレスに格納されている結果画像データに基づく結果画像を結果画像表示領域703に描画(表示)する。本例では、結果画像表示領域703には、例えば、その左側から順番に、処理フロー描画領域702に設定された処理フローの順序(即ち、「カメラ取込」→「二値化」→「粒子解析」のモジュールの順序)に応じて、その処理結果画像が表示されるが、例えば図8のステップS208の表示に対して、「二値化」のモジュール以降の処理結果画像が変更されて表示されることになる。   Subsequently, in step S306, the CPU 111 of the PC 110 (for example, the (verification) execution unit 350) results image based on the result image data stored at the address of the image buffer in the output parameter 506 of the processing flow / input / output parameter table 312. Is drawn (displayed) in the result image display area 703. In this example, in the result image display area 703, for example, in order from the left side, the order of the processing flows set in the processing flow drawing area 702 (ie, “camera capture” → “binarization” → “particle” The processing result image is displayed according to the order of the “analysis” module). For example, the processing result image after the “binarization” module is changed and displayed with respect to the display in step S208 of FIG. Will be.

ステップS306の処理が終了した場合、或いは、ステップS303において該当モジュールのパラメータをパラメータ編集画面704で編集されたパラメータに変更しないと判断された場合には(ステップS303/NO)、操作入力装置120から「変更処理」の終了が指示されたときは図9のフローチャートの処理を終了し、また、操作入力装置120から「変更処理」の継続が指示されたときはステップS301に戻って、ステップS301以降の処理を再度行うことになる。以上のようにして、図6のステップS109におけるモジュールのパラメータの「変更処理」が行われる。   When the process of step S306 is completed, or when it is determined in step S303 that the parameter of the corresponding module is not changed to the parameter edited on the parameter editing screen 704 (step S303 / NO), the operation input device 120 When the end of the “change process” is instructed, the process of the flowchart of FIG. 9 is ended. When the operation input device 120 is instructed to continue the “change process”, the process returns to step S301, and after step S301. This process is performed again. As described above, the module parameter “change process” in step S109 of FIG. 6 is performed.

次に、図6のステップS111の詳細な処理について説明する。   Next, detailed processing in step S111 in FIG. 6 will be described.

図11は、図6のステップS111におけるモジュールの「移動処理」の詳細な処理手順の一例を示すフローチャートである。このモジュールの移動処理により、処理フローの順序が変更されることになる。   FIG. 11 is a flowchart showing an example of a detailed processing procedure of the “move processing” of the module in step S111 of FIG. The order of processing flow is changed by the movement processing of this module.

図6のステップS111の処理では、まず、図11のステップS401において、PC110のCPU111(例えばフロー作成部320)は、ステップS104の入力において選択された、既に処理フローとして登録されているモジュールを特定する処理を行う。   In the process of step S111 in FIG. 6, first, in step S401 of FIG. 11, the CPU 111 (for example, the flow creation unit 320) of the PC 110 identifies a module that has been selected as an input in step S104 and has already been registered as a process flow. Perform the process.

続いて、ステップS402において、PC110のCPU111(例えばフロー作成部320)は、処理フロー描画領域702に描画(表示)されている処理フローについて、ステップS401で特定したモジュールを、ステップS104でドロップされたモジュールの間へ移動し、処理フロー描画領域702を再描画(再表示)する処理を行う。   Subsequently, in step S402, the CPU 111 of the PC 110 (for example, the flow creation unit 320) drops the module identified in step S401 for the processing flow drawn (displayed) in the processing flow drawing area 702 in step S104. A process for moving between modules and redrawing (redisplaying) the processing flow drawing area 702 is performed.

この際、PC110のCPU111(例えばフロー作成部320)は、ステップS401で特定したモジュールの移動処理に伴って、処理フロー・入出力パラメータテーブル312の変更処理も行う。ここでは、具体例を示さないが、まず、ステップS402で再描画された処理フロー描画領域702の処理フローにおけるモジュールの順序に従って、処理フロー・入出力パラメータテーブル312の順序502(更にはフロー登録名504)を変更する。次に、ステップS402で再描画された処理フロー描画領域702の処理フローにおけるモジュールの順序に従って、当該順序の変更に伴うモジュールの入力パラメータ505及び出力パラメータ506を変更する。例えば、移動対象のモジュールの入力パラメータ505には、1つ前の順序のモジュールにおける出力パラメータ506の画像バッファの情報を格納する。この際、移動対象のモジュールの出力パラメータ506は変更しないようにすることもできる。ただし、1つ後の順序のモジュールにおける入力パラメータ505は、移動対象のモジュールの出力パラメータ506の画像バッファの情報を格納する。   At this time, the CPU 111 (for example, the flow creation unit 320) of the PC 110 also performs processing for changing the processing flow / input / output parameter table 312 in accordance with the movement processing of the module identified in step S401. Here, a specific example is not shown, but first, in accordance with the order of modules in the processing flow of the processing flow drawing area 702 redrawn in step S402, the order 502 of the processing flow / input / output parameter table 312 (and the flow registration name). 504) is changed. Next, in accordance with the order of modules in the processing flow of the processing flow drawing area 702 redrawn in step S402, the input parameters 505 and output parameters 506 of the modules associated with the change in the order are changed. For example, the input parameter 505 of the module to be moved stores the image buffer information of the output parameter 506 in the immediately preceding module. At this time, the output parameter 506 of the module to be moved may not be changed. However, the input parameter 505 in the next-order module stores image buffer information of the output parameter 506 of the module to be moved.

続いて、ステップS403において、PC110のCPU111(例えばソースコード変換部330)は、処理フロー・入出力パラメータテーブル312において、順序502が変更されたモジュール以降のモジュールについて、モジュール・ソースコードマスタテーブル311を用いてソースコードに変換し、変換により得られたソースコードをソースコードテーブル313に記憶して更新する。この際、PC110のCPU111(例えばソースコード変換部330)は、ソースコードテーブル313において、順序の変更が行われたモジュールに対応するソースコードをいったん消去し、再度、ソースコードへの変
換を行ってソースコードテーブル313を更新する。
Subsequently, in step S <b> 403, the CPU 111 of the PC 110 (for example, the source code conversion unit 330) stores the module / source code master table 311 for modules after the module whose order 502 has been changed in the processing flow / input / output parameter table 312. The source code is converted into a source code, and the source code obtained by the conversion is stored in the source code table 313 and updated. At this time, the CPU 111 of the PC 110 (for example, the source code conversion unit 330) once deletes the source code corresponding to the module whose order has been changed in the source code table 313, and performs conversion to the source code again. The source code table 313 is updated.

その後、PC110のCPU111(例えばコンパイル部340)は、ソースコードテーブル313に記憶されているソースコードから実行可能なオブジェクトコードを生成し、生成したオブジェクトコードをオブジェクトコードテーブル314に記憶する。この際、PC110のCPU111(例えばコンパイル部340)は、ソースコードテーブル313のソースコードをデバッグ・コンパイルして、デバッグ版のオブジェクトコードとしてオブジェクトコードテーブル314に記憶して更新する。 Thereafter, the CPU 111 (for example, the compiling unit 340) of the PC 110 generates an executable object code from the source code stored in the source code table 313, and stores the generated object code in the object code table 314. At this time, the CPU 111 (for example, the compiling unit 340) of the PC 110 debugs and compiles the source code of the source code table 313, and stores and updates the source code in the object code table 314 as a debug version of the object code.

続いて、ステップS404において、PC110のCPU111(例えば(検証)実行部350)は、必要に応じて、処理フロー・入出力パラメータテーブル312の入力パラメータ505として示されている画像バッファに格納されている画像データを用いて、ステップS403で生成されたオブジェクトコードを実行する処理を行う。   Subsequently, in step S404, the CPU 111 of the PC 110 (for example, the (verification) execution unit 350) is stored in the image buffer indicated as the input parameter 505 of the processing flow / input / output parameter table 312 as necessary. Using the image data, processing for executing the object code generated in step S403 is performed.

続いて、ステップS405において、PC110のCPU111(例えば(検証)実行部350)は、処理フロー・入出力パラメータテーブル312の出力パラメータ506における画像バッファのアドレスに格納されている結果画像データに基づく結果画像を結果画像表示領域703に描画(表示)する。本例では、結果画像表示領域703には、例えば、その左側から順番に、処理フロー描画領域702に設定された処理フローの順序に応じて、その処理結果画像が表示されることになる。   Subsequently, in step S405, the CPU 111 of the PC 110 (for example, the (verification) execution unit 350) results image based on the result image data stored at the address of the image buffer in the output parameter 506 of the processing flow / input / output parameter table 312. Is drawn (displayed) in the result image display area 703. In this example, in the result image display area 703, for example, the processing result images are displayed in order from the left side according to the order of the processing flows set in the processing flow drawing area 702.

ステップS405の処理が終了した場合には、操作入力装置120から「移動処理」の終了が指示されたときは図11のフローチャートの処理を終了し、また、操作入力装置120から「移動処理」の継続が指示されたときはステップS401に戻って、ステップS401以降の処理を再度行うことになる。以上のようにして、図6のステップS111におけるモジュールの「移動処理」が行われる。   When the process of step S405 is completed, when the operation input device 120 instructs to end the “movement process”, the process of the flowchart of FIG. 11 is ended, and the operation input device 120 performs the “movement process”. When continuation is instructed, the process returns to step S401, and the processes after step S401 are performed again. As described above, the “move process” of the module in step S111 in FIG. 6 is performed.

次に、図6のステップS113の詳細な処理について説明する。   Next, detailed processing in step S113 in FIG. 6 will be described.

図12は、図6のステップS113におけるモジュールの「挿入処理」の詳細な処理手順の一例を示すフローチャートである。ここでは、図8に示す処理により処理フロー描画領域702に登録された処理フロー(「カメラ取込」→「二値化」→「粒子解析」)に対して、「粒子解析」のモジュールに前に、「モフォロジ」のモジュールを追加する「挿入処理」について説明する。即ち、ここでは、図7に示す処理フロー描画領域702のように、「カメラ取込」→「二値化」→「モフォロジ」→「粒子解析」とする例について説明する。   FIG. 12 is a flowchart showing an example of a detailed processing procedure of the “insertion processing” of the module in step S113 of FIG. Here, the processing flow (“camera capture” → “binarization” → “particle analysis”) registered in the processing flow drawing area 702 by the processing shown in FIG. Next, “insertion processing” for adding a “morphology” module will be described. That is, here, an example of “camera capture” → “binarization” → “morphology” → “particle analysis” as in the processing flow drawing area 702 shown in FIG. 7 will be described.

図6のステップS113の処理では、まず、図12のステップS501において、PC110のCPU111(例えばフロー作成部320)は、ステップS104の入力においてドロップされた、新規にモジュールを挿入する挿入先を特定する処理を行う。ここで、本例では、「二値化」と「粒子解析」との間が挿入先として特定される。   In the process of step S113 in FIG. 6, first, in step S501 of FIG. 12, the CPU 111 of the PC 110 (for example, the flow creation unit 320) specifies the insertion destination into which a new module is to be inserted dropped in the input of step S104. Process. Here, in this example, between “binarization” and “particle analysis” is specified as the insertion destination.

続いて、ステップS502において、PC110のCPU111(例えばフロー作成部320)は、ステップS104の入力において選択されたモジュールを特定する処理を行う。ここで、本例では、「モフォロジ」のモジュールが特定される。なお、本実施形態においては、ステップS501の挿入先の特定処理とステップS502のモジュールの特定処理との処理の順番を、逆にする形態であってもよい。   Subsequently, in step S502, the CPU 111 (for example, the flow creation unit 320) of the PC 110 performs processing for specifying the module selected in the input in step S104. Here, in this example, a “morphology” module is specified. In the present embodiment, the processing order of the insertion destination specifying process in step S501 and the module specifying process in step S502 may be reversed.

続いて、ステップS503において、PC110のCPU111(例えばフロー作成部320)は、CRT130に、ステップS502で特定されたモジュールのパラメータ編集画面704を表示する処理を行う。そして、PC110のCPU111(例えばフロー作成部320)は、パラメータ編集画面704に関して、操作入力装置120による編集を受け付ける。なお、本例では、図7に示す画像処理プログラム開発画面700には、「モフォロジ」のモジュールに係るパラメータ編集画面704が表示されることになる。   Subsequently, in step S503, the CPU 111 (for example, the flow creation unit 320) of the PC 110 performs processing for displaying the parameter editing screen 704 of the module specified in step S502 on the CRT 130. Then, the CPU 111 of the PC 110 (for example, the flow creation unit 320) accepts editing by the operation input device 120 regarding the parameter editing screen 704. In this example, a parameter editing screen 704 related to the “morphology” module is displayed on the image processing program development screen 700 shown in FIG.

続いて、ステップS504において、PC110のCPU111(例えばフロー作成部320)は、操作入力装置120からの入力指示に基づいて、パラメータ編集画面704で編集されたパラメータを登録するか否かを判断する。このステップS504における具体的な判断方法については、図8のステップS203と同様の方法を用いる。   Subsequently, in step S504, the CPU 111 of the PC 110 (for example, the flow creation unit 320) determines whether or not to register the parameter edited on the parameter editing screen 704 based on the input instruction from the operation input device 120. As a specific determination method in step S504, the same method as in step S203 of FIG. 8 is used.

ステップS504の判断の結果、パラメータ編集画面704で編集されたパラメータを登録する場合には(ステップS504/YES)、ステップS505に進む。 As a result of the determination in step S504, when the parameter edited on the parameter editing screen 704 is registered (step S504 / YES), the process proceeds to step S505.

ステップS505に進むと、PC110のCPU111(例えばフロー作成部320)は、ステップS502及びS503の処理で得られた情報を、処理フロー・入出力パラメータテーブル312に1レコードとして追加する処理を行うとともに、ステップS501で特定された挿入先の情報に基づいて、処理フロー・入出力パラメータテーブル312の情報を変更して更新する。   In step S505, the CPU 111 of the PC 110 (for example, the flow creation unit 320) performs processing for adding the information obtained in the processing in steps S502 and S503 as one record to the processing flow / input / output parameter table 312. Based on the insertion destination information specified in step S501, information in the processing flow / input / output parameter table 312 is changed and updated.

本例では、まず、図5に示すように、処理フロー・入出力パラメータテーブル312のインデックス(Index)501の「4」に、挿入対象のモジュールである「モフォロジ」のモジュールの情報を追加する。具体的に、モジュール503として「モフォロジ」が設定され、順序502として「3」が設定され、フロー登録名504として「U00003」が設定され、さらに、入力パラメータ505の画像バッファの情報(アドレス等)として前ステップ(「二値化」)の出力パラメータ506に示す画像バッファBの情報(アドレス等)が設定され、出力パラメータ506の画像バッファの情報(アドレス等)として画像バッファCの情報(アドレス等)が設定される。この際、処理フロー・入出力パラメータテーブル312にインデックス(Index)501が「3」として登録されている「粒子解析」のモジュールの情報については、順序502が「3」から「4」に変更され、例えば、入力パラメータ505の画像バッファの情報(アドレス等)として画像バッファCが設定され、出力パラメータ506の画像バッファの情報(アドレス等)として画像バッファDが設定される。   In this example, first, as shown in FIG. 5, information on the module of “morphology” that is the module to be inserted is added to “4” of the index (Index) 501 of the processing flow / input / output parameter table 312. Specifically, “morphology” is set as the module 503, “3” is set as the order 502, “U00003” is set as the flow registration name 504, and image buffer information (address, etc.) of the input parameter 505 The information (address etc.) of the image buffer B shown in the output parameter 506 of the previous step (“binarization”) is set as the information (address etc.) of the image buffer C as the image buffer information (address etc.) of the output parameter 506. ) Is set. At this time, the order 502 is changed from “3” to “4” for the information of the “particle analysis” module whose index (Index) 501 is registered as “3” in the processing flow / input / output parameter table 312. For example, the image buffer C is set as image buffer information (address or the like) of the input parameter 505, and the image buffer D is set as image buffer information (address or the like) of the output parameter 506.

続いて、ステップS506において、PC110のCPU111(例えばフロー作成部320)は、処理フロー描画領域702において、ステップS501で特定した挿入先に、ステップS502で特定したモジュールを追加して描画(表示)する。なお、本実施形態においては、ステップS505の処理フロー・入出力パラメータテーブル312に関する処理とステップS506の処理フロー描画領域702の描画処理との処理の順番を、逆にする形態であってもよい。   Subsequently, in step S506, the CPU 111 of the PC 110 (for example, the flow creation unit 320) draws (displays) the processing flow drawing area 702 by adding the module specified in step S502 to the insertion destination specified in step S501. . In the present embodiment, the order of the process of the process flow / input / output parameter table 312 in step S505 and the process of drawing in the process flow drawing area 702 in step S506 may be reversed.

続いて、ステップS507において、PC110のCPU111(例えばソースコード変換部330)は、処理フロー・入出力パラメータテーブル312において、順序502が変更されたモジュール以降(即ち、ステップS506で挿入されたモジュール以降)のモジュールについて、モジュール・ソースコードマスタテーブル311を用いてソースコードに変換し、変換により得られたソースコードをソースコードテーブル313に記憶して更新する。   Subsequently, in step S507, the CPU 111 (for example, the source code conversion unit 330) of the PC 110 starts with the module whose order 502 is changed in the processing flow / input / output parameter table 312 (that is, after the module inserted in step S506). The module is converted into source code using the module / source code master table 311, and the source code obtained by the conversion is stored in the source code table 313 and updated.

その後、PC110のCPU111(例えばコンパイル部340)は、ソースコードテーブル313に記憶されているソースコードから実行可能なオブジェクトコードを生成し、生成したオブジェクトコードをオブジェクトコードテーブル314に記憶する。この際、PC110のCPU111(例えばコンパイル部340)は、ソースコードテーブル313のソースコードをデバッグ・コンパイルして、デバッグ版のオブジェクトコードとしてオブジェクトコードテーブル314に記憶して更新する。   Thereafter, the CPU 111 (for example, the compiling unit 340) of the PC 110 generates an executable object code from the source code stored in the source code table 313, and stores the generated object code in the object code table 314. At this time, the CPU 111 (for example, the compiling unit 340) of the PC 110 debugs and compiles the source code of the source code table 313, and stores and updates the source code in the object code table 314 as a debug version of the object code.

続いて、ステップS508において、PC110のCPU111(例えば(検証)実行部350)は、必要に応じて、処理フロー・入出力パラメータテーブル312の入力パラメータ505として示されている画像バッファに格納されている画像データを用いて、ステップS403で生成されたオブジェクトコードを実行する処理を行う。具体的に、例えば、今回の処理で挿入された「モフォロジ」のモジュールについては、1つ前の処理のモジュール(本例では「二値化」のモジュール)の結果画像データ(画像バッファBに格納されている結果画像データ)を用いて、ステップS507で生成されたオブジェクトコードを実行することになる。本例の場合、モフォロジ処理がなされた画像データが処理結果画像として取得され、例えば、フロー作成部320は、当該処理結果画像を格納するバッファの情報及びその際の粒子数(ここでは、例えば粒子数=46)の情報を処理フロー・入出力パラメータテーブル312の出力パラメータ506に設定することになる。   Subsequently, in step S508, the CPU 111 of the PC 110 (for example, the (verification) execution unit 350) is stored in the image buffer shown as the input parameter 505 of the processing flow / input / output parameter table 312 as necessary. Using the image data, processing for executing the object code generated in step S403 is performed. Specifically, for example, for the “morphology” module inserted in the current process, the result image data (stored in the image buffer B) of the previous process module (in this example, the “binarization” module) The object code generated in step S507 is executed using the result image data). In the case of this example, image data that has undergone morphology processing is acquired as a processing result image. For example, the flow creation unit 320 includes information on a buffer that stores the processing result image and the number of particles at that time (here, for example, particle Number = 46) is set in the output parameter 506 of the processing flow / input / output parameter table 312.

続いて、ステップS509において、PC110のCPU111(例えば(検証)実行部350)は、処理フロー・入出力パラメータテーブル312の出力パラメータ506における画像バッファのアドレスに格納されている結果画像データに基づく結果画像を結果画像表示領域703に描画(表示)する。本例では、結果画像表示領域703には、例えば、その左側から順番に、処理フロー描画領域702に設定された処理フローの順序(即ち、「カメラ取込」→「二値化」→「モフォロジ」→「粒子解析」のモジュールの順序)に応じて、その処理結果画像が表示されることになる。以上のようにして、図6のステップS113におけるモジュールの「挿入処理」が行われる。   Subsequently, in step S509, the CPU 111 of the PC 110 (for example, the (verification) execution unit 350) results image based on the result image data stored at the address of the image buffer in the output parameter 506 of the processing flow / input / output parameter table 312. Is drawn (displayed) in the result image display area 703. In this example, in the result image display area 703, for example, in order from the left side, the order of the processing flows set in the processing flow drawing area 702 (ie, “camera capture” → “binarization” → “morphology”). "→" Particle analysis "module order), the processing result image is displayed. As described above, the “insertion process” of the module in step S113 in FIG. 6 is performed.

次に、図6のステップS115の詳細な処理について説明する。   Next, detailed processing in step S115 in FIG. 6 will be described.

図13は、図6のステップS115における処理フローの「全体実行処理」の詳細な処理手順の一例を示すフローチャートである。   FIG. 13 is a flowchart showing an example of a detailed processing procedure of “overall execution processing” in the processing flow in step S115 of FIG.

図6のステップS115の処理では、まず、図13のステップS601において、PC110のCPU111(例えばソースコード変換部330)は、処理フロー・入出力パラメータテーブル312に設定されている一連の処理フローに係るモジュールをソースコードに変換し、変換により得られたソースコードをソースコードテーブル313に記憶する。その後、PC110のCPU111(例えばコンパイル部340)は、ソースコードテーブル313に記憶されているソースコードから実行可能なオブジェクトコードを生成し、生成したオブジェクトコードをオブジェクトコードテーブル314に記憶する。この際、PC110のCPU111(例えばコンパイル部340)は、ソースコードテーブル313のソースコードをリリース・コンパイルして、リリース版のオブジェクトコードとしてオブジェクトコードテーブル314に記憶する。   In step S115 of FIG. 6, first, in step S601 of FIG. 13, the CPU 111 of the PC 110 (for example, the source code conversion unit 330) relates to a series of processing flows set in the processing flow / input / output parameter table 312. The module is converted into source code, and the source code obtained by the conversion is stored in the source code table 313. Thereafter, the CPU 111 (for example, the compiling unit 340) of the PC 110 generates an executable object code from the source code stored in the source code table 313, and stores the generated object code in the object code table 314. At this time, the CPU 111 (for example, the compiling unit 340) of the PC 110 releases and compiles the source code of the source code table 313 and stores it in the object code table 314 as a release version of the object code.

続いて、ステップS602において、PC110のCPU111(例えば(検証)実行部350)は、処理フロー・入出力パラメータテーブル312の入力パラメータ505として記憶されている結果画像バッファに格納されている画像データを用いて、ステップS601で生成されたオブジェクトコードを実行する処理を行う。これにより、画像処理等が施された複数の画像データが処理結果画像として取得され、例えば、フロー作成部320は、当該処理結果画像を格納するバッファの情報及びその際の数値の情報を処理フロー・入出力パラメータテーブル312の出力パラメータ506に設定する。   In step S602, the CPU 111 of the PC 110 (for example, the (verification) execution unit 350) uses the image data stored in the result image buffer stored as the input parameter 505 of the processing flow / input / output parameter table 312. Thus, processing for executing the object code generated in step S601 is performed. As a result, a plurality of image data that has undergone image processing or the like is acquired as a processing result image. For example, the flow creation unit 320 processes information about a buffer that stores the processing result image and information about numerical values at that time. Set to the output parameter 506 of the input / output parameter table 312.

続いて、ステップS603において、PC110のCPU111(例えば(検証)実行部350)は、処理フロー描画領域702に設定された処理フローの順序に応じて、各種の結果画像を結果画像表示領域703に描画(表示)する。   Subsequently, in step S <b> 603, the CPU 111 of the PC 110 (for example, the (verification) execution unit 350) draws various result images in the result image display area 703 in accordance with the order of the process flows set in the process flow drawing area 702. (indicate.

ステップS603の処理が終了すると、図13のフローチャートの処理を終了する。   When the process of step S603 ends, the process of the flowchart of FIG. 13 ends.

以上のようにして、図6のステップS115における処理フローの「全体実行処理」が行われる。   As described above, the “overall execution process” of the process flow in step S115 of FIG. 6 is performed.

以上説明したように、本実施形態に係る画像処理システム100のPC110(情報処理装置)では、以下に示す処理を行うようにしている。   As described above, the PC 110 (information processing apparatus) of the image processing system 100 according to the present embodiment performs the following processing.

具体的に、PC110では、画像の処理に関する処理を示すモジュールと、各モジュールに対応するソースコードとが関連付けられているモジュール・ソースコードマスタテーブル311(図4)と、モジュールを複数組み合わせた処理フローの各モジュールと、当該各モジュールの実行の順序を示す情報、当該各モジュールの処理に係る入力情報及び出力情報とを含む処理フロー・入出力情報テーブル(図5の処理フロー・入出力パラメータテーブル312)を外部メモリ116(或いはRAM112)に記憶するようにしている(記憶ステップ)。   Specifically, in the PC 110, a module / source code master table 311 (FIG. 4) in which a module indicating processing related to image processing and a source code corresponding to each module are associated with each other, and a processing flow in which a plurality of modules are combined. 5, a processing flow / input / output information table (processing flow / input / output parameter table 312 in FIG. 5) including information indicating the execution order of the modules, input information and output information related to processing of the modules. ) Is stored in the external memory 116 (or RAM 112) (storage step).

そして、処理フローに対してモジュールに関する変更の指示がされた際に(例えば図6のS104/YES)、当該変更の指示に応じて、処理フロー・入出力パラメータテーブル312の情報を変更するようにしている(例えば、図8のS204、図11のS402、図12のS505等:変更ステップ)。   When an instruction to change the module is given to the processing flow (for example, S104 / YES in FIG. 6), the information in the processing flow / input / output parameter table 312 is changed according to the instruction to change. (For example, S204 in FIG. 8, S402 in FIG. 11, S505 in FIG. 12, etc .: change step).

そして、変更ステップにより変更された処理フロー・入出力パラメータテーブル312の情報及びモジュール・ソースコードマスタテーブル311の情報を用いて、モジュールごとにソースコードを生成するようにしている(例えば、図8のS206、図9のS304、図11のS403、図12のS507等:ソースコード生成ステップ)。その後、ソースコード生成ステップにより生成されたソースコードに基づいてオブジェクトコードを生成するようにしている(オブジェクトコード生成ステップ)。   Then, the source code is generated for each module using the information in the processing flow / input / output parameter table 312 and the information in the module / source code master table 311 changed in the changing step (for example, FIG. 8). S206, S304 in FIG. 9, S403 in FIG. 11, S507 in FIG. 12, etc .: source code generation step). Thereafter, an object code is generated based on the source code generated in the source code generation step (object code generation step).

そして、生成されたオブジェクトコードを用いて、変更ステップにより変更された処理フロー・入出力パラメータテーブル312のモジュールごとに処理を実行するようにしている(例えば、図8のS207、図9のS305、図11のS404、図12のS508等:処理実行ステップ)。その後、処理実行ステップによる処理の実行により得られたモジュールごとの結果画像を表示装置であるCRT130の結果画像表示領域703に表示するようにしている(例えば、図8のS208、図9のS306、図11のS405、図12のS509等:結果画像表示ステップ)。   Then, using the generated object code, processing is executed for each module of the processing flow / input / output parameter table 312 changed in the changing step (for example, S207 in FIG. 8, S305 in FIG. 9, S404 in FIG. 11, S508 in FIG. 12, etc .: processing execution step). Thereafter, the result image for each module obtained by executing the process in the process execution step is displayed in the result image display area 703 of the CRT 130 as the display device (for example, S208 in FIG. 8, S306 in FIG. 9, (S405 in FIG. 11, S509 in FIG. 12, etc .: result image display step).

かかる構成によれば、モジュールを複数組み合わせた処理フローの各モジュールごとに、その処理の結果画像を表示装置に表示するようにしたので、モジュールに関する変更の指示がされた際においても、変更対象のモジュールを特定することができ、画像処理に係るロジック(即ち、画像処理に係る処理フロー)の開発の負荷を軽減することができる。これにより、効率のよい画像処理のロジック(処理フロー)を構築することが可能となる。   According to such a configuration, for each module in the processing flow in which a plurality of modules are combined, the processing result image is displayed on the display device. Therefore, even when an instruction to change the module is given, Modules can be specified, and the development load of logic related to image processing (that is, processing flow related to image processing) can be reduced. This makes it possible to construct an efficient image processing logic (processing flow).

さらに、PC110では、処理フロー・入出力パラメータテーブル312に設定されている処理フローをCRT130の処理フロー描画領域702に表示し(処理フロー表示ステップ)、さらに、変更ステップにより変更された処理フロー・入出力パラメータテーブル312の処理フローをCRT130の処理フロー描画領域702に変更表示するようにしている(例えば、図8のS205、図11のS402、図12のS506等:処理フロー変更表示ステップ)。   Furthermore, the PC 110 displays the processing flow set in the processing flow / input / output parameter table 312 in the processing flow drawing area 702 of the CRT 130 (processing flow display step), and further, the processing flow / input changed by the changing step. The processing flow of the output parameter table 312 is changed and displayed in the processing flow drawing area 702 of the CRT 130 (for example, S205 in FIG. 8, S402 in FIG. 11, S506 in FIG. 12, etc .: processing flow change display step).

さらに、PC110では、処理フロー描画領域702の処理フローに対してモジュールに関する変更の指示がされた際に、当該モジュールのパラメータを編集するためのパラメータ編集画面704をCRT130に更に表示し(例えば、図8のS202、図9のS302、図12のS503等:パラメータ編集画面表示ステップ)、前記ソースコード生成ステップでは、更に、パラメータ編集画面704により編集された当該モジュールのパラメータを用いて、ソースコードを生成するようにしている。   Furthermore, when an instruction to change a module is given to the processing flow in the processing flow drawing area 702, the PC 110 further displays a parameter editing screen 704 for editing parameters of the module on the CRT 130 (for example, FIG. S202 of FIG. 8, S302 of FIG. 9, S503 of FIG. 12, etc .: parameter edit screen display step), and in the source code generation step, the source code is further generated using the parameters of the module edited on the parameter edit screen 704. It is trying to generate.

次に、反復処理、条件分岐処理、並列分岐処理をはじめとする分岐処理モジュールを含む処理フローを登録し、また、その後の処理を行う例について説明する。   Next, an example will be described in which a processing flow including a branch processing module including repetitive processing, conditional branch processing, and parallel branch processing is registered and the subsequent processing is performed.

具体的には、「二値化」処理をし、「モフォロジ」処理を3 回行い、その後、「位置決め」処理を実施し、位置決めのマッチング個数「条件分岐」処理を行う。「条件分岐」処理内では、条件を満たす場合(YES)は、「回転補正」処理を、条件を満たさない場合(NO)は、「ミラー」処理を行う。続いて、「メディアン」処理を行い、その後「コード認識」処理と「欠陥検査」処理を並列して行い、最後に「IO
出力」処理を行う例を使い説明する。
Specifically, the “binarization” process is performed, the “morphology” process is performed three times, the “positioning” process is performed, and the matching number of matching “conditional branch” process is performed. Within the “conditional branch” process, if the condition is satisfied (YES), the “rotation correction” process is performed, and if the condition is not satisfied (NO), the “mirror” process is performed. Subsequently, “median” processing is performed, and then “code recognition” processing and “defect inspection” processing are performed in parallel.
An example of performing the “output” process will be described.

図14は、本発明の実施形態を示し、画像処理プログラム開発画面1400の一例を示す模式図である。この画像処理プログラム開発画面1400は、例えばGUIで構成されている。   FIG. 14 is a schematic diagram illustrating an example of the image processing program development screen 1400 according to the embodiment of this invention. The image processing program development screen 1400 is composed of, for example, a GUI.

図14に示す画像処理プログラム開発画面1400には、利用可能な処理ユニット(即ち、「二値化」等の画像処理に係る各モジュール)を表示するツールボックス1404と、画像処理の実行順序(即ち、各モジュールの実行順序)をフローチャートで描画する処理フロー描画領域1401と、各画像処理(即ち、各モジュールの処理)で実行した結果画像を表示する結果画像表示領域1402と、メニューバー(不図示)及びツールバー1407と、画像処理プログラムの開発を終了する際に操作される閉じるボタン1408等が設けられている。また、図14に示す画像処理プログラム開発画面1400には、例えば、新規モジュールの登録時もしくはパラメータの編集時等に、処理フロー描画領域1401のフローチャートの各ステップ(即ち、各モジュール)で利用するパラメータを設定するパラメータ編集画面(不図示)と、そのパラメータの設定で実行された結果画像を表示する結果画像1403が表示される。   An image processing program development screen 1400 shown in FIG. 14 includes a tool box 1404 that displays available processing units (that is, modules related to image processing such as “binarization”) and an execution order of image processing (that is, , A processing flow drawing area 1401 for drawing the execution order of each module in a flowchart, a result image display area 1402 for displaying a result image executed in each image processing (that is, processing of each module), and a menu bar (not shown). ) And a toolbar 1407, a close button 1408 operated when finishing the development of the image processing program, and the like. Further, the image processing program development screen 1400 shown in FIG. 14 includes parameters used in each step (that is, each module) of the flowchart of the processing flow drawing area 1401 when, for example, a new module is registered or a parameter is edited. A parameter editing screen (not shown) for setting, and a result image 1403 for displaying a result image executed by setting the parameter are displayed.

なお、ツールボックス1404に「条件分岐処理」「反復処理」「並列分岐処理」など、分岐処理によるフローを制御するモジュールも含んでいる。これらを使った処理フローの例が、1410aの「反復処理」、1411aの「条件分岐処理」、1412aの「並列分岐処理」である。ここで、結果画像表示領域1402は、フロー描画領域1401の各モジュールの結果画像である。これは、プレビュー画像や縮小画像であってもよい。たとえば、反復処理であれば、1410bのように表示し、反復処理を行った際の最終の結果画像を表示する。条件分岐処理であれば、1411bのように条件を満たしたノード(枝)の画像を表示し、条件を満たさないノードについては処理が行われないのでブラックアウトした画像を表示する。また、並列分岐処理であれば、1412bのように表示し、すべてのノードの結果画像を表示する。このとき、すべての処理フローの結果が結果画像表示領域1402に収まらない場合は、水平・垂直方向のスクロールバーを用いて表示領域を変更することとしてもよい。   The tool box 1404 includes modules for controlling the flow by branch processing such as “conditional branch processing”, “iterative processing”, and “parallel branch processing”. Examples of the processing flow using these are “iteration processing” 1410a, “conditional branch processing” 1411a, and “parallel branch processing” 1412a. Here, the result image display area 1402 is a result image of each module in the flow drawing area 1401. This may be a preview image or a reduced image. For example, if it is an iterative process, it is displayed as 1410b, and the final result image when the iterative process is performed is displayed. If it is a conditional branch process, an image of a node (branch) that satisfies the condition is displayed as in 1411b, and a blackout image is displayed because no process is performed for a node that does not satisfy the condition. If it is a parallel branch process, it is displayed as 1412b, and the result images of all nodes are displayed. At this time, if the result of all the processing flows does not fit in the result image display area 1402, the display area may be changed using horizontal and vertical scroll bars.

次に、分岐処理モジュールを含む場合の処理フロー・入出力パラメータテーブル312について図18を用いて説明する。   Next, the processing flow / input / output parameter table 312 when a branch processing module is included will be described with reference to FIG.

図18は、「分岐処理」モジュールを含む場合の図3に示す処理フロー・入出力パラメータテーブル312の一例を示す模式図T1800である。   FIG. 18 is a schematic diagram T1800 showing an example of the processing flow / input / output parameter table 312 shown in FIG. 3 when the “branch processing” module is included.

処理フロー・入出力パラメータテーブルT1800は、図18に示すように、インデックス(Index)1801ごとに、画像処理に係るモジュール1803と、各モジュール1803の順序1802と、各モジュール1803のフロー登録名1804と、各モジュール1803における入力パラメータ1805及び出力パラメータ1806が関連付けられている。入力パラメータ1805は、各モジュールで使用する画像バッファや処理領域等を示す。出力パラメータ1806は、各モジュールが実行された際の結果画像バッファや閾値等を示す。次ステップ1807は、次に処理されるべきステップのインデックス(Index)1801を示す。なお、この項目は、複数のインデックス(Index)を持つこともある。また、分岐参照1808は、モジュール1803に「反復処理」モジュール、「条件分岐処理」モジュールを指定した際に、各条件(ノード)が次にどのステップを処理するかを指定する条件式テーブルを示す。   As shown in FIG. 18, the processing flow / input / output parameter table T1800 includes, for each index 1801, a module 1803 related to image processing, an order 1802 of each module 1803, and a flow registration name 1804 of each module 1803. The input parameter 1805 and the output parameter 1806 in each module 1803 are associated with each other. An input parameter 1805 indicates an image buffer, a processing area, and the like used in each module. An output parameter 1806 indicates a result image buffer, a threshold value, and the like when each module is executed. A next step 1807 indicates an index 1801 of a step to be processed next. Note that this item may have a plurality of indexes. A branch reference 1808 indicates a conditional expression table that specifies which step (condition) (node) is to be processed next when the “iterative processing” module and the “conditional branch processing” module are specified as the module 1803. .

なお、処理フロー・入出力パラメータテーブルT1800において、インデックス(Index)1801の2および3は反復処理、インデックス(Index)1801の5から7は条件分岐処理、インデックス(Index)1801の9および10は並列分岐処理の一例である。   In the processing flow / input / output parameter table T1800, indexes 2 and 3 of index 1801 are iterative processing, 5 to 7 of index 1801, conditional branch processing, and 9 and 10 of index 1801 are parallel. It is an example of a branch process.

「分岐処理」における詳細な処理条件などを登録する条件式テーブルT1900について図19を用いて説明する。   A conditional expression table T1900 for registering detailed processing conditions in “branch processing” will be described with reference to FIG.

図19は条件式テーブルT1900の一例であり、インデックス(Index)1901、条件式1904、閾値1(1905)及び閾値2(1906)、次ステップ1907を登録する。なお、この条件式テーブルT1900は、「分岐処理」モジュール1つに対してテーブルを1つ作成する。   FIG. 19 shows an example of the conditional expression table T1900. An index 1901, a conditional expression 1904, a threshold 1 (1905) and a threshold 2 (1906), and the next step 1907 are registered. The conditional expression table T1900 creates one table for one “branch processing” module.

特徴量1903は、結果を比較する際に用いる特徴量、例えば、マッチングの検出個数や粒子解析の粒子数などを登録する。また条件式列1904には、Greater
/ GreaterOrEqual /Equal
/ LessOrEqual / Less / InRange / OutRangeなどが、閾値1列1905及び閾値2列1906には、特徴量と比較する値を登録する。次ステップ列1907には、条件ごとに次に行うステップ(処理フロー・入出力パラメータテーブルのインデックス(Index)1801)を設定する。複数の条件がある場合には、条件式テーブルT1900の行数を追加して対応する。次に、「分岐処理」モジュールを含む場合のPC110による制御方法の処理手順について説明する。
The feature quantity 1903 registers the feature quantity used when comparing the results, for example, the number of detected matching and the number of particles in particle analysis. The conditional expression column 1904 includes Greator.
/ GreaterOrEqual / Equal
/ LessOrEqual / Less / InRange / OutRange and the like, the threshold 1 column 1905 and the threshold 2 column 1906 register values to be compared with the feature amount. In the next step column 1907, the next step (processing flow / input / output parameter table index (Index) 1801) is set for each condition. When there are a plurality of conditions, the number of rows in the conditional expression table T1900 is added to cope with it. Next, the processing procedure of the control method by the PC 110 when the “branch processing” module is included will be described.

まず、「二値化」と「モフォロジ」のモジュールについて、図8で説明した手順に従い新規追加処理するが、詳細の説明は重複するので省略する。続いて、「モフォロジ」処理を3
回実施する「反復処理」モジュールを、処理フローとして図8の手順に従い、新規追加登録する処理を説明する。ステップS201では、選択されたモジュールを特定する。
First, the “binarization” and “morphology” modules are newly added in accordance with the procedure described with reference to FIG. Next, "Morphology" process 3
The process of newly adding and registering the “repetitive processing” module to be performed once according to the procedure of FIG. In step S201, the selected module is specified.

ステップS210では、ステップS201で特定されたモジュールが「反復処理」と判断した場合、ステップS211に進み、分岐処理モジュールの登録処理を行う。この分岐処理モジュールの登録処理について図16を用いて説明する。図16は、分岐処理モジュールを含む場合の図1に示すPC110のCPU111による制御方法の処理手順の一例を示すフローチャートである。   In step S210, if the module identified in step S201 is determined to be “repetitive processing”, the process proceeds to step S211 to perform branch processing module registration processing. The branch processing module registration processing will be described with reference to FIG. FIG. 16 is a flowchart illustrating an example of a processing procedure of a control method performed by the CPU 111 of the PC 110 illustrated in FIG. 1 when the branch processing module is included.

ステップS801では、処理フロー・入出力パラメータテーブルT1800のインデックス(Index)1801の1および2、さらに、登録対象のモジュールに対して出力パラメータ1806を元に、選択可能な特徴量を特定する。すなわち、この場合は、反復処理の「カウンタ」のみであるため、「カウンタ」を選択可能な特徴量としてRAM112に記憶する。   In step S801, selectable feature quantities are specified based on 1 and 2 of the index 1801 of the processing flow / input / output parameter table T1800 and the output parameter 1806 for the registration target module. That is, in this case, since only the “counter” of the iterative process is used, the “counter” is stored in the RAM 112 as a selectable feature amount.

ステップS802では、条件式入力画面を表示する。図15は、条件式入力画面1500の一例であり、特徴量を指定する特徴量リストボックス1501や、判断するための条件を設定するための条件式1502および閾値入力ボックス1503を有する。特徴量リストボックス1501はこの後の判断処理に対してとり得る特徴量を選択可能にリスト表示している。   In step S802, a conditional expression input screen is displayed. FIG. 15 shows an example of a conditional expression input screen 1500, which includes a feature quantity list box 1501 for designating feature quantities, a conditional expression 1502 for setting conditions for determination, and a threshold value input box 1503. A feature quantity list box 1501 displays a list of feature quantities that can be selected for subsequent determination processing.

このとき、RAM112に選択可能な特徴量として「カウンタ」が記憶されているので、図15の特徴量リスト1501には、「カウンタ」−「カウント数」のみを表示するものでもよい。また、条件式1502においても、設定可能な項目のみを表示するものでもよい。   At this time, since “counter” is stored as a selectable feature amount in the RAM 112, only “counter” − “count number” may be displayed in the feature amount list 1501 in FIG. Also in the conditional expression 1502, only items that can be set may be displayed.

ステップS803では、条件式入力画面1500の所定の項目に対して、入力装置120から値が入力されたか否かを判断する。ステップS803で、入力装置120から入力がない(ステップS803/NO)の場合、入力待ちとする。一方、ステップS803において、入力装置120から入力があった(ステップS803/YES)場合、ステップS804へ進む。本例では、特徴量を「カウンタ数」、条件式を「<」、下限値を「3」として入力されたものとして説明する。   In step S <b> 803, it is determined whether or not a value has been input from the input device 120 for a predetermined item on the conditional expression input screen 1500. In step S803, when there is no input from the input device 120 (step S803 / NO), it waits for input. On the other hand, if there is an input from the input device 120 in step S803 (step S803 / YES), the process proceeds to step S804. In this example, it is assumed that the feature quantity is “number of counters”, the conditional expression is “<”, and the lower limit value is “3”.

ステップS804では、PC110のCPU111は、ステップS803で入力された値が妥当か否かの判断をする。   In step S804, the CPU 111 of the PC 110 determines whether or not the value input in step S803 is valid.

ここで判断する項目としては、モジュールごとにあらかじめ設定された条件式入力画面1500の下限値1503、および上限値1504に入力された数値や文字列である。たとえば、上で説明している反復処理の場合、比較する特徴量はカウンターカウント数で数値となり、「0」や「負」の値が入力されると、入力された値が正しくないと判定する。また、二値化処理の閾値と比較する場合は、処理バッファの最大輝度値、つまり8ビットであれば数値で255、を超える値が入力されると正しくない値と判定する。   Items to be determined here are numerical values and character strings input to the lower limit value 1503 and the upper limit value 1504 of the conditional expression input screen 1500 set in advance for each module. For example, in the case of the iterative process described above, the feature quantity to be compared is a numerical value in terms of the counter count, and if a value of “0” or “negative” is input, it is determined that the input value is not correct. . Further, when comparing with the threshold value of the binarization processing, if a value exceeding the maximum luminance value of the processing buffer, that is, a numerical value of 255 if 8 bits is input, it is determined as an incorrect value.

ステップS805では、ステップS804で特定した値が正しいか否かを判定する。ステップS805にて判定した結果、値が正しくないと判断した(ステップS805/NO)場合は、入力装置120からの入力待ちとする。一方、値が正しいと判断した(ステップS805/YES)場合、ステップS806に進む。   In step S805, it is determined whether the value specified in step S804 is correct. As a result of the determination in step S805, when it is determined that the value is not correct (step S805 / NO), the process waits for input from the input device 120. On the other hand, if it is determined that the value is correct (step S805 / YES), the process proceeds to step S806.

ステップS806では、PC110のCPU111(例えばフロー作成部320)は、操作入力装置120からの入力指示に基づいて、条件式入力画面1500で編集されたパラメータを登録するか否かを判断する。具体的に、ここでは、図15に示す条件式入力画面1500の設定ボタン1505が選択された際に当該条件式入力画面1500で編集されたパラメータを登録すると判断し、また、図15に示す条件式入力画面1500のキャンセルボタン1506等が選択された際に当該条件式入力画面1500で編集されたパラメータを登録しないと判断する。ここでステップS806/YESはステップS203/YESに対応し、ステップS806/NOはS203/NOに対応する。つまり、ステップS806/YES の場合は、ステップS807へ進み、S806/NOの場合は、反復処理モジュールを登録せずに終了する。   In step S806, the CPU 111 of the PC 110 (for example, the flow creation unit 320) determines whether or not to register the parameter edited on the conditional expression input screen 1500 based on the input instruction from the operation input device 120. Specifically, here, when the setting button 1505 on the conditional expression input screen 1500 shown in FIG. 15 is selected, it is determined that the parameter edited on the conditional expression input screen 1500 is registered, and the condition shown in FIG. When the cancel button 1506 or the like on the expression input screen 1500 is selected, it is determined that the parameter edited on the conditional expression input screen 1500 is not registered. Here, step S806 / YES corresponds to step S203 / YES, and step S806 / NO corresponds to S203 / NO. That is, in the case of step S806 / YES, the process proceeds to step S807, and in the case of S806 / NO, the process is terminated without registering the iterative processing module.

ステップS807では、PC110のCPU111はRAM112上に条件式テーブルT1900を、新規に作成する。   In step S807, the CPU 111 of the PC 110 newly creates a conditional expression table T1900 on the RAM 112.

ステップS808では、ステップS807で作成した条件式テーブルT1900に、レコードを追加する。このとき、まず、インデックス(Index)1901を「1」として1 コード追加し、条件を満たす場合の設定値を書き込む。つまり、特徴量1903に、反復処理のカウント数
である「U00003−Count」、条件式1904に「Less」、閾値1の1905には「3」を登録する。なお、条件式1904で「Less」、が設定されているので閾値2の1906には、「NULL」を設定する。次ステップ1907には、反復処理を行う最初の処理モジュールを指定することになり、ここでは、「U00002」の「モフォロジ」モジュールを示す、処理フロー・入出力パラメータテーブルT1800のインデックス(Index)1801である「3」を登録する。さらに、条件式テーブルT1900のインデックス(Index)1901を「2」として、1レコード追加し、特徴量1903に「U00003-Count」、条件式1904「Else」とする。次ステップには、反復処理を終えて次に実行するステップを設定することになるが、現段階ではまだ次にステップが登録されていないため、次ステップ1907は一時的に「NULL」とする。
In step S808, a record is added to the conditional expression table T1900 created in step S807. At this time, first, an index 1901 is set to “1”, one code is added, and a setting value when the condition is satisfied is written. That is, “U00003-Count” that is the count number of the iterative process is registered in the feature quantity 1903, “Less” in the conditional expression 1904, and “3” in the threshold 1905 are registered. Since “Less” is set in the conditional expression 1904, “NULL” is set in 1906 of the threshold value 2. In the next step 1907, the first processing module to perform the iterative processing is designated. Here, an index (Index) 1801 of the processing flow / input / output parameter table T1800 indicating the “morphology” module of “U00002” is designated. A certain “3” is registered. Further, the index (Index) 1901 of the conditional expression table T1900 is set to “2”, and one record is added, and “U00003-Count” and the conditional expression 1904 “Else” are added to the feature quantity 1903. In the next step, the step to be executed next after finishing the iterative process is set. However, since the next step is not yet registered at this stage, the next step 1907 is temporarily set to “NULL”.

図8の説明に戻る。S212では、処理フロー・入出力パラメータテーブルT1800の更新も行うが、インデックス(Index)1801が「3」の行の次ステップ805に条件式テーブルT1900の次ステップ1906の値「2」を、また参照する条件式テーブルであるT1900を分岐参照1808に登録する。   Returning to the description of FIG. In S212, the processing flow / input / output parameter table T1800 is also updated, but the value “2” of the next step 1906 of the conditional expression table T1900 is also referred to in the next step 805 of the row where the index 1801 is “3”. T1900, which is the conditional expression table to be registered, is registered in the branch reference 1808.

ステップS213では、処理フロー描画領域1401へ反復処理モジュールを描画し、「反復処理」モジュールの登録処理が一旦終了することになる。なお、ここでは、反復処理を行う最初の処理モジュールである「モフォロジ」モジュールの入力側に矢印を指すことになる。次に、「反復処理」モジュールの後に「位置決め」モジュールを処理フローとして図8の手順に従い、新規追加登録する処理を説明する。ここで、ステップS201からステップS203は同様の処理である。   In step S213, the iterative process module is rendered in the process flow rendering area 1401, and the registration process of the “repetitive process” module is temporarily terminated. Here, an arrow is pointed to the input side of the “morphology” module, which is the first processing module that performs the iterative processing. Next, a process of newly adding and registering the “positioning” module after the “repetitive processing” module according to the procedure shown in FIG. 8 will be described. Here, steps S201 to S203 are the same processing.

ステップS204では、反復処理モジュールに続くモジュールの登録に該当するので、条件式テーブルT1900のインデックス(Index)1901が「2」の次ステップ1907に、処理フロー・入出力パラメータテーブルT1800において「位置決め」処理を表すインデックス(Index)1801の「4」を登録する。あわせて、処理フロー・入出力パラメータテーブルT1800のインデックス(Index)1801が「3」の次ステップ1807に「4」を登録する。しかし、インデックス(Index)1801が「3」の次ステップ1807には、すでに「2」が登録されているので、カンマ「,」等を用いて接続し、登録することとする。つまり、インデックス(Index)1801が「3」の次ステップ1807には、「2,4」と登録する。   In step S204, this corresponds to the registration of the module following the iterative processing module. Therefore, the index (Index) 1901 of the conditional expression table T1900 is “2”, the next step 1907 is followed by the “positioning” process in the processing flow / input / output parameter table T1800. "4" of the index (Index) 1801 representing is registered. In addition, “4” is registered in the next step 1807 in which the index 1801 of the processing flow / input / output parameter table T1800 is “3”. However, since “2” has already been registered in the next step 1807 in which the index 1801 is “3”, connection is made using a comma “,” or the like. That is, “2, 4” is registered in the next step 1807 where the index 1801 is “3”.

ステップS205以降の処理は図8の先の説明と同様であるが、ステップS206のソース変換の処理は「反復処理」及び「位置決め」のモジュールについてモジュール・ソースコードマスタテーブル311を用いてソースコードに変換し、変換により得られたソースコードをソースコードテーブル313に記憶して更新する。また、ソースコードテーブル313のソースコードをデバッグ・コンパイルして、これをオブジェクトコードテーブル314に記憶して更新する。   The processing after step S205 is the same as that described above with reference to FIG. 8, but the source conversion processing in step S206 is performed on the source code using the module / source code master table 311 for the modules of “iterative processing” and “positioning”. The source code obtained by the conversion is stored in the source code table 313 and updated. Also, the source code of the source code table 313 is debugged and compiled, and this is stored in the object code table 314 and updated.

なお、結果画像表示領域1402に表示される結果画像は、反復処理の最終の結果画像を表示する。また結果画像表示領域1402において、反復処理モジュールをダブルクリック、もしくはコンテキストメニューを選択されると、反復処理経過画像ウィンドウを表示する。図20で反復処理経過画像ウィンドウの一例を示す。本ウィンドウの一番左の画像が、反復処理の全ての回数の処理結果をRAM112に記憶したうえで、最初(1
回目)の結果画像を表し、右に移るに従い、反復処理の回数をインクリメントした結果画像となる。また、パラメータ変更処理がなされると、変更処理前の反復処理結果をRAM112に記憶したまま、新たに、全ての回数の処理結果をRAM112に記憶する。そのうえで、上段にパラメータ変更前、下段にパラメータ変更後の画像を表示する。なお本ウィンドウは、スクロールバーの移動指示を受け付け、表示する画像を切り替えるようにしてもよい。以上で、「反復処理」モジュールの登録およびプログラムの作成が終了することになる。
Note that the result image displayed in the result image display area 1402 displays the final result image of the iterative process. In the result image display area 1402, when a repetitive processing module is double-clicked or a context menu is selected, a repetitive processing progress image window is displayed. FIG. 20 shows an example of the iterative process progress image window. The leftmost image in this window stores the processing results of all the iterations in the RAM 112, and then the first (1
(Second) result image, and the result image is obtained by incrementing the number of iterations as it moves to the right. Further, when the parameter changing process is performed, the processing results of all times are newly stored in the RAM 112 while the repetitive processing results before the changing process are stored in the RAM 112. After that, the image before the parameter change is displayed in the upper row, and the image after the parameter change is displayed in the lower row. Note that this window may receive an instruction to move the scroll bar and switch the displayed image. This completes registration of the “iteration process” module and creation of the program.

次に、「条件分岐処理」モジュールを含む場合のPC110による制御方法の処理手順について説明する。具体的には、先の位置決め処理で行われた結果を用いて、条件を満たす場合(YES)は、「回転補正」処理を、条件を満たさない場合(NO)は、「ミラー」処理を行う場合を例にして説明する。ステップS201では、選択されたモジュールを特定する。   Next, the processing procedure of the control method by the PC 110 when the “conditional branch processing” module is included will be described. Specifically, using the result of the previous positioning process, if the condition is satisfied (YES), the “rotation correction” process is performed. If the condition is not satisfied (NO), the “mirror” process is performed. A case will be described as an example. In step S201, the selected module is specified.

ステップS210では、ステップS201で特定されたモジュールが「条件分岐処理」と判断し、ステップS211にて「条件分岐処理」モジュールの登録処理を行う。この「条件分岐処理」モジュールの登録処理について図16を用いて説明するが、「反復処理」モジュールの登録処理と重複する説明は省略する。なお、「条件分岐処理」で使用する条件式テーブルについては、図19のT1910で一例を示す。   In step S210, the module identified in step S201 is determined to be “conditional branch processing”, and in step S211, “conditional branch processing” module registration processing is performed. The registration processing of the “conditional branch processing” module will be described with reference to FIG. 16, but description overlapping with the registration processing of the “repetition processing” module will be omitted. An example of the conditional expression table used in the “conditional branch process” is shown at T1910 in FIG.

ステップS801では、処理フロー・入出力パラメータテーブルT1800の出力パラメータ1806を元に、現在のステップまでで選択可能な特徴量を特定する。ここでは、PC110のCPU111は、出力パラメータ1806を参照するが、本例では、選択できる特徴量としては、二値化の閾値「U00001−Thresh」,反復処理の回「U00003−Count」、位置決めの個数「U00004−Num」である。   In step S801, feature quantities that can be selected up to the current step are specified based on the output parameter 1806 of the processing flow / input / output parameter table T1800. Here, the CPU 111 of the PC 110 refers to the output parameter 1806. In this example, the selectable feature amount includes a binarization threshold “U00001-Thresh”, an iterative process time “U00003-Count”, and positioning parameters. The number is “U00004-Num”.

ステップS802では、ステップS801で特定した特徴量をもとに条件式入力画面1500を表示し、入力を受け付ける。ここでは、特徴量1913を前ステップの位置決めの個数「U00004−Num」、条件式1914を「==」、閾値1の1914を「1」の入力があったものとする。   In step S802, the conditional expression input screen 1500 is displayed based on the feature amount specified in step S801, and input is accepted. Here, it is assumed that the feature quantity 1913 is input as the number of positionings “U00004-Num” in the previous step, the conditional expression 1914 is “==”, and the threshold value 1 1914 is “1”.

ステップS803からステップS805は先の説明と同様である。   Steps S803 to S805 are the same as described above.

ステップS806では、PC110のCPU111(例えばフロー作成部320)は、操作入力装置120からの入力指示に基づいて、条件式入力画面1500で編集されたパラメータを登録するか否かを判断する。具体的に、ここでは、図15に示す条件式入力画面1500の設定ボタン1505が選択された際に当該条件式入力画面1500で編集されたパラメータを登録すると判断し(ステップS806/YES)次のステップに進む。一方、キャンセルボタン1506が選択された際には、当該条件式入力画面1500で編集されたパラメータを登録しないと判断し(ステップS806/NO)、終了する。   In step S806, the CPU 111 of the PC 110 (for example, the flow creation unit 320) determines whether or not to register the parameter edited on the conditional expression input screen 1500 based on the input instruction from the operation input device 120. Specifically, here, when the setting button 1505 on the conditional expression input screen 1500 shown in FIG. 15 is selected, it is determined that the parameter edited on the conditional expression input screen 1500 is registered (step S806 / YES) Proceed to step. On the other hand, when the cancel button 1506 is selected, it is determined that the parameter edited on the conditional expression input screen 1500 is not registered (step S806 / NO), and the process ends.

ステップS807では、PC110のCPU111は、RAM112上に条件式テーブルT1910を、新規に作成する。   In step S807, the CPU 111 of the PC 110 newly creates a conditional expression table T1910 on the RAM 112.

ステップS808では、ステップS807で作成した条件式テーブルT1910に、レコードを追加する。このとき、まず、インデックス(Index)1911を「1」として1 コード追加し、条件を満たす場合の設定値を書き込む。特徴量1913に、位置決め処理の個数である「U00004−Num」を、条件式1914に「Equal」、閾値1の1915には「1」を登録する。なお、条件式1914で「Less」が設定されているので閾値2の1916には、「NULL」を設定する。次ステップ1917には、「条件分岐処理」を行った際の分岐先の処理モジュールを指定することになるが、ここではまだ次ステップが登録されていないため、一時的に「NULL」とする。   In step S808, a record is added to the conditional expression table T1910 created in step S807. At this time, first, an index (Index) 1911 is set to “1”, one code is added, and a set value when the condition is satisfied is written. In the feature amount 1913, “U00004-Num” that is the number of positioning processes is registered, “Equal” is registered in the conditional expression 1914, and “1” is registered in the threshold value 1915. Since “Less” is set in the conditional expression 1914, “NULL” is set in the threshold 2 1916. In the next step 1917, the processing module of the branch destination when the “conditional branch processing” is performed is designated, but since the next step is not yet registered, it is temporarily set to “NULL”.

さらに、条件式テーブルT1910にインデックス(Index)1901を「2」として、1 レコード追加し、特徴量1913に「U00004−Num」、条件式1914を「Else」とする。同様に次ステップには、「条件分岐処理」を終えて次に実行するステップを設定することになるが、現段階ではまだ次にステップが登録されていないため、次ステップ1917は一時的に「NULL」とする。   Furthermore, an index 1901 is set to “2” in the conditional expression table T1910, and one record is added, “U00004-Num” is set as the feature quantity 1913, and the conditional expression 1914 is set to “Else”. Similarly, in the next step, the step to be executed next after the “conditional branch process” is set, but since the next step has not yet been registered at this stage, the next step 1917 is temporarily set to “ "NULL".

図8の説明に戻る。ステップS212では、処理フロー・入出力パラメータテーブルT1800の更新も行うが、インデックス(Index)1801が「4」の行に参照する条件式テーブルT1910を分岐参照1808に登録する。本モジュールでは、画像に対して処理を行わないので、入力パラメータ1805と出力パラメータ1806の画像バッファを同じポインタを指定する。   Returning to the description of FIG. In step S212, the processing flow / input / output parameter table T1800 is also updated, but the conditional expression table T1910 that refers to the row having the index (Index) 1801 of “4” is registered in the branch reference 1808. Since this module does not perform processing on the image, the same pointer is designated for the image buffer of the input parameter 1805 and the output parameter 1806.

ステップS213では、処理フロー描画領域1401へ条件分岐モジュールを描画し、「条件分岐処理」モジュールの登録が一旦終了することになる。   In step S213, the conditional branch module is drawn in the processing flow drawing area 1401, and the registration of the “conditional branch processing” module is temporarily ended.

次に、「条件分岐」モジュールの後に、条件分岐内のノードの処理を追加登録する処理を 説明する。ここでは、位置決めの個数が「1」の場合には回転補正、「1」以外の場合にはミラー変換を行うものとし、「回転補正」処理のモジュールと「ミラー変換」処理のモジュールをそれぞれのノードに追加登録する処理について説明する。なお、ステップS201からステップS204は同様の処理であるので説明は省略する。   Next, a process for additionally registering the process of the node in the conditional branch after the “conditional branch” module will be described. Here, when the number of positioning is “1”, rotation correction is performed, and when it is not “1”, mirror conversion is performed, and the “rotation correction” processing module and the “mirror conversion” processing module are respectively set. A process of additionally registering to a node will be described. Steps S201 to S204 are the same processing, and thus description thereof is omitted.

ステップS204では、条件分岐モジュールに続くモジュールの登録に該当するので、条件式テーブルT1910で条件を満たす場合の次ステップ、つまりインデックス(Index)1911が「1」の次ステップ1917には、「6」を登録する。一方、条件を満たさない場合、つまりインデックス(Index)1911が「2」の次ステップ1917には「7」を登録する。あわせて、処理フロー・入出力パラメータテーブルT1800のインデックス(Index)1801が「5」の次ステップ1807には、「6,7」が登録されることになる。   In step S204, since it corresponds to the registration of the module following the conditional branch module, the next step when the condition is satisfied in the conditional expression table T1910, that is, the next step 1917 in which the index 1911 is “1” is “6”. Register. On the other hand, if the condition is not satisfied, that is, “7” is registered in the next step 1917 in which the index 1911 is “2”. In addition, “6, 7” is registered in the next step 1807 in which the index (Index) 1801 of the processing flow / input / output parameter table T1800 is “5”.

なお、ここで、処理フロー・入出力パラメータテーブルT1800においては、インデックス(Index)1801の「6」の「回転補正」、および「7」の「ミラー変換」の入力パラメータ1805の画像バッファは、インデックス(Index)1801の「5」の「条件分岐処理」の出力パラメータ1806の画像バッファのポインタを使用することになる。つまり「条件分岐処理」の前ステップであるインデックス(Index)1801の「4」の位置決めの出力画像1807を使用することになる。   Here, in the processing flow / input / output parameter table T1800, the image buffer of the input parameter 1805 of “6” “rotation correction” of the index (Index) 1801 and “mirror conversion” of “7” is the index. The pointer of the image buffer of the output parameter 1806 of “conditional branch processing” of “Index” 1801 is used. That is, the positioning output image 1807 of the index (Index) 1801 which is the previous step of the “conditional branch process” is used.

ステップS205以降の処理は図8の先の説明と同様である。が、ステップS206のソース変換の処理は「条件分岐処理」、「回転処理」、「ミラー処理」のモジュールについてモジュール・ソースコードマスタテーブル311を用いてソースコードに変換し、変換により得られたソースコードをソースコードテーブル313に記憶して更新する。また、ソースコードテーブル313のソースコードをデバッグ・コンパイルして、これをオブジェクトコードテーブル314に記憶して更新する。以上で、「条件分岐処理」モジュールの登録およびプログラムの作成が終了することになる。   The processing after step S205 is the same as that described above with reference to FIG. However, in the source conversion process in step S206, the “conditional branch process”, “rotation process”, and “mirror process” modules are converted into source code using the module / source code master table 311 and the source obtained by the conversion is converted. The code is stored in the source code table 313 and updated. Also, the source code of the source code table 313 is debugged and compiled, and this is stored in the object code table 314 and updated. This completes registration of the “conditional branch processing” module and creation of the program.

次に、「並列分岐処理」を含む場合のPC110による制御方法の処理手順について説明する。具体的には、「メディアン」処理に続いて、「コード認識」処理と「欠陥検査」処理を並列して行い、最後に「IO 出力」処理を行う例を使い説明する。まず、「メディアン」のモジュールの登録について図8で説明した手順に従い新規追加処理するが、詳細の説明は重複するので省略する。引き続き、「並列分岐処理」のモジュールの登録について図8で説明した手順に従い新規追加処理する。   Next, the processing procedure of the control method by the PC 110 when “parallel branch processing” is included will be described. Specifically, following the “median” process, the “code recognition” process and the “defect inspection” process are performed in parallel, and finally the “IO output” process is performed. First, the registration of the “median” module is newly added according to the procedure described with reference to FIG. 8, but a detailed description thereof is omitted because it is duplicated. Subsequently, new addition processing is performed according to the procedure described in FIG.

ステップS201では、選択されたモジュールを特定する。   In step S201, the selected module is specified.

ステップS210では、ステップS201で特定されたモジュールが並列分岐と判断し、ステップS202のパラメータ編集画面表示へと進む。   In step S210, it is determined that the module specified in step S201 is a parallel branch, and the process proceeds to the parameter editing screen display in step S202.

ステップS202では並列分岐処理のためのパラメータ編集画面を開く。図23にパラメータ編集画面の一例であり、分岐設定2301で並列して処理を行うノード(枝)数を指定する並列分岐ウィンドウ2300を示す。ここでは、「2」を入力する。   In step S202, a parameter editing screen for parallel branch processing is opened. FIG. 23 shows an example of a parameter editing screen, and shows a parallel branch window 2300 for designating the number of nodes (branches) to be processed in parallel with the branch setting 2301. Here, “2” is input.

ステップS203において、PC110のCPU111(例えばフロー作成部320)は、操作入力装置120からの入力指示に基づいて、並列分岐ウィンドウ2300で編集されたパラメータを登録するか否かを判断する。具体的に、ここでは、図23に示す並列分岐ウィンドウ2300の設定ボタン2302が選択された際に当該並列分岐ウィンドウ2300で編集されたパラメータを登録すると判断し、また、図23に示す並列分岐ウィンドウ2300のキャンセルボタン2303等が選択された際に当該並列分岐ウィンドウ2300で編集されたパラメータを登録しないと判断する。   In step S203, the CPU 111 of the PC 110 (for example, the flow creation unit 320) determines whether or not to register the parameter edited in the parallel branch window 2300 based on an input instruction from the operation input device 120. Specifically, here, when the setting button 2302 of the parallel branch window 2300 shown in FIG. 23 is selected, it is determined that the parameter edited in the parallel branch window 2300 is registered, and the parallel branch window shown in FIG. When the cancel button 2303 or the like of 2300 is selected, it is determined that the parameter edited in the parallel branch window 2300 is not registered.

ステップS204では、並列分岐ウィンドウ2300で指定した分岐の数だけ、処理フロー・入出力パラメータテーブルT1800にレコードを追加する。ここでは、ノード数は2であるので、インデックス(Index)1801に、「9」と「10」を追加し、それぞれの次ステップ1806は「NULL」を設定する。   In step S204, records are added to the processing flow / input / output parameter table T1800 by the number of branches specified in the parallel branch window 2300. Here, since the number of nodes is 2, “9” and “10” are added to the index 1801, and “NULL” is set in each next step 1806.

ステップS205では、処理フロー描画領域702に並列分岐モジュールを描画するが、ここではまだ各ノード(枝)内に処理を含んでいない接続線のみを描画する。なお、このとき、ステップS204で処理フロー・入出力パラメータテーブルT1800に追加したインデックス(Index)の小さい数字を、分岐モジュールの左に割り当て、インデックス(Index)が大きくなるに従い、右のノード(枝)を示すものとする。ステップS214では、ステップS201で特定されたモジュールが並列分岐と判断しているので、処理を抜ける。   In step S205, the parallel branch module is drawn in the processing flow drawing area 702. Here, only the connection lines that do not include processing in each node (branch) are drawn. At this time, a smaller number of the index (Index) added to the processing flow / input / output parameter table T1800 in step S204 is assigned to the left of the branch module, and the right node (branch) increases as the index (Index) increases. It shall be shown. In step S214, since the module specified in step S201 is determined to be a parallel branch, the process is exited.

次に、「並列分岐処理」モジュールの後に、並列処理の各ノードの処理を追加登録する処理を説明する。ここでは、例として「コード認識」と「欠陥検査」のモジュールを追加登録する処理について説明する。なお、ステップS201からステップS203は同様の処理であるので説明は省略する。   Next, a process of additionally registering the process of each node of the parallel process after the “parallel branch process” module will be described. Here, as an example, a process for additionally registering modules of “code recognition” and “defect inspection” will be described. Steps S201 to S203 are the same processing, and thus the description thereof is omitted.

ステップS204では、処理フロー・入出力パラメータテーブルT1800のインデックス(Index)1801が「9」にコード認識を、インデックス(Index)1801が「10」に欠陥検査を登録されるものとする。このとき、各ノードで使用される画像は前ステップのメディアン処理後の画像、つまり処理フロー・入出力パラメータテーブルT1800のインデックス(Index)1801が「8」の出力パラメータ1806で指定されている画像バッファとなり、インデックス(Index)1801が「9」および「10」の入力パラメータ1805の画像バッファに指定する。この時点では、次ステップが登録されていないため、次ステップ1807には「NULL」を設定する。また、分岐参照も使用しないため、「NULL」と設定する。さらに、前ステップのインデックス(Index)1801が「8」の次ステップ1807には、分岐先が2つとなり、「9,10」と設定されることになる。   In step S204, the code recognition is registered in the index (Index) 1801 of the processing flow / input / output parameter table T1800 as “9”, and the defect inspection is registered as “10” in the index (Index) 1801. At this time, the image used in each node is the image after the median processing in the previous step, that is, the image buffer designated by the output parameter 1806 in which the index (Index) 1801 of the processing flow / input / output parameter table T1800 is “8”. Thus, the index (Index) 1801 is designated as the image buffer of the input parameter 1805 of “9” and “10”. At this point, since the next step is not registered, “NULL” is set in the next step 1807. In addition, since the branch reference is not used, “NULL” is set. Further, in the next step 1807 where the index (Index) 1801 of the previous step is “8”, there are two branch destinations and “9, 10” is set.

ステップS205以降の処理は図8の先の説明と同様である。が、ステップS206のソース変換の処理は「並列分岐処理」、「コード認識」と「欠陥検査」のモジュールについてモジュール・ソースコードマスタテーブル311を用いてソースコードに変換し、変換により得られたソースコードをソースコードテーブル313に記憶して更新する。また、ソースコードテーブル313のソースコードをデバッグ・コンパイルして、これをオブジェクトコードテーブル314に記憶して更新する。図21に並列処理を実行する際の、処理手順の詳細について説明する。ここで、ステップS1402a及びステップS1402bは、並列分岐処理1412aで示すように「コード認識」処理と「欠陥検査」処理を示す。   The processing after step S205 is the same as that described above with reference to FIG. However, the source conversion processing in step S206 is performed by converting the modules of “parallel branch processing”, “code recognition”, and “defect inspection” into source code using the module / source code master table 311 and the source obtained by the conversion. The code is stored in the source code table 313 and updated. Also, the source code of the source code table 313 is debugged and compiled, and this is stored in the object code table 314 and updated. FIG. 21 illustrates the details of the processing procedure when executing parallel processing. Here, step S1402a and step S1402b indicate a “code recognition” process and a “defect inspection” process as indicated by the parallel branch process 1412a.

ステップS1401では、前ステップの結果を各ノードの次ステップへ割り振るための前処理やノード処理フラグテーブルの作成などを行う。図22は、ノード処理フラグテーブルT2200の一例である。   In step S1401, preprocessing for allocating the result of the previous step to the next step of each node, creation of a node processing flag table, and the like are performed. FIG. 22 is an example of the node processing flag table T2200.

ノード処理フラグテーブルT2200をRAM112上に新規に作成する。あわせて並列で処理するノード数のコードを追加する。その後、各インデックス(Index)1801のノード名に「NODEx」、終了フラグに「0」を登録する。また、処理フロー・入出力パラメータテーブルT1800のインデックス(Index)1801が「9」および「10」の分岐参照1808には、ノード処理フラグテーブルT2200を指定する。なお、終了フラグに登録する値の一例として、完了を「1」とし、未完了を「0」とする。図22にノード処理フラグの一例を示す。   A node processing flag table T2200 is newly created on the RAM 112. Add code for the number of nodes to be processed in parallel. After that, “NODEx” is registered in the node name of each index 1801, and “0” is registered in the end flag. In addition, the node processing flag table T2200 is designated as the branch reference 1808 whose index (Index) 1801 of the processing flow / input / output parameter table T1800 is “9” and “10”. As an example of a value registered in the end flag, completion is set to “1” and incomplete is set to “0”. FIG. 22 shows an example of the node processing flag.

ステップS1402aでは、処理フロー・入出力パラメータテーブルにインデックス(Index)が「9」として登録されている処理モジュール(コード認識処理)を実行する。
続いて、ステップS1403aでは、PC110のCPU111は、RAM112上のノード処理フラグテーブルT2200の終了フラグを「1」と設定する。
In step S1402a, a processing module (code recognition processing) in which an index (Index) is registered as “9” in the processing flow / input / output parameter table is executed.
Subsequently, in step S1403a, the CPU 111 of the PC 110 sets the end flag of the node processing flag table T2200 on the RAM 112 to “1”.

同様に、ステップS1402aが開始されると同時に、ノード(枝)2において、ステップS1402b(欠陥検査処理)からS1403bの処理を順次実行し、ノード処理フラグテーブルT2200に終了フラグを更新する。ノード(枝)が3つ以上となる場合も、同様の手順で処理を行う。   Similarly, at the same time when step S1402a is started, the processing from step S1402b (defect inspection processing) to S1403b is sequentially executed at the node (branch) 2, and the end flag is updated in the node processing flag table T2200. When there are three or more nodes (branches), the same procedure is performed.

次に、ステップS1404では、PC110のCPU111は、ノード処理フラグテーブルT2200の終了フラグを調べ、すべてのノードの処理が完了しているかの判定処理を行う。   Next, in step S1404, the CPU 111 of the PC 110 checks the end flag in the node processing flag table T2200, and performs a determination process to determine whether all the nodes have been processed.

ステップS1404の判断の結果、ステップS1405で判定した処理内容が、「完了」である場合には(ステップS1405/YES)、並列分岐処理を終了し、処理フローのステップに戻る。一方、「完了」でない場合には(ステップS1405/NO)、ステップS1404に戻り、実行中のすべてのノードが完了するのを待機する。つまりこの処理により各ノードの処理を同期することになり、その後の処理タイミングを揃えることが可能となる。最後に、ステップS107の手順に従い、「I/O
出力」処理のモジュールを追加登録する。
As a result of the determination in step S1404, when the processing content determined in step S1405 is “complete” (step S1405 / YES), the parallel branch processing is terminated and the processing flow is returned to the step. On the other hand, if it is not “complete” (step S1405 / NO), the process returns to step S1404 and waits for completion of all the nodes being executed. That is, the processing of each node is synchronized by this processing, and the subsequent processing timing can be made uniform. Finally, according to the procedure of step S107, “I / O
Register additional modules for "output" processing.

ここで、並列分岐処理の次のステップを登録したので、ステップS204において、条件式テーブルT1900のインデックス(Index)1901が「9」および「10」の次ステップ1907に、処理フロー・入出力パラメータテーブルT1800において「I/O
出力」処理を表すインデックス(Index)1901の「11」を登録する。
Here, since the next step of the parallel branch processing is registered, in step S204, the processing flow / input / output parameter table is added to the next step 1907 in which the index (Index) 1901 of the conditional expression table T1900 is “9” and “10”. In T1800, “I / O
“11” of an index 1901 indicating “output” processing is registered.

本ステップが、処理フローの最終ステップとなるため、処理フロー・入出力パラメータテーブルT1800のインデックス(Index)1801が「11」の次ステップ1807は「NULL」となる。なお、次ステップ1807が「NULL」となるステップが最終ステップとなる。   Since this step is the final step of the processing flow, the next step 1807 in which the index (Index) 1801 of the processing flow / input / output parameter table T1800 is “11” is “NULL”. The step in which the next step 1807 is “NULL” is the final step.

図17に、すべてのモジュールにおいて、パラメータを変更した際に、前回のパラメータでの処理結果画像と今回の処理結果画像の画像比較ウィンドウを示す。結果画像表示領域の各モジュールの結果画像をダブルクリック、もしくはコンテキストメニューを選択することで、画像比較ウィンドウを表示する。   FIG. 17 shows an image comparison window of the processing result image with the previous parameter and the current processing result image when the parameter is changed in all modules. An image comparison window is displayed by double-clicking the result image of each module in the result image display area or selecting a context menu.

たとえば、図17では、ステップS109の手順に従い、処理フロー中の「二値化」処理モジュールのパラメータ(閾値)を「128」から「64」に変更した場合の一例を示す。   For example, FIG. 17 shows an example in which the parameter (threshold value) of the “binarization” processing module in the processing flow is changed from “128” to “64” in accordance with the procedure of step S109.

前回結果画像5001は、前回のパラメータ(閾値=182)の処理結果画像を表わし、今回結果画像5002は今回の設定パラメータ(閾値=64)での処理結果画像を表わす。なお、結果画像はRAM112、もしくは外部メモリ116のどちらかに保持しておくものとする。   The previous result image 5001 represents the processing result image of the previous parameter (threshold = 182), and the current result image 5002 represents the processing result image of the current set parameter (threshold = 64). It is assumed that the result image is held in either the RAM 112 or the external memory 116.

以上説明では新規追加処理を例に説明をしたが、モジュールの移動処理や挿入処理、及び、パラメータの変更処理等についても、以上説明および図9等を用いて説明したときと重複するため説明は省略する。   In the above description, the new addition process has been described as an example. However, the module movement process, the insertion process, the parameter change process, and the like also overlap with those described with reference to FIG. Omitted.

<第2の実施例>
以下、本願発明の第2の実施例の説明をする。この実施例では、前処理のうち、一部又は全部の処理を図2の画像入力コントローラが備えるCPU(近傍演算処理チップやFPGAなどのハードウェアを含む)に行わせることにより、すなわち、一連の前処理を情報処理装置のCPUと画像入力装置のCPUとに処理分担をさせることで、処理の高速化を図るためのプログラムを作成するためのフローチャートの作成処理について説明する。
<Second embodiment>
The second embodiment of the present invention will be described below. In this embodiment, a part or all of the pre-processing is performed by a CPU (including hardware such as a proximity processing chip and FPGA) included in the image input controller of FIG. A process for creating a flowchart for creating a program for speeding up the processing by causing the CPU of the information processing apparatus and the CPU of the image input apparatus to share the preprocessing will be described.

図24は、第2の実施例におけるモジュールの新規追加処理の詳細な手順の一例を示すフローチャートである。尚、第1の実施例におけるモジュールの新規追加処理(図8)と同様の処理を行うステップには、図8と同じステップ番号を付与し、処理の詳細な説明は割愛する。   FIG. 24 is a flowchart illustrating an example of a detailed procedure of module new addition processing according to the second embodiment. Note that the same step numbers as those in FIG. 8 are assigned to steps for performing the same processing as the module new addition processing (FIG. 8) in the first embodiment, and detailed description of the processing is omitted.

図24のステップS202において表示されるパラメータ表示画面には、前処理を行う処理主体が、プログラムを実行する情報処理装置のCPUであるかそれとも画像入力コントローラのCPUであるかを指定するために用いられる入力フィールド(処理主体入力フィールド)が設けられており、この処理主体入力フィールドに設定された入力内容に従い、CPU111は処理主体がCPUであるか、それとも画像入力コントローラであるかを判定する(ステップS2401)。   The parameter display screen displayed in step S202 of FIG. 24 is used to specify whether the processing subject that performs the preprocessing is the CPU of the information processing apparatus that executes the program or the CPU of the image input controller. Input field (processing subject input field) is provided, and the CPU 111 determines whether the processing subject is a CPU or an image input controller in accordance with the input content set in the processing subject input field (step) S2401).

ステップS2401でCPU111がYESと判定した(情報処理装置のCPUにより処理する)場合には、処理フロー・入出力パラメータテーブル(図25)の当該処理を示すレコードの処理主体フィールドに「0」を設定する。一方、NOと判定した(画像入力装置のCPUにより処理する)場合には、「1」を設定する。その他の処理ステップについては図8と同様であるので詳細な説明は割愛する。   If the CPU 111 determines YES in step S2401 (processing is performed by the CPU of the information processing apparatus), “0” is set in the processing subject field of the record indicating the processing in the processing flow / input / output parameter table (FIG. 25). To do. On the other hand, if it is determined NO (processing by the CPU of the image input device), “1” is set. The other processing steps are the same as those in FIG. 8 and will not be described in detail.

図25は第2の実施例における処理フロー・入出力パラメータテーブルの一例を示す模式図である。図5に示す処理フロー・入出力パラメータテーブルに加えて、処理主体フィールド2501を備えている。この数値が「0」の場合には、情報処理装置のCPUが、「1」の場合には、画像入力コントローラのCPUが処理主体となるプログラムを作成することになる。この例では、カメラ取込、二値化、メディアンの実行を画像入力コントローラのCPUが、モフォロジ、回転の実行を情報処理装置のCPUが行うためのプログラムが作成されることになる。なお、情報処理装置のCPUと画像入力コントローラのCPUとが作業メモリを共有することにより、データのやり取りを行うよう、プログラムは作成される。   FIG. 25 is a schematic diagram showing an example of a processing flow / input / output parameter table in the second embodiment. In addition to the processing flow / input / output parameter table shown in FIG. When this numerical value is “0”, the CPU of the information processing apparatus creates a program whose processing subject is the CPU of the image input controller. In this example, a program is created for the CPU of the image input controller to execute camera capture, binarization, and median, and the CPU of the information processing device to execute morphology and rotation. The program is created so that the CPU of the information processing apparatus and the CPU of the image input controller share the work memory and exchange data.

以上が、第2の実施例である一連の前処理を情報処理装置のCPUと画像入力装置のCPUとに処理分担をさせることで、処理の高速化を図るためのプログラムを作成するためのフローチャートの作成処理の説明である。   The above is a flowchart for creating a program for speeding up the processing by causing the CPU of the information processing apparatus and the CPU of the image input apparatus to share the series of preprocessing according to the second embodiment. This is an explanation of the creation process.

<第3の実施例>
次に、本願発明の第3の実施例について説明する。第3の実施例では、他のプログラムとのによる処理と同期処理を行うためのプログラムの作成について説明する。
<Third embodiment>
Next, a third embodiment of the present invention will be described. In the third embodiment, creation of a program for performing processing with other programs and synchronization processing will be described.

図26は、第3の実施例におけるモジュールの新規追加処理の詳細な手順の一例を示すフローチャートである。尚、第1の実施例におけるモジュールの新規追加処理(図8)や第2の実施例におけるモジュールの新規追加処理(図24)と同様の処理を行うステップには、それぞれの図と同じステップ番号を付与し、処理の詳細な説明は割愛する。   FIG. 26 is a flowchart illustrating an example of a detailed procedure of a new module addition process according to the third embodiment. Note that the same step numbers as those in the respective drawings are used for steps that are the same as the module addition process in the first embodiment (FIG. 8) and the module addition process in the second embodiment (FIG. 24). And detailed description of the process is omitted.

第3の実施例においては、イベントセットモジュール、及びイベント待機モジュールが用意されている。イベントセットモジュールは、特定のイベントを発生させるために用いられるモジュールである。イベント待機モジュールは、イベントセットモジュールにより発生されるイベントを待機するために用いられるモジュールである。これらモジュールは、図7に示す画像処理プログラム開発画面のツールボックス701に処理ユニットとして用意されている。   In the third embodiment, an event set module and an event standby module are prepared. The event set module is a module used to generate a specific event. The event wait module is a module used to wait for an event generated by the event set module. These modules are prepared as processing units in the tool box 701 of the image processing program development screen shown in FIG.

図26のステップS2601において、CPU111は、指定されたモジュールがイベントセット処理であるかを判定する。イベントセット処理であると判定した場合には(ステップS2601でYES)、処理フロー・入出力パラメータテーブル(図27)中の当該処理を示すレコードのイベント参照フィールド2701に、当該イベントセット処理で発行するイベント情報を設定する(ステップS2602)。尚、イベント情報についてはステップS202で表示されるパラメータ編集画面に設けられたイベント入力フィールドに入力された値をCPU111はイベント情報として取得し、その値をイベント情報に設定することになる。 In step S2601 in FIG. 26, the CPU 111 determines whether the designated module is an event set process. If it is determined that it is an event set process (YES in step S2601), the event set process issues it to the event reference field 2701 of the record indicating the process in the process flow / input / output parameter table (FIG. 27). Event information is set (step S2602). For the event information, the CPU 111 acquires the value input in the event input field provided on the parameter editing screen displayed in step S202 as the event information, and sets the value as the event information.

次に、CPU111は、指定されたモジュールがイベント待機処理であるかを判定する。イベント待機処理であると判定した場合には(ステップS2601でYES)、処理フロー・入出力パラメータテーブル(図27)中の当該処理を示すレコードのイベント参照フィールド2701に、当該イベント待機処理で待機するイベント情報を設定する(ステップS2602)。尚、イベント情報についてはステップS202で表示されるパラメータ編集画面に設けられたイベント入力フィールドに入力された値をCPU111はイベント情報として取得し、その値をイベント情報に設定することになる。   Next, the CPU 111 determines whether the designated module is an event standby process. If it is determined that the process is an event standby process (YES in step S2601), the process waits in the event reference field 2701 of the record indicating the process in the process flow / input / output parameter table (FIG. 27). Event information is set (step S2602). For the event information, the CPU 111 acquires the value input in the event input field provided on the parameter editing screen displayed in step S202 as the event information, and sets the value as the event information.

そして、その後、待機イベント情報として設定されたイベントを発行するためのイベントセット処理が設定されている処理フロー・入出力パラメータテーブル(図27)が示す処理フロー(関連処理フロー)が既に表示済みであるかを判定し、表示されていないと判断した場合には(ステップS2605でNO)、当該関連処理フローを画面表示する(ステップS2606)。なお、待機すると設定されたイベントを発行するイベントセット処理が他の何れの処理フローに設定されていない場合(すなわち、そのフローの処理を示す処理フロー・入出力パラメータテーブルがない場合)には、関連処理フローの表示は行わない。   After that, the processing flow (related processing flow) indicated by the processing flow / input / output parameter table (FIG. 27) in which the event set processing for issuing the event set as the standby event information is set has already been displayed. If it is determined that it is not displayed (NO in step S2605), the related process flow is displayed on the screen (step S2606). If the event set process that issues an event that is set to wait is not set in any other process flow (that is, there is no process flow / input / output parameter table indicating the process of the flow), The related process flow is not displayed.

図26のその他のステップについては、第1の実施例における新規追加処理(図8)及び第2の実施例における新規追加処理(図24)と略同様の処理であるため、詳細な説明は割愛する。   The other steps in FIG. 26 are substantially the same as the new addition process in the first embodiment (FIG. 8) and the new addition process in the second embodiment (FIG. 24), and thus detailed description is omitted. To do.

次に、図27を参照して、第3の実施例における処理フロー・入出力パラメータテーブルについて説明する。第3の実施例における処理フロー・入出力パラメータテーブルは第2の実施例における処理フロー・入出力パラメータテーブルが備えるフィールドに加えて、イベント参照フィールド2701が追加されている。モジュール503にイベントセットが設定されているレコードの場合には、イベント参照フィールド2701には当該処理で発行するイベントの情報が、モジュール503にイベント待機が設定されているレコードの場合には、イベント参照フィールド2701には当該処理で待機するイベントの情報が設定されることになる。   Next, a processing flow / input / output parameter table in the third embodiment will be described with reference to FIG. In the processing flow / input / output parameter table in the third embodiment, an event reference field 2701 is added in addition to the fields provided in the processing flow / input / output parameter table in the second embodiment. In the case of a record in which an event set is set in the module 503, the event reference field 2701 contains information on the event issued in the processing. In the field 2701, information of an event waiting in the process is set.

ここで、図27を例にして、これらの処理フロー・入出力パラメータテーブルが示す処理について説明する。尚、図27の(1)と(2)は異なる処理を示す処理フロー・入出力パラメータテーブルを示す。   Here, the processing shown in these processing flow / input / output parameter tables will be described using FIG. 27 as an example. Note that (1) and (2) in FIG. 27 show a process flow / input / output parameter table showing different processes.

図27の(1)の処理では、カメラ取込→モフォロジ→イベント待機→タイリングという処理が設定されており、(2)の処理ではカメラ取込→イベントセットが設定されている。そして、(1)の処理のイベント待機では、(2)の処理のイベントセットで設定されるイベントを待機するものとして設定されている(イベント参照がともにT9999)。   In the process of (1) in FIG. 27, the process of camera capture → morphology → event waiting → tiling is set, and in the process of (2), camera capture → event set is set. In the event waiting for the process (1), the event set in the event set for the process (2) is set to wait (event reference is both T9999).

つまりは、図27の(1)の処理では、カメラ取込とモフォロジの処理が終了後、(2)の処理でのカメラ取込とイベントセット処理が終了するまで待機し、それら処理が終了後に、タイリング処理を行うことを示している。   That is, in the process of (1) in FIG. 27, after the camera capture and morphology process are completed, the process waits until the camera capture and event set process in the process of (2) is completed. This indicates that tiling processing is performed.

以上が、第3の実施例である他のプログラムとのによる処理と同期処理を行うためのプログラムの作成について説明する。 The above describes the creation of a program for performing processing and synchronization processing with another program according to the third embodiment.

(作成したプログラムを実行するための画面の作成)
次に、上記第1乃至第3の実施例で作成されたプログラムを実行させるための画面作成処理について説明する。
(Create a screen for executing the created program)
Next, a screen creation process for executing the programs created in the first to third embodiments will be described.

図28は、画面作成処理の一例を示すフローチャートである。本処理を、CPU111に実行させるためのプログラムは外部メモリ116に記憶されており、CPUは本処理を行う際に、当該プログラムをRAM112にロードし、当該プログラムの制御に従って、本処理を行うことになる。 FIG. 28 is a flowchart illustrating an example of a screen creation process. A program for causing the CPU 111 to execute this processing is stored in the external memory 116, and when the CPU performs this processing, the CPU 111 loads the program into the RAM 112 and performs the processing according to the control of the program. Become.

まず、CPU111は、図29に示すレイアウト画面を、ビデオコントローラ115bを介して、CRT130に表示させる(ステップS2801)。レイアウト画面の詳細については、図29を参照して説明する。 First, the CPU 111 displays the layout screen shown in FIG. 29 on the CRT 130 via the video controller 115b (step S2801). Details of the layout screen will be described with reference to FIG.

次に、図29の画面に対する操作入力装置を介してのユーザによる操作に基づき、コントロールの入力指示を受け付けたか(入力あり?)を判定する(ステップS2802)。入力指示を受け付けた場合(ステップS2802でYES)と判定して場合には、入力指示の処理内容を判定する(ステップS2803)。 Next, based on an operation by the user via the operation input device with respect to the screen of FIG. 29, it is determined whether a control input instruction has been accepted (input is present?) (Step S2802). If it is determined that an input instruction has been accepted (YES in step S2802), the processing content of the input instruction is determined (step S2803).

ステップS2803での入力内容の判定結果、その入力内容が、新規ボタン追加処理であると判定した場合には(ステップS2804でYES)、処理をステップS2805に移行させ、新規ボタン追加処理を行うことになる。新規ボタン追加処理の詳細については、図30を参照して説明する。 If it is determined in step S2803 that the input content is a new button addition process (YES in step S2804), the process proceeds to step S2805 to perform a new button addition process. Become. Details of the new button addition processing will be described with reference to FIG.

ステップS2804での入力内容の判定結果、その入力内容が、新規画面追加処理であると判定した場合には(ステップS2806でYES)、処理をステップS2807に移行させ、新規画面追加処理を行うことになる。新規画面追加処理の詳細については、図31を参照して説明する。 If it is determined in step S2804 that the input content is the new screen addition process (YES in step S2806), the process proceeds to step S2807 to perform the new screen addition process. Become. Details of the new screen addition processing will be described with reference to FIG.

ステップS2804での入力内容の判定結果、その入力内容が、新規ボックス追加処理であると判定した場合には(ステップS2808でYES)、処理をステップS2809に移行させ、新規ボックス追加処理を行うことになる。新規ボックス追加処理の詳細については、図32を参照して説明する。 If it is determined in step S2804 that the input content is a new box addition process (YES in step S2808), the process proceeds to step S2809 to perform a new box addition process. Become. Details of the new box addition processing will be described with reference to FIG.

ステップS2804での入力内容の判定結果、その入力内容が、変更・移動処理であると判定した場合には(ステップS2810でYES)、処理をステップS2811に移行させ、変更・移動処理を行うことになる。変更・移動処理の詳細については、図33を参照して説明する。 If it is determined in step S2804 that the input content is a change / movement process (YES in step S2810), the process proceeds to step S2811, and the change / movement process is performed. Become. Details of the change / move process will be described with reference to FIG.

ステップS2804での入力内容の判定結果、その入力内容が、保存処理であると判定した場合には(ステップS2812でYES)、処理をステップS2813に移行させ、保存処理を行うことになる。保存処理の詳細については、図34を参照して説明する。 If it is determined in step S2804 that the input content is a storage process (YES in step S2812), the process proceeds to step S2813 and the storage process is performed. Details of the storage process will be described with reference to FIG.

そして、以上の処理をステップS2814で開発終了指示を受け付けたと判断するまで繰り返すことになる。以上が、画面作成処理の大まかな説明である。 The above processing is repeated until it is determined in step S2814 that a development end instruction has been received. The above is a rough description of the screen creation process.

次に、図29を参照して、図28のステップS2801でCRTに表示されるレイアウト画面の一例について説明する。レイアウト画面2900には、利用可能な処理コントロール(即ち、数値結果を表示するテキストボックスなどオンラインGUIの構成に係るコントロール)を表示するツールボックス2901と、画面構成(即ち、テキストボックスやボタンなど)を表示するデザイン領域2902と、各コントロールに係るプロパティを表示するプロパティ表示領域2903等が設けられている。 Next, an example of a layout screen displayed on the CRT in step S2801 of FIG. 28 will be described with reference to FIG. The layout screen 2900 includes a tool box 2901 that displays available processing controls (that is, controls related to the configuration of the online GUI such as a text box that displays numerical results) and a screen configuration (that is, text boxes, buttons, and the like). A design area 2902 for displaying, a property display area 2903 for displaying properties related to each control, and the like are provided.

ユーザは、ツールボックス2901に表示されている処理コントロールをデザイン領域にドラッグアンドドロップ処理をすることにより、希望の位置に配置し、その後、当該処理コントロールのサイズの変更や、プロパティ表示欄に表示されているプロパティを変更することで、画面の作成が可能となっている。以上が、レイアウト画面2900の説明である。   The user drags and drops the processing control displayed in the tool box 2901 to the design area to place it at a desired position, and then changes the size of the processing control or displays it in the property display column. The screen can be created by changing the properties. The above is the description of the layout screen 2900.

次に、図30を参照して、図28のステップS2805の新規ボタン追加処理について説明する。まず、CPU111は、新規ボタンの追加処理の指示を受け付けると、当該ボタンを配置する画面レイアウトテーブルが既に作成されているかを判定する(ステップS3001)。そして、ステップS3001の判定処理の結果、テーブルがまだ作成されていない(テーブルありでNO)と判定された場合(ステップS3002でNO)、画面レイアウトテーブルを作成する。画面レイアウトテーブルの一例については、図35を参照して説明する。   Next, with reference to FIG. 30, the new button addition processing in step S2805 of FIG. 28 will be described. First, when receiving an instruction to add a new button, the CPU 111 determines whether a screen layout table for arranging the button has already been created (step S3001). If it is determined as a result of the determination process in step S3001 that a table has not yet been created (NO with table) (NO in step S3002), a screen layout table is created. An example of the screen layout table will be described with reference to FIG.

図35は、画面レイアウトテーブルの一例を示す模式図である。図35の画面レイアウトテーブル3500には、Index3501、コントロール種別3502、デザイン登録名3503、プロパティテーブル3504が設定されている。   FIG. 35 is a schematic diagram illustrating an example of a screen layout table. In the screen layout table 3500 of FIG. 35, an index 3501, a control type 3502, a design registration name 3503, and a property table 3504 are set.

コントロール種別3502には、画面に設定されている各コントロールの種別が、デザイン登録名にはコントロールのIDが、プロパティテーブル3504には、当該コントロールの詳細を管理するプロパティテーブルのIDが登録されることになる。以上が、画面レイアウトテーブルの説明である。   The type of each control set on the screen is registered in the control type 3502, the control ID is registered in the design registration name, and the property table ID for managing the details of the control is registered in the property table 3504. become. The above is the description of the screen layout table.

図30の説明に戻る。そして、その後、追加されたボタンコントロールの種類を特定する(ステップS3004)。ボタンコントロールの種類としては、「単発検査」「連続検査」「検査停止」「検査設定」及び「終了」などが用意されている。   Returning to the description of FIG. Then, the type of the added button control is specified (step S3004). As the types of button controls, “single inspection”, “continuous inspection”, “inspection stop”, “inspection setting”, “end”, and the like are prepared.

その後、ボタンコントロールの詳細を示すボタンコントロールテーブル(図36)に、当該追加されたボタンコントロールの詳細を登録するためのレコードを追加し(ステップS3005)、ボタンの基本プロパティを外部メモリ116から読み出し、当該レコードに設定する(ステップS3006)。そして、ステップS3006で読み出したプロパティを図29のプロパティ表示領域2903に表示するとともに、追加されたコントロールをデザイン領域2902に描画する。以上が、図28のステップS2805の新規ボタン追加処理の詳細である。   Thereafter, a record for registering the details of the added button control is added to the button control table (FIG. 36) showing the details of the button control (step S3005), and the basic properties of the button are read from the external memory 116. The record is set in the record (step S3006). Then, the property read in step S3006 is displayed in the property display area 2903 in FIG. 29, and the added control is drawn in the design area 2902. The above is the details of the new button addition process in step S2805 of FIG.

図36を参照して、ボタンコントロールテーブルの一例について説明する。図36に示すボタンコントロールテーブルT3600には、Index(3601)、基本プロパティ(3602)、実行内容(3603)、カスタム1(3604)、カスタム2(3605)・・・が設定されている。   An example of the button control table will be described with reference to FIG. In the button control table T3600 shown in FIG. 36, Index (3601), basic property (3602), execution content (3603), custom 1 (3604), custom 2 (3605),... Are set.

Index(3601)には、当該コントロールのIndex情報が、基本プロパティ(3602)にはボタンコントロールの基本プロパティ情報が、実行内容(3603)には、当該ボタンが押下指示された場合に実行する実行内容が、カスタム1(3604)、カスタム2(3605)・・・には、ボタンコントロールの位置情報、ボタンのサイズ、形状等の情報が登録されることになる。以上が図36のボタンコントロールテーブルの説明である。   Index (3601) includes the index information of the control, basic property (3602) includes the basic property information of the button control, and execution content (3603) indicates the execution content to be executed when the button is instructed to be pressed. However, in the custom 1 (3604), custom 2 (3605)..., Information such as button control position information, button size, and shape is registered. The above is the description of the button control table of FIG.

次に、図31を参照して、図28のステップS2807の新規画面追加処理の詳細について説明する。この処理は、図30で説明した新規ボタン追加処理と略同等である。   Next, the details of the new screen addition process in step S2807 of FIG. 28 will be described with reference to FIG. This process is substantially the same as the new button addition process described with reference to FIG.

まず、CPU111は、画像処理結果を表示するための新規画面追加処理の指示を受け付けると、処理の結果を表示するための画面を配置する画面レイアウトテーブルが既に作成されているかを判定する(ステップS3101)。そして、ステップS3101の判定処理の結果、テーブルがまだ作成されていない(テーブルありでNO)と判定された場合(ステップS3102でNO)、画面レイアウトテーブルを作成する(ステップS3103)。   First, when receiving an instruction for a new screen addition process for displaying an image processing result, the CPU 111 determines whether a screen layout table for arranging a screen for displaying the processing result has already been created (step S3101). ). If it is determined as a result of the determination processing in step S3101 that a table has not yet been created (NO with table) (NO in step S3102), a screen layout table is created (step S3103).

その後、追加された画面に表示するデータを設定する(ステップS3104)。ここで設定するデータは、例えば、当該画面に設定されている画面コントロールにより実行される処理フローでの処理結果であり、具体的には当該処理フローを示す処理フロー・入出力パラメータテーブル中の入力パラメータ若しくは出力パラメータとして設定されている変数が指定される。   Thereafter, data to be displayed on the added screen is set (step S3104). The data to be set here is, for example, the processing result in the processing flow executed by the screen control set for the screen. Specifically, the input in the processing flow / input / output parameter table indicating the processing flow A variable set as a parameter or output parameter is specified.

その後、画面コントロールの詳細を示す画面コントロールテーブル(図37)に、当該追加されたボタンコントロールの詳細を登録するためのレコードを追加し(ステップS3105)、画面の基本プロパティを外部メモリ116から読み出し、当該レコードに設定する(ステップS3106)。そして、ステップS3106で読み出したプロパティを図29のプロパティ表示領域2903に表示するとともに、追加されたコントロールをデザイン領域2902に描画する。以上が、図28のステップS2807の新規画面追加処理の詳細である。   Thereafter, a record for registering the details of the added button control is added to the screen control table (FIG. 37) showing the details of the screen control (step S3105), and the basic properties of the screen are read from the external memory 116. The record is set (step S3106). The property read in step S3106 is displayed in the property display area 2903 in FIG. 29, and the added control is drawn in the design area 2902. The above is the details of the new screen addition process in step S2807 of FIG.

図37を参照して、画面コントロールテーブルの一例について説明する。画面コントロールテーブルT3700には、Index(3701)、基本プロパティ(3702)、リソース(3703)、カスタム1(3704)、カスタム2(3705)・・・等が設定されている。   An example of the screen control table will be described with reference to FIG. In the screen control table T3700, Index (3701), basic property (3702), resource (3703), custom 1 (3704), custom 2 (3705), etc. are set.

Index(3701)には、当該コントロールのIndex情報が、基本プロパティ(3702)には画面コントロールの基本プロパティ情報が、リソースには、当該画面に表示されるデータを保持する変数が、カスタム1(3604)、カスタム2(3605)・・・には、画面コントロールの位置情報、画面コントロールのサイズ、等の情報が登録されることになる。以上が図37の画面コントロールテーブルの説明である。   Index (3701) includes the index information of the control, basic property (3702) includes the basic property information of the screen control, and the resource includes a variable that holds data displayed on the screen as custom 1 (3604). ), Custom 2 (3605),..., Information such as screen control position information, screen control size, and the like is registered. The above is the description of the screen control table of FIG.

次に、図32を参照して、図28のステップS2809の新規ボックス追加処理の詳細について説明する。この処理は、図30で説明した新規ボタン追加処理と略同等である。   Next, with reference to FIG. 32, details of the new box addition processing in step S2809 of FIG. 28 will be described. This process is substantially the same as the new button addition process described with reference to FIG.

まず、CPU111は、画像処理結果を表示するための新規ボックス追加処理の指示を受け付けると、処理の結果を表示するためのボックスを配置する画面レイアウトテーブルが既に作成されているかを判定する(ステップS3201)。そして、ステップS3201の判定処理の結果、テーブルがまだ作成されていない(テーブルありでNO)と判定された場合(ステップS3102でNO)、画面レイアウトテーブルを作成する(ステップS3203)。   First, when receiving an instruction for a new box addition process for displaying an image processing result, the CPU 111 determines whether a screen layout table for arranging a box for displaying the result of the process has already been created (step S3201). ). If it is determined as a result of the determination processing in step S3201 that a table has not yet been created (NO with table) (NO in step S3102), a screen layout table is created (step S3203).

その後、追加された画面に表示するデータを設定する(ステップS3204)。ここで設定するデータは、例えば、当該画面に設定されているボタンコントロールにより実行される処理フローでの処理結果であり、具体的には当該処理フローを示す処理フロー・入出力パラメータテーブル中の入力パラメータ若しくは出力パラメータとして設定されている変数が指定される。   Thereafter, data to be displayed on the added screen is set (step S3204). The data to be set here is, for example, the processing result in the processing flow executed by the button control set on the screen, and specifically, the input in the processing flow / input / output parameter table indicating the processing flow A variable set as a parameter or output parameter is specified.

その後、ボックスコントロールの詳細を示すボックスコントロールテーブル(図38)に、当該追加されたボックスコントロールの詳細を登録するためのレコードを追加し(ステップS3205)、画面の基本プロパティを外部メモリ116から読み出し、当該レコードに設定する(ステップS3206)。そして、ステップS3206で読み出したプロパティを図29のプロパティ表示領域2903に表示するとともに、追加されたコントロールをデザイン領域2902に描画する。以上が、図28のステップS2809の新規ボックス追加処理の詳細である。   Thereafter, a record for registering the details of the added box control is added to the box control table (FIG. 38) showing the details of the box control (step S3205), and the basic properties of the screen are read from the external memory 116. The record is set (step S3206). The property read in step S3206 is displayed in the property display area 2903 of FIG. 29, and the added control is drawn in the design area 2902. The above is the details of the new box addition processing in step S2809 of FIG.

図38を参照して、ボックスコントロールテーブルの一例について説明する。ボックスコントロールテーブル3800には、Index(3801)、基本プロパティ(3802)、表示変数(3803)、カスタム1(3804)、カスタム2(3805)・・・等が設定されている。   An example of the box control table will be described with reference to FIG. In the box control table 3800, Index (3801), basic property (3802), display variable (3803), custom 1 (3804), custom 2 (3805), etc. are set.

Index(3801)には、当該コントロールのIndex情報が、基本プロパティ(3802)には画面コントロールの基本プロパティ情報が、表示変数(3803)には、当該画面に表示されるデータを保持する変数が、カスタム1(3804)、カスタム2(3805)・・・には、ボックスコントロールの位置情報、ボックスコントロールのサイズ、等の情報が登録されることになる。以上が図38の画面コントロールテーブルの説明である。   Index (3801) includes index information of the control, basic property (3802) includes basic property information of the screen control, and display variable (3803) includes a variable that holds data displayed on the screen. Custom 1 (3804), custom 2 (3805),... Register information such as box control position information, box control size, and the like. The above is the description of the screen control table of FIG.

次に、図33を参照して、図28のステップS2811に示す、変更・移動処理の詳細について説明する。CPU111は、変更若しくは移動指示を受け付けた場合に、まず変更対象となるコントロールを特定する(ステップS3301)。その後、当該変更要求を受け付けた種別コントロールの詳細を管理するコントロールテーブルから変更対象のコントロールのレコードを取得する(ステップS3302)。   Next, with reference to FIG. 33, the details of the change / move process shown in step S2811 of FIG. 28 will be described. When the CPU 111 receives a change or movement instruction, the CPU 111 first specifies a control to be changed (step S3301). Thereafter, a record of the control to be changed is acquired from the control table that manages the details of the type control that has received the change request (step S3302).

そしてステップS3302で取得したレコードに対して、ユーザから受け付けた変更内容に従った変更処理を行う(ステップS3303)。例えば、コントロールの移動の場合には、コントロールの座標値を示す情報に対する変更処理が行われることになる。   And the change process according to the change content received from the user is performed with respect to the record acquired by step S3302 (step S3303). For example, in the case of movement of a control, a change process for information indicating the coordinate value of the control is performed.

そして、変更されたプロパティ情報を図29のプロパティ表示領域2903に表示するとともに、変更されたコントロールの再描画処理を行う。以上が、図33ステップS2811の変更・移動処理の詳細である。   Then, the changed property information is displayed in the property display area 2903 in FIG. 29, and the redrawing process of the changed control is performed. The above is the details of the change / move process in step S2811 of FIG.

図34を参照して、図28のステップS2813の保存処理の詳細について説明する。まず、CPU111は、外部メモリ116に記憶されているソースプログラムに従って、図28〜図33の処理により作成された画面に対する操作指示等により発生するイベントに応じて、設定された処理を実行するためのソースプログラムを作成する(ステップS3401)。そして、そのソースプログラムを外部メモリ116に保存する(ステップS3402)。この処理を行う際に、実際にソースプログラムのコンパイル処理、リンク処理を実行し、その後、デバッグ処理を行わせるようにしても勿論かまわない。   With reference to FIG. 34, the details of the storage processing in step S2813 in FIG. 28 will be described. First, the CPU 111 executes a set process according to an event generated by an operation instruction or the like on the screen created by the processes of FIGS. 28 to 33 according to the source program stored in the external memory 116. A source program is created (step S3401). Then, the source program is stored in the external memory 116 (step S3402). When this processing is performed, it is of course possible to actually execute the compile processing and link processing of the source program and then perform the debugging processing.

<本発明の他の実施形態>
前述した本発明の実施形態に係るPC110(情報処理装置)を構成する図3の各構成部、並びに、PC110の制御方法を示す図6、図8、図9、図11〜図13の各ステップは、コンピュータのCPU(111)がROM(113)や外部メモリ(116)などに記憶されたプログラムを実行することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
<Other Embodiments of the Present Invention>
3 constituting the PC 110 (information processing apparatus) according to the embodiment of the present invention described above, and the steps shown in FIGS. 6, 8, 9, and 11 to 13 showing the control method of the PC 110. Can be realized by the CPU (111) of the computer executing a program stored in the ROM (113), the external memory (116) or the like. This program and a computer-readable recording medium recording the program are included in the present invention.

また、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、1つの機器からなる装置に適用してもよい。   In addition, the present invention can be implemented as, for example, a system, apparatus, method, program, storage medium, or the like. Specifically, the present invention may be applied to a system including a plurality of devices. You may apply to the apparatus which consists of one apparatus.

なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム(実施形態では図6、図8、図9、図11〜図13、図16、図21、図24、図26、図28、図30〜34に示すフローチャートに対応したプログラム)を、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。   Note that the present invention is a software program that implements the functions of the above-described embodiments (in the embodiment, FIGS. 6, 8, 9, 11 to 13, 16, 21, 21, 24, 26, and FIG. 28, a program corresponding to the flowchart shown in FIGS. 30 to 34), or a program that directly or remotely supplies the 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. In addition, there are 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, the present invention includes 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.

また、本発明のプログラムを暗号化して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 The downloaded key information can be used to execute the encrypted program and install it on the 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 PC(情報処理装置)
120 操作入力装置
130 CRT(CRTディスプレイ)
140 カメラ
150 照明装置コントローラ
160 照明装置
170 外部機器コントローラ
181 検査対象
180 ステージ
111 CPU
112 RAM
113 ROM
114 システムバス
115a 入力コントローラ
115b ビデオコントローラ
115c メモリコントローラ
115d、115e 通信I/Fコントローラ
115f 画像入力コントローラ
116 外部メモリ
100 image processing system 110 PC (information processing apparatus)
120 Operation input device 130 CRT (CRT display)
140 Camera 150 Illumination Device Controller 160 Illumination Device 170 External Device Controller 181 Inspection Target 180 Stage 111 CPU
112 RAM
113 ROM
114 System bus 115a Input controller 115b Video controller 115c Memory controller 115d, 115e Communication I / F controller 115f Image input controller 116 External memory

Claims (11)

画像の処理を行う情報処理装置であって、
画像の処理に関する処理を示すモジュールと、各モジュールに対応するソースコードとが関連付けられているモジュール・ソースコードマスタテーブルと、前記モジュールを複数組み合わせた処理フローの各モジュールと当該各モジュールの実行の順序を示す情報と当該各モジュールの処理に係る入力情報及び出力情報とを含む処理フロー・入出力情報テーブルと、分岐処理に係る条件情報を含む分岐処理条件テーブルとを記憶するテーブル記憶手段と、
前記処理フローに対して前記モジュールに関する変更の指示がされた際に、当該モジュールを特定するモジュール特定手段と、
前記モジュール特定手段で当該モジュールが分岐処理に関するモジュールであると特定した場合には、分岐処理に関する情報である条件式テーブルを作成する条件式テーブル作成手段と、
当該変更の指示に応じて、前記条件式テーブルを関連づける情報を含め前記処理フロー・入出力情報テーブルの情報を変更する変更手段と、
前記変更手段により変更された処理フロー・入出力情報テーブルの情報及び前記モジュール・ソースコードマスタテーブルの情報を用いて、前記モジュールごとにソースコードを生成するソースコード生成手段と、
前記ソースコード生成手段により生成されたソースコードに基づいてオブジェクトコードを生成するオブジェクトコード生成手段と、
前記オブジェクトコード生成手段により生成されたオブジェクトコードを用いて、前記変更手段により変更された処理フロー・入出力情報テーブルの前記モジュールごとに前記処理を実行する処理実行手段と、
前記処理実行手段による処理の実行により得られた前記モジュールごとの結果画像を表示装置に表示する結果画像表示手段と
を有することを特徴とする情報処理装置。
An information processing apparatus for processing an image,
Modules indicating processes related to image processing, module / source code master tables in which source codes corresponding to the respective modules are associated, modules in a processing flow combining a plurality of the modules, and execution order of the modules A table storage means for storing a processing flow / input / output information table including information indicating the input and output information related to processing of each module, and a branch processing condition table including condition information related to branch processing;
Module specifying means for specifying the module when an instruction to change the module is given to the processing flow;
When the module specifying means specifies that the module is a module related to branch processing, conditional expression table creating means for creating a conditional expression table that is information related to branch processing;
In accordance with the change instruction, changing means for changing information in the processing flow / input / output information table including information relating the conditional expression table;
Source code generation means for generating source code for each module, using the processing flow / input / output information table information changed by the changing means and the information of the module / source code master table;
Object code generation means for generating an object code based on the source code generated by the source code generation means;
Processing execution means for executing the processing for each module of the processing flow / input / output information table changed by the changing means, using the object code generated by the object code generating means;
An information processing apparatus comprising: a result image display unit configured to display a result image for each module obtained by execution of processing by the processing execution unit on a display device.
前記処理フローに対して前記分岐処理に関するモジュール変更の指示がされた後、さらに次のステップであるモジュールに関する変更の指示がされた際に、前記条件式テーブルの次のステップの情報を変更する条件式テーブル変更手段と
を有することを特徴とする請求項1に記載の情報処理装置。
A condition for changing the information of the next step in the conditional expression table when an instruction to change the module, which is the next step, is issued after the instruction to change the module related to the branch process is given to the processing flow. The information processing apparatus according to claim 1, further comprising an expression table changing unit.
当該変更の指示に応じて、
前記処理フローに対して前記分岐処理に関するモジュール変更の指示がされた後、さらに次のステップであるモジュールに関する変更の指示がされた際に、前記変更手段は処理フロー・入出力情報テーブルの次のステップの情報に分岐するノード数の情報を変更すること
を特徴とする請求項1または2に記載の情報処理装置。
In response to the change instructions,
After an instruction to change the module related to the branch process is given to the processing flow, and when an instruction to change the module, which is the next step, is issued, the changing means follows the processing flow / input / output information table. The information processing apparatus according to claim 1, wherein the information on the number of nodes branched to step information is changed.
分岐処理に関するモジュールにかかる前記分岐の条件情報は、前記処理フロー・入出力情報テーブルに記憶されている情報と関連した条件であること
を特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
4. The branch condition information relating to a branch processing module is a condition related to information stored in the processing flow / input / output information table. Information processing device.
前記結果画像表示手段は、前記変更手段により変更された処理フロー・入出力情報テーブルの前記順序を示す情報および分岐処理に係る条件情報にしたがって、前記結果画像の表示を行うこと
を特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
The result image display means displays the result image according to information indicating the order of the processing flow / input / output information table changed by the changing means and condition information related to branch processing. Item 5. The information processing apparatus according to any one of Items 1 to 4.
前記モジュール特定手段で当該モジュールが反復処理に関するモジュールであると特定した場合には、前記結果画像表示手段は反復処理の回数をインクリメントした結果画像を並べて表示すること
を特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。
6. The result image display means, when the module specifying means specifies that the module is a module related to repetitive processing, displays result images in which the number of repetitive processes is incremented and displayed side by side. The information processing apparatus according to any one of the above.
前記モジュールに関する変更の指示は、前記モジュールの新規追加処理、前記モジュールの移動処理、前記モジュールの挿入処理、及び、前記モジュールのパラメータの変更処理に係る指示のうち、少なくともいずれかの処理の指示を含むものであること
を特徴とする請求項1乃至6のいずれか1項に記載の情報処理装置。
The change instruction for the module is an instruction for at least one of the instructions relating to the new addition process of the module, the process of moving the module, the process of inserting the module, and the process of changing the parameter of the module. The information processing apparatus according to claim 1, wherein the information processing apparatus includes the information processing apparatus.
前記処理フローに対して前記分岐処理に関するモジュール変更の指示がされた後、さらに次のステップであるモジュールに関する変更の指示がされた場合に、分岐処理に関するモジュールをすくめそれ以降のモジュールについて、前記変更手段により変更された処理フロー・入出力情報テーブルの情報と前記モジュール・ソースコードマスタテーブルの情報と分岐処理条件テーブルの情報とを用いて、前記モジュールごとにソースコードを生成すること
を特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。
After an instruction to change the module related to the branch process is given to the processing flow, when a change instruction related to the module, which is the next step, is issued, the module related to the branch process is included and the change is made for the subsequent modules. A source code is generated for each module using the processing flow / input / output information table information changed by the means, the module / source code master table information, and the branch processing condition table information. The information processing apparatus according to any one of claims 1 to 7.
前記処理フロー・入出力情報テーブルの前記入力情報及び前記出力情報には、それぞれ、前記各モジュールの処理を行う画像を格納する画像バッファの情報、及び、当該各モジュールの処理の実行により得られた前記結果画像を格納する画像バッファの情報が設定されており、
前記変更手段は、前記モジュールに関する変更の指示にしたがって、必要に応じて、前記入力情報及び前記出力情報を変更すること
を特徴とする請求項1乃至8のいずれか1項に記載の情報処理装置。
The input information and the output information in the processing flow / input / output information table are obtained by executing information of an image buffer for storing an image to be processed by each module and executing the processing by each module, respectively. Information of an image buffer for storing the result image is set,
The information processing apparatus according to claim 1, wherein the changing unit changes the input information and the output information as necessary according to a change instruction related to the module. .
画像の処理を行う情報処理装置の制御方法であって、
画像の処理に関する処理を示すモジュールと、各モジュールに対応するソースコードとが関連付けられているモジュール・ソースコードマスタテーブルと、前記モジュールを複数組み合わせた処理フローの各モジュールと当該各モジュールの実行の順序を示す情報と当該各モジュールの処理に係る入力情報及び出力情報とを含む処理フロー・入出力情報テーブルと、分岐処理に係る条件情報を含む分岐処理条件テーブルとをテーブル記憶手段に記憶する記憶ステップと、
前記処理フローに対して前記モジュールに関する変更の指示がされた際に、当該モジュールを特定するモジュール特定ステップと、
前記モジュール特定ステップで当該モジュールが分岐処理に関するモジュールであると特定した場合には、分岐処理に関する情報である条件式テーブルを作成する条件式テーブル作成ステップと、
当該変更の指示に応じて、前記条件式テーブルを関連づける情報を含め前記処理フロー・入出力情報テーブルの情報を変更する変更ステップと、
前記変更ステップにより変更された処理フロー・入出力情報テーブルの情報及び前記モジュール・ソースコードマスタテーブルの情報を用いて、前記モジュールごとにソースコードを生成するソースコード生成ステップと、
前記ソースコード生成ステップにより生成されたソースコードに基づいてオブジェクトコードを生成するオブジェクトコード生成ステップと、
前記オブジェクトコード生成ステップにより生成されたオブジェクトコードを用いて、前記変更ステップにより変更された処理フロー・入出力情報テーブルの前記モジュールごとに前記処理を実行する処理実行ステップと、
前記処理実行ステップによる処理の実行により得られた前記モジュールごとの結果画像を表示装置に表示する結果画像表示ステップと
を有することを特徴とする情報処理装置の制御方法。
A method for controlling an information processing apparatus that performs image processing,
Modules indicating processes related to image processing, module / source code master tables in which source codes corresponding to the respective modules are associated, modules in a processing flow combining a plurality of the modules, and execution order of the modules A storage step of storing a processing flow / input / output information table including input information and input information and output information related to processing of each module, and a branch processing condition table including condition information related to branch processing in a table storage unit When,
A module specifying step for specifying the module when an instruction to change the module is given to the processing flow;
When the module specifying step specifies that the module is a module related to branch processing, a conditional expression table creating step for creating a conditional expression table that is information related to branch processing;
In accordance with the change instruction, a change step of changing information in the processing flow / input / output information table including information associating the conditional expression table;
A source code generation step for generating a source code for each module using the information of the processing flow / input / output information table changed by the changing step and the information of the module / source code master table;
An object code generation step for generating an object code based on the source code generated by the source code generation step;
A process execution step for executing the process for each module of the process flow / input / output information table changed by the change step using the object code generated by the object code generation step;
And a result image display step of displaying on the display device a result image for each module obtained by executing the processing in the processing execution step.
画像の処理を行う情報処理装置の制御方法をコンピュータに実行させるためのプログラムであって、
画像の処理に関する処理を示すモジュールと、各モジュールに対応するソースコードとが関連付けられているモジュール・ソースコードマスタテーブルと、前記モジュールを複数組み合わせた処理フローの各モジュールと当該各モジュールの実行の順序を示す情報と当該各モジュールの処理に係る入力情報及び出力情報とを含む処理フロー・入出力情報テーブルと、分岐処理に係る条件情報を含む分岐処理条件テーブルとをテーブル記憶手段に記憶する記憶ステップと、
前記処理フローに対して前記モジュールに関する変更の指示がされた際に、当該モジュールを特定するモジュール特定ステップと、
前記モジュール特定ステップで当該モジュールが分岐処理に関するモジュールであると特定した場合には、分岐処理に関する情報である条件式テーブルを作成する条件式テーブル作成ステップと、
当該変更の指示に応じて、前記条件式テーブルを関連づける情報を含め前記処理フロー・入出力情報テーブルの情報を変更する変更ステップと、
前記変更ステップにより変更された処理フロー・入出力情報テーブルの情報及び前記モジュール・ソースコードマスタテーブルの情報を用いて、前記モジュールごとにソースコードを生成するソースコード生成ステップと、
前記ソースコード生成ステップにより生成されたソースコードに基づいてオブジェクトコードを生成するオブジェクトコード生成ステップと、
前記オブジェクトコード生成ステップにより生成されたオブジェクトコードを用いて、前記変更ステップにより変更された処理フロー・入出力情報テーブルの前記モジュールごとに前記処理を実行する処理実行ステップと、
前記処理実行ステップによる処理の実行により得られた前記モジュールごとの結果画像を表示装置に表示する結果画像表示ステップと
をコンピュータに実行させるためのプログラム。
A program for causing a computer to execute a control method of an information processing apparatus that performs image processing,
Modules indicating processes related to image processing, module / source code master tables in which source codes corresponding to the respective modules are associated, modules in a processing flow in which a plurality of the modules are combined, and the execution order of the modules A storage step of storing a processing flow / input / output information table including input information and input information and output information related to processing of each module, and a branch processing condition table including condition information related to branch processing in a table storage unit When,
A module specifying step for specifying the module when an instruction to change the module is given to the processing flow;
When the module specifying step specifies that the module is a module related to branch processing, a conditional expression table creating step for creating a conditional expression table that is information related to branch processing;
In accordance with the change instruction, a change step of changing information in the processing flow / input / output information table including information associating the conditional expression table;
A source code generation step for generating a source code for each module using the information of the processing flow / input / output information table changed by the changing step and the information of the module / source code master table;
An object code generation step for generating an object code based on the source code generated by the source code generation step;
A process execution step for executing the process for each module of the process flow / input / output information table changed by the change step using the object code generated by the object code generation step;
The program for making a computer perform the result image display step which displays the result image for every said module obtained by execution of the process by the said process execution step on a display apparatus.
JP2009212423A 2009-03-18 2009-09-14 Information processing apparatus, control method therefor, and program Expired - Fee Related JP5257898B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009212423A JP5257898B2 (en) 2009-03-18 2009-09-14 Information processing apparatus, control method therefor, and program

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2009096475 2009-03-18
JP2009096475 2009-03-18
JP2009212423A JP5257898B2 (en) 2009-03-18 2009-09-14 Information processing apparatus, control method therefor, and program

Publications (2)

Publication Number Publication Date
JP2010244507A true JP2010244507A (en) 2010-10-28
JP5257898B2 JP5257898B2 (en) 2013-08-07

Family

ID=43097421

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009212423A Expired - Fee Related JP5257898B2 (en) 2009-03-18 2009-09-14 Information processing apparatus, control method therefor, and program

Country Status (1)

Country Link
JP (1) JP5257898B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014203309A (en) * 2013-04-05 2014-10-27 オムロン株式会社 Image processing apparatus, control method, and program
JP2015143982A (en) * 2013-12-26 2015-08-06 キヤノンマーケティングジャパン株式会社 Information processing device, control method thereof, and program
JP2015143981A (en) * 2013-12-26 2015-08-06 キヤノンマーケティングジャパン株式会社 Information processing device, control method thereof, and program

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03204722A (en) * 1990-01-08 1991-09-06 Hitachi Ltd Specification review support method
JPH09288568A (en) * 1996-04-23 1997-11-04 Matsushita Electric Works Ltd Image processor and execution flow preparing method for the same
JP2002251603A (en) * 2001-02-23 2002-09-06 Matsushita Electric Works Ltd Image processing program formation method and system for it
JP2003296112A (en) * 2002-03-29 2003-10-17 Shiga Pref Gov System and method for supporting development of image processing and inspecting device
JP2009020821A (en) * 2007-07-13 2009-01-29 Canon Inc Improvement of conditional branch defining method of workflow

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03204722A (en) * 1990-01-08 1991-09-06 Hitachi Ltd Specification review support method
JPH09288568A (en) * 1996-04-23 1997-11-04 Matsushita Electric Works Ltd Image processor and execution flow preparing method for the same
JP2002251603A (en) * 2001-02-23 2002-09-06 Matsushita Electric Works Ltd Image processing program formation method and system for it
JP2003296112A (en) * 2002-03-29 2003-10-17 Shiga Pref Gov System and method for supporting development of image processing and inspecting device
JP2009020821A (en) * 2007-07-13 2009-01-29 Canon Inc Improvement of conditional branch defining method of workflow

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014203309A (en) * 2013-04-05 2014-10-27 オムロン株式会社 Image processing apparatus, control method, and program
JP2015143982A (en) * 2013-12-26 2015-08-06 キヤノンマーケティングジャパン株式会社 Information processing device, control method thereof, and program
JP2015143981A (en) * 2013-12-26 2015-08-06 キヤノンマーケティングジャパン株式会社 Information processing device, control method thereof, and program

Also Published As

Publication number Publication date
JP5257898B2 (en) 2013-08-07

Similar Documents

Publication Publication Date Title
US8291374B2 (en) System and method for generating modified source code based on change-models
JP3729640B2 (en) Visual programming device with screen flow
US20080148227A1 (en) Method of partitioning an algorithm between hardware and software
US20100161085A1 (en) Peripheral device of programmable controller, method of variable substitution, and computer program product thereof
JP5257898B2 (en) Information processing apparatus, control method therefor, and program
Freire et al. OPLA-Tool v2. 0: a tool for product line architecture design optimization
TWI467481B (en) Method, system, and computer program product for hierarchical program source management
CN113934429A (en) Design draft conversion method and device, computer equipment and storage medium
JPH0816429A (en) Parallel program generation supporting device, parallel program generating method, and parallel program executing device
US20130007697A1 (en) Program creation support apparatus, program, and information system
JP4767309B2 (en) Information processing apparatus, information processing method, and computer program
JP2005063136A (en) Design system, design method, and design program of semiconductor integrated circuit
JP2007172444A (en) Verification work support system and method therefor
CN115562652B (en) Component style processing method and system for low-code development platform
JP2007236750A (en) Game development system and game development method
JP5334124B2 (en) Information processing apparatus, control method thereof, and program
US7861236B2 (en) System and method for version control for software development
CN114072740B (en) Information processing device, storage medium and support system
EP3376370B1 (en) Program producing device and program
Mayerhofer et al. xMOF: A Semantics Specification Language for Metamodeling.
JP4886910B1 (en) Information processing apparatus, information processing apparatus control method, program, and recording medium storing program
JP2011186650A (en) Apparatus and method for processing information, computer program, and recording medium with computer program recorded thereon
JP7208441B1 (en) FA control test support program, FA control test support device, FA control test support method and FA control test support system
JP4609655B2 (en) Attached data generator for program parts
JP4749507B1 (en) Information processing apparatus, information processing apparatus control method, program, and recording medium storing program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111226

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20120130

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20120130

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130220

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: 20130319

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130416

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160502

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5257898

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D03

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D04

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

LAPS Cancellation because of no payment of annual fees