JP5334124B2 - Information processing apparatus, control method thereof, and program - Google Patents
Information processing apparatus, control method thereof, and program Download PDFInfo
- Publication number
- JP5334124B2 JP5334124B2 JP2009272757A JP2009272757A JP5334124B2 JP 5334124 B2 JP5334124 B2 JP 5334124B2 JP 2009272757 A JP2009272757 A JP 2009272757A JP 2009272757 A JP2009272757 A JP 2009272757A JP 5334124 B2 JP5334124 B2 JP 5334124B2
- Authority
- JP
- Japan
- Prior art keywords
- processing
- item
- source code
- cpu
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
Description
本発明は、画像の処理を行う情報処理装置、その制御方法、及びプログラムに関し、特に画像処理を行うためのプログラムを作成する情報処理装置、その制御方法、及びプログラムに関する。
The present invention relates to an information processing apparatus for processing image, the control method, and a program, particularly an information processing apparatus for creating a program for performing image processing, a control method, and a program.
従来、例えば、チップマウンターにおける基板や部品の位置決めや、出来上がった製品の検査などを目的として、カメラで撮影した検査対象の画像データを、一定のロジック(処理フロー)で画像処理する画像処理装置が広く用いられている。 2. Description of the Related Art Conventionally, for example, an image processing apparatus that performs image processing of image data to be inspected with a camera with a certain logic (processing flow) for the purpose of positioning a substrate or a component in a chip mounter or inspecting a finished product. Widely used.
このような用途の画像処理装置としては、例えば、予め決められた画像処理のロジックを搭載した汎用タイプの画像処理装置や、ユーザのニーズに合致するロジックをユーザ自身が構築することが可能な専用タイプの画像処理装置がある。 As such an image processing apparatus, for example, a general-purpose type image processing apparatus equipped with a predetermined image processing logic, or a dedicated user that can construct a logic that meets the user's needs. There are types of image processing devices.
ここで、汎用タイプの画像処理装置は、画像処理のロジックを新規に構築する必要がないため、実際の製造工程等への導入に際してユーザの労力はかからないが、ユーザのニーズを完全に満たすロジックであることは少ない。一方、専用タイプの画像処理装置は、ユーザのニーズを完全に満たす画像処理のロジックを構築することが可能であるが、そのために画像処理のロジックを都度開発する必要があるため、多大な開発労力と開発期間、更には多大なコストがかかるものであった。 Here, the general-purpose type image processing apparatus does not require the construction of a new image processing logic, so it does not require the user's labor when introducing it into an actual manufacturing process, etc., but the logic completely satisfies the user's needs. There are few. On the other hand, a dedicated type image processing apparatus can construct image processing logic that completely satisfies the user's needs. For this reason, it is necessary to develop the image processing logic each time, so a great amount of development effort is required. The development period and the cost were high.
そこで、従来、例えば下記の特許文献1に示すようなロジックの開発を効率化する技術が提案されている。具体的に、特許文献1では、ロジックを開発するコンピュータに予め複数の画像処理に係るモジュールを登録しておき、開発者が使用者のニーズに合致するモジュールを選択し、選択したモジュールに必要なパラメータを設定して、ソースコード化した上でオブジェクトコードを作成することにより、ロジックの開発を効率化するものである。
Therefore, conventionally, for example, a technique for improving the efficiency of logic development as shown in
ここで、上述した専用タイプの画像処理装置においてロジックを構築する場合、通常、特定の画像処理を行うためのモジュールが複数用意されており、それらモジュールを組み合わせることによりロジックの構築が行われる。この場合、ある画像データに対しては理想的な結果を得る画像処理のロジック(処理フロー)であっても、画像処理対象の画像にはいろいろなものがあるため、全ての画像に対して目標とする結果が得られない可能性もある。そこで通常は、構築したロジックに含まれる、それぞれのモジュールのパラメータを変更したり、モジュールの順序を変更したり、更には新規のモジュールを追加したりして、試行錯誤を繰り返してロジックの調整を行う必要がある。また、判断処理結果に基づく分岐処理を含む場合や反復処理を含む場合には、判断のための閾値や反復回数などのパラメータについての調整も必要となる。 Here, when constructing logic in the above-described dedicated type image processing apparatus, usually, a plurality of modules for performing specific image processing are prepared, and logic is constructed by combining these modules. In this case, even if the image processing logic (processing flow) obtains an ideal result for a certain image data, there are various types of images to be processed. May not be obtained. Therefore, usually, the parameters of each module included in the constructed logic are changed, the order of modules is changed, and new modules are added, and the logic is adjusted by repeating trial and error. There is a need to do. In addition, when a branch process based on the determination process result is included or when an iterative process is included, it is necessary to adjust parameters such as a threshold for determination and the number of repetitions.
しかしながら、このようなモジュールの調整を行う場合、上述した特許文献1の技術では、その調整の都度、始めからモジュールを選択しパラメータを設定するといった作業を行うことが必要になり、開発者が負荷の大きい作業を行わなければならないといった問題がある。
However, when such a module adjustment is performed, in the technique of the above-described
また、構築したロジックにおいて、組み合わされた複数のモジュールのうちのどのモジュールについて、パラメータや順序の変更を行うのか、或いは新規にモジュールを追加することで調整を行うのか、即ち、調整対象となるモジュールを特定する必要がある。 In addition, in the constructed logic, which module of the combined modules is to be changed by changing parameters and order, or by adding a new module, that is, the module to be adjusted Need to be identified.
しかしながら、上述した特許文献1の技術では、構築したロジックにおいては処理フローの途中のモジュールの処理結果が不明で最終的な処理結果しか分からないため、調整対象となるモジュールを特定するためには、やはり、開発者が負荷の大きい作業を行わなければならないといった問題がある。
However, in the technique of
特に、分岐処理や反復処理を含む場合には、それらの分岐判断のための閾値や反復回数などのパラメータを調整するべきか、前後の処理のパラメータや順序を調整するべきかの判断が必要になる。しかし上述した特許文献1の技術では、最終的な処理結果しか分からないため、結局は試行錯誤による調整が必要になったり、あるいは調整のための特別なプログラムを作成する必要があったりと、やはり、開発者が負荷の大きい作業を行わなければならないといった問題があった。
In particular, when branching or iterative processing is included, it is necessary to determine whether to adjust parameters such as the threshold and the number of iterations for branching judgment, or to adjust the parameters and order of preceding and following processing. Become. However, in the technique of
さらに、分岐処理のあと複数の処理を別々に行って、それぞれの処理結果を用いて次の処理を行う並列分岐処理を含む場合においても、並列分岐処理のモジュールのパラメータを調整すべきか、前後の処理自体を調整するべきかの判断が必要になるが、同様の問題があった。 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.
また、ロジックの効率的な開発を行うためには、複数のモジュールを組み合わせて作成したロジックを新たなモジュールとして登録し、他のロジック作成を行えるようにすることが望ましい。 In order to efficiently develop logic, it is desirable to register logic created by combining a plurality of modules as a new module so that other logic can be created.
本発明は、このような問題点に鑑みてなされたものであり、アプリケーションプログラムに追加可能な処理アイテムを作成するためのソースコードの記述を支援すると共に、当該ソースコードを処理アイテムとして利用可能な、効率のよい画像処理のロジック構築により、画像処理を行うためのプログラムの作成支援を実現し得る仕組みを提供することを目的とする。
The present invention has been made in view of such problems, as well as support the description of the source code to create a process item can be added to the application program can utilize the source code as processing item Another object of the present invention is to provide a mechanism that can realize creation support of a program for performing image processing by constructing efficient image processing logic.
本発明の情報処理装置は、コンピュータに画像処理を行わせるためのアプリケーションプログラムを生成する情報処理装置であって、前記アプリケーションプログラムに追加可能な複数の処理アイテムと、その処理アイテムに係る処理を実現するためのプログラムの生成に用いられるソースコードとを対応付けて記憶する記憶手段と、前記複数の処理アイテムを表示する選択画面から前記アプリケーションプログラムに追加する処理アイテムの指定を受け付け、また前記選択画面におけるユーザからの指示により、ユーザがソースコードを記述するための入力画面を当該ソースコードの基礎となる部分を含めて表示し、デバッグのためのデバッグ情報を含めたソースコードの記述を受け付ける受付手段と、前記受付手段での前記処理アイテムの指定の受付に応じて、前記処理アイテムによる画像処理結果の画像データを表示する表示領域を設定する設定手段と、前記受付手段で受け付けた前記処理アイテムに対応するソースコードを用いて、前記アプリケーションプログラムを生成し、また前記受付手段で記述を受け付けたソースコードから、前記デバッグ情報を除去することで処理アイテムを生成する生成手段と、前記生成手段で生成したアプリケーションプログラムを前記記憶手段に登録する登録手段と、前記登録手段で登録したアプリケーションプログラムの実行時に、処理対象画像に対する前記処理アイテムに係る処理を行った結果の結果画像データを前記設定手段で設定された表示領域に表示する表示制御手段と、を備え、前記登録手段は、前記生成手段で生成された処理アイテムが前記受付手段で前記選択画面における指定の受付が可能となるよう、当該生成された処理アイテムを前記アプリケーションプログラムに追加可能な処理アイテムとして前記記憶手段に追加登録することを特徴とする。
An information processing apparatus according to the present invention is an information processing apparatus that generates an application program for causing a computer to perform image processing, and implements a plurality of process items that can be added to the application program and processes related to the process items Storage means for associating and storing source code used for generating a program for performing , accepting designation of a processing item to be added to the application program from a selection screen for displaying the plurality of processing items, and the selection screen Accepting means for displaying the input screen for the user to describe the source code, including the basic part of the source code, and receiving the description of the source code including debugging information for debugging according to the instruction from the user in And the processing item in the receiving means The application program using a setting unit that sets a display area for displaying image data of an image processing result by the processing item according to a specified reception, and a source code corresponding to the processing item received by the receiving unit And generating means for generating a processing item by removing the debug information from the source code whose description has been received by the receiving means, and registration for registering the application program generated by the generating means in the storage means And display control means for displaying result image data as a result of performing processing relating to the processing item on the processing target image in the display area set by the setting means when executing the application program registered by the registration means. , wherein the registration means, processing generated by the generating means As the item is possible to specify the reception of the selection screen by said reception means, characterized in that it additionally registered in the storage means a process item to which the generated as addable process item to the application program.
本発明の情報処理装置の制御方法は、コンピュータに画像処理を行わせるためのアプリケーションプログラムに追加可能な複数の処理アイテムと、その処理アイテムに係る処理を実現するためのプログラムの生成に用いられるソースコードとを対応付けて記憶する記憶手段を備え、前記アプリケーションプログラムを生成する情報処理装置の制御方法であって、前記情報処理装置の受付手段が、前記複数の処理アイテムを表示する選択画面から前記アプリケーションプログラムに追加する処理アイテムの指定を受け付け、また前記選択画面におけるユーザからの指示により、ユーザがソースコードを記述するための入力画面を当該ソースコードの基礎となる部分を含めて表示し、デバッグのためのデバッグ情報を含めたソースコードの記述を受け付ける受付ステップと、前記情報処理装置の設定手段が、前記受付ステップでの前記処理アイテムの指定の受付に応じて、前記処理アイテムによる画像処理結果の画像データを表示する表示領域を設定する設定ステップと、前記情報処理装置の生成手段が、前記受付ステップで受け付けた前記処理アイテムに対応するソースコードを用いて、前記アプリケーションプログラムを生成し、また前記受付ステップで記述を受け付けたソースコードから、前記デバッグ情報を除去することで処理アイテムを生成する生成ステップと、前記情報処理装置の登録手段が、前記生成ステップで生成したアプリケーションプログラムを前記記憶手段に登録する登録ステップと、前記情報処理装置の表示制御手段が、前記登録ステップで登録したアプリケーションプログラムの実行時に、処理対象画像に対する前記処理アイテムに係る処理を行った結果の結果画像データを前記設定ステップで設定された表示領域に表示する表示制御ステップと、を備え、前記登録ステップは、前記生成ステップで生成された処理アイテムが前記受付ステップで前記選択画面における指定の受付が可能となるよう、当該生成された処理アイテムを前記アプリケーションプログラムに追加可能な処理アイテムとして前記記憶手段に追加登録することを特徴とする。
A method for controlling an information processing apparatus according to the present invention includes a plurality of process items that can be added to an application program for causing a computer to perform image processing, and a source used to generate a program for realizing processing related to the process item An information processing apparatus control method that includes a storage unit that stores a code in association with each other, wherein the reception unit of the information processing apparatus displays the plurality of process items from a selection screen that displays the plurality of process items. Accepts the designation of process items to be added to the application program, and displays the input screen for the user to describe the source code, including the basic part of the source code, in accordance with instructions from the user on the selection screen, and debugs description of the source code, including the debug information for the A setting step of setting a display area in which image data of an image processing result by the processing item is displayed in response to the reception of the designation of the processing item in the reception step. Step, and the generation unit of the information processing apparatus generates the application program using the source code corresponding to the processing item received in the receiving step, and from the source code that receives the description in the receiving step, A generation step of generating a processing item by removing the debug information, a registration step of registering the application program generated in the generation step by the registration unit of the information processing device, The display control means registers the application registered in the registration step. During the execution of the Deployment program, and a display control step of displaying the resulting image data of the result of the process according to the process item in the display area set in said setting step for the processing target image, the registration step, The generated process item is additionally registered in the storage unit as a process item that can be added to the application program so that the process item generated in the generating step can be specified on the selection screen in the receiving step. It is characterized by doing.
本発明のプログラムは、コンピュータに画像処理を行わせるためのアプリケーションプログラムに追加可能な複数の処理アイテムと、その処理アイテムに係る処理を実現するためのプログラムの生成に用いられるソースコードとを対応付けて記憶する記憶手段を備え、前記アプリケーションプログラムを生成する情報処理装置の制御方法をコンピュータに実行させるためのコンピュータに読み取り実行可能なプログラムであって、前記情報処理装置を、前記複数の処理アイテムを表示する選択画面から前記アプリケーションプログラムに追加する処理アイテムの指定を受け付け、また前記選択画面におけるユーザからの指示により、ユーザがソースコードを記述するための入力画面を当該ソースコードの基礎となる部分を含めて表示し、デバッグのためのデバッグ情報を含めたソースコードの記述を受け付ける受付手段と、前記受付手段での前記処理アイテムの指定の受付に応じて、前記処理アイテムによる画像処理結果の画像データを表示する表示領域を設定する設定手段と、前記受付手段で受け付けた前記処理アイテムに対応するソースコードを用いて、前記アプリケーションプログラムを生成し、また前記受付手段で記述を受け付けたソースコードから、前記デバッグ情報を除去することで処理アイテムを生成する生成手段と、前記生成手段で生成したアプリケーションプログラムを前記記憶手段に登録する登録手段と、前記登録手段で登録したアプリケーションプログラムの実行時に、処理対象画像に対する前記処理アイテムに係る処理を行った結果の結果画像データを前記設定手段で設定された表示領域に表示する表示制御手段として機能させ、前記登録手段は、前記生成手段で生成された処理アイテムが前記受付手段で前記選択画面における指定の受付が可能となるよう、当該生成された処理アイテムを前記アプリケーションプログラムに追加可能な処理アイテムとして前記記憶手段に追加登録することを特徴とする。
The program of the present invention associates a plurality of process items that can be added to an application program for causing a computer to perform image processing, and source code used to generate a program for realizing the processing related to the process item. A storage means for storing the information processing apparatus, and a computer-readable program for causing the computer to execute a control method of the information processing apparatus for generating the application program, wherein the information processing apparatus includes the plurality of processing items . The specification of the processing item to be added to the application program is accepted from the selection screen to be displayed, and the input screen for the user to describe the source code is displayed based on the instruction from the user on the selection screen. Including and displaying A receiving means for receiving a description of a source code, including debugging information for grayed, depending on the reception of the specified the process item in the reception unit, a display area for displaying the image data of the image processing result by the processing item Generating the application program using the setting means for setting the source code and the source code corresponding to the processing item received by the receiving means, and removing the debug information from the source code receiving the description by the receiving means Generating means for generating a processing item , registration means for registering the application program generated by the generating means in the storage means, and the processing item for the processing target image when executing the application program registered by the registration means The result image data of the result of the processing related to To function as a display control means for displaying on the display area set by the setting means, said registration means so that the process item generated by the generating means is possible to specify the reception of the selection screen by said reception means, The generated process item is additionally registered in the storage unit as a process item that can be added to the application program.
本発明によれば、アプリケーションプログラムに追加可能な処理アイテムを作成するためのソースコードの記述を支援すると共に、当該ソースコードを処理アイテムとして利用可能な、効率のよい画像処理のロジックの構築を実現する仕組みを提供することが可能となる。
According to the present invention, it will support the description of the source code to create an additional possible process item in the application program, which can utilize the source code as processing item, the efficient image processing logic constructs It is possible to provide a mechanism to realize.
以下、図面を参照しながら、本発明の実施の形態について説明する。図1は、本発明の実施の形態係る画像処理システム100の概略構成の一例を示す模式図である。図1に示す通り、画像処理システム100は、情報処理装置110と、入力装置120と、ディスプレイ装置130と、カメラ140と、照明装置コントローラ150と、照明装置160と、外部機器コントローラ170と、検査対象181が載置されたステージ180を有して構成されている。
Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is a schematic diagram illustrating an example of a schematic configuration of an
情報処理装置110は、画像処理システム100における動作を統括的に制御する装置である。ここで、本実施形態においては、情報処理装置110は、実際の製造工程に導入される画像処理装置で動作する画像処理アプリケーションプログラムの開発を支援する装置として適用した例を説明するが、本発明においてはこれに限定されるわけではなく、たとえば、実際の製造工程に導入されている画像処理装置として適用する形態も本発明に含まれる。
The
情報処理装置110は、所定のケーブル等を介して、検査対象181の撮像(撮影)を行うカメラ140と通信可能に構成されている。また、情報処理装置110は、所定のケーブル等を介して、照明装置160の制御を行う照明装置コントローラ150と通信可能に構成されている。また、情報処理装置110は、所定のケーブル等を介して、ステージ180を制御するプログラマブルコントローラ(PCL)などの外部機器コントローラ170と、あらかじめ設定した通信が可能に構成されている。さらに、情報処理装置110は、所定のケーブル等を介して、それぞれ、入力装置120およびディスプレイ装置130と通信可能に構成されている。すなわち、情報処理装置110は、所定のケーブル等を介して接続された、入力装置120、ディスプレイ装置130、カメラ140、照明装置コントローラ150および外部機器コントローラ170を制御することによって、画像処理システム100における動作を統括的に制御する。
The
入力装置120は、例えばユーザが情報処理装置110に対して各種の指示の入力を行う際にユーザによって操作されるものであり、ユーザからの入力指示操作に従って、当該入力指示を情報処理装置110に対して入力するものである。この入力装置120は、例えば、キーボード(KB)やポインティングデバイス等で構成されている。
The
ディスプレイ装置130は、情報処理装置110の制御に従って、各種の画像や各種の情報などを表示画面に表示する。
The
カメラ140は、情報処理装置110の制御に従って、ステージ180上に載置された検査対象181の撮影(撮像)を行い、撮影により得られた画像データを所定のケーブル等を介して情報処理装置110に送信する。
The
照明装置コントローラ150は、情報処理装置110の制御に従って、照明装置160の照明を制御する。照明装置160は、照明装置コントローラ150の制御に基づき、検査対象181における検査内容に応じて、当該検査対象181に対する照明の点灯/非点灯の切り替えや明るさの調整等を行う。
The
外部機器コントローラ170は、情報処理装置110の制御に従って、ステージ180を制御する。ステージ180は、外部機器コントローラ170の制御に基づき、載置された検査対象181を目的の位置に移動させたり、検査対象181の搬入や搬出をしたりする。以上が画像処理システムの構成の一例の説明である。
The
次に、情報処理装置110のハードウェア構成について説明する。図2は、図1に示す情報処理装置110のハードウェア構成の一例を示す模式図である。図2には、情報処理装置110の内部構成に加えて、当該情報処理装置110と接続される各種装置についても記載している。
Next, the hardware configuration of the
情報処理装置110は、図2に示すように、CPU111と、RAM112と、ROM113と、システムバス114と、各種のコントローラ115(115a〜115g)と、外部メモリ116と、を備えている。各種のコントローラ115として、入力コントローラ115a、ビデオコントローラ115b、メモリコントローラ115c、通信I/Fコントローラ115d、115e、及び115g、画像入力コントローラ115fが構成されている。CPU111は、ROM113或いは外部メモリ116に記憶されたプログラム等に基づいてシステムバス114に接続された各デバイスを制御して、情報処理装置110における動作を統括的に制御する。RAM112は、CPU111の主メモリ、ワークエリア等として機能する。CPU111は、処理の実行に際して、必要なプログラム等をRAM112にロードして、プログラムを実行することにより、情報処理装置110における各種の動作を実現する。ROM113には、CPU111の制御プログラムであるBIOS(Basic Input
/ Output System)等が記憶されている。
As illustrated in FIG. 2, the
/ Output System) is stored.
システムバス114は、CPU111、RAM112、ROM113、入力コントローラ115a、ビデオコントローラ115b、メモリコントローラ115c、通信I/Fコントローラ115d及び115e、115g、画像入力コントローラ115fを、相互に通信可能に接続する。
The
入力コントローラ115aは、キーボード(KB)やポインティングデバイスなどからなる入力装置120からの入力を制御する。ビデオコントローラ115bは、表示装置であるディスプレイ装置130への表示を制御する。メモリコントローラ115cは、外部メモリ116へのアクセスを制御する。ここで、外部メモリ116は、例えばハードディスク(HD)やフレキシブルディスク(FD)等で構成され、ブートプログラムや、各種のアプリケーションプログラム、編集ファイル、各種のデータや各種の情報等を記憶する。また、外部メモリ116は、オペレーティングシステム(以下、「OS」とする)や、CPU111に後述する各種の処理を実行させるためのプログラム、当該プログラムの制御に従った処理を行う際に使用する各種のテーブルや各種の検査結果情報等も記憶する。
The
通信I/Fコントローラ115dは、外部機器コントローラ170との通信を制御する。また、通信I/Fコントローラ115eは、照明装置コントローラ150との通信を制御する。画像入力コントローラ115fは、カメラ140と通信を行って、カメラ140から画像データの受信が可能に構成されている。ここで、画像入力コントローラ115fは、コントローラ上で演算処理が可能なハードウェアを搭載しているものであってもよい。なお、本実施形態では、カメラ140からの画像データの入力を前提に説明を行うが、画像ファイルを読み込んで入力する形態であってもよい。さらに、通信I/Fコントローラ115gは、ローカルエリアネットワーク(LAN)190等のネットワークに接続され、当該ネットワークに接続されている各種装置との通信を制御する。
The communication I /
次に、図3を用いて、画像入力コントローラ115fのハードウェア構成について説明する。図3に示す通り、画像入力コントローラ115fは、CPU(演算チップ)301、メモリコントローラ302、入力コントローラ303、オンボードメモリ304を備えている。
Next, the hardware configuration of the
CPU(演算チップ)301は、後述する各種の画像処理を実行する。メモリコントローラ302はCPU(演算チップ)301の制御に従って、オンボードメモリ304への各種データの入出力を制御する。入力コントローラ303はカメラ140からの画像データの入力を制御する。オンボードメモリ304はCPU(演算チップ)301の主記憶として機能する。以上が、画像入力コントローラ115fのハードウェア構成の説明である。
A CPU (arithmetic chip) 301 executes various image processing described later. The
次に、情報処理装置110の機能構成の一例について説明する。図4は、図1に示す情報処理装置110の機能構成の一例を示す模式図である。
Next, an example of a functional configuration of the
情報処理装置110には、図4に示すように、テーブル記憶部410、フロー作成部420、ソースコード変換部430、コンパイル部440、(検証)実行部450、データ保存部460、及び、データ入力・出力部470の各機能構成が構成される。また、テーブル記憶部410には、モジュール・ソースコードマスタテーブル411、処理フロー・入出力パラメータテーブル412、ソースコードテーブル413、オブジェクトコードテーブル414、及びプロジェクトファイルテーブル415が記憶されている。また、条件式テーブル416、ノード処理フラグテーブル417、及び、処理フローメインテーブル418、システム情報テーブル418も記憶されている。
As shown in FIG. 4, the
ここで、本実施形態においては、図4のテーブル記憶部410が、例えば図2に示す外部メモリ116に構成される(一旦、RAM112に構成された後に外部メモリ116に構成される場合も含む)。また、図4のフロー作成部420、ソースコード変換部430、コンパイル部440、(検証)実行部450、データ保存部460及びデータ入力・出力部470が、例えば図2に示すCPU111と、ROM113或いは外部メモリ116に記憶されているプログラムと、から構成される。
Here, in the present embodiment, the
図5を参照して、図4のテーブル記憶部410に記憶されるモジュール・ソースコードマスタテーブル411について説明する。図5はモジュール・ソースコードマスタテーブル411の構成の一例を示す模式図である。
The module / source code master table 411 stored in the
図5に示すように、モジュール・ソースコードマスタテーブル411には、インデックス(Index)501ごとに、画像処理に係る処理アイテム502と、各処理アイテムに対応するソースコード503、またその処理アイテムを実現するためのモジュールに対する初期値504と処理主体505が関連付けられている。このソースコードは、ソースコード変換部430で処理対象のモジュールをソースコードに変換する際に用いられるものである。
As shown in FIG. 5, in the module / source code master table 411, for each
次に、図6を参照して、図4のテーブル記憶部410に記憶される処理フロー・入出力パラメータテーブル412について説明する。図6は、図4に示す処理フロー・入出力パラメータテーブル412の構成の一例を示す模式図である。図6に示すように、処理フロー・入出力パラメータテーブル412は、インデックス(Index)601ごとに、画像処理に係るモジュール603と、各モジュール603の順序602と、各モジュール603のフロー登録名604と、各モジュール603における入力パラメータ605及び出力パラメータ606が関連付けられている。入力パラメータ605は、各モジュールで使用する各種のデータが格納される画像バッファや記憶領域等を示す。出力パラメータ606は、各モジュールが実行された際の結果画像バッファや各種の処理に用いた閾値等を記憶する記憶領域を示す。次ステップ607は、次に処理されるべきステップのインデックス(Index)601を示す。なお、この次ステップ607は、複数のインデックス(Index)を持つこともある。また、分岐参照608は、モジュール603に「反復処理」モジュール、「条件分岐処理」モジュールを設定した際に、各条件(ノード)が次にどのステップを処理するかを指定する条件式テーブルを示す。さらに、処理主体609は、各モジュールにおいて処理をCPU111と、画像入力コントローラ115fのCPU(演算チップ)301のどちらで行うかを示す項目である。
Next, the processing flow / input / output parameter table 412 stored in the
なお、図6に示す処理フロー・入出力パラメータテーブル412におけるインデックス(Index)601と、図4に示すモジュール・ソースコードマスタテーブル411におけるインデックス(Index)とは特に対応させていないが、相互に対応させて各テーブルを作成する形態であってもよい。なお、処理フロー・入出力パラメータテーブルT600において、インデックス(Index)601の2および3は反復処理、処理フロー・入出力パラメータテーブルT601のインデックス(Index)601の2から4は条件分岐処理の一例である。 The index (Index) 601 in the processing flow / input / output parameter table 412 shown in FIG. 6 and the index (Index) in the module / source code master table 411 shown in FIG. In this case, each table may be created. In the processing flow / input / output parameter table T600, 2 and 3 of the index (Index) 601 are examples of iterative processing, and 2 to 4 of the index (Index) 601 of the processing flow / input / output parameter table T601 are examples of conditional branch processing. is there.
ソースコードテーブル413は、処理フロー・入出力パラメータテーブル412に記憶されているモジュール603について、ソースコード変換部430でモジュール・ソースコードマスタテーブル411を用いてソースコードに変換し登録している、全てのモジュール或いは一部のモジュールにおけるソースコードを記憶する。
The source code table 413 converts all the
オブジェクトコードテーブル414は、ソースコードテーブル413に記憶されているソースコードをコンパイル部440で変換した、実行可能なモジュールであるオブジェクトコードを記憶する。プロジェクトファイルテーブル415は、画像処理に係る初期設定パラメータや、処理フローシーケンス、ソースコード、入出力パラメータ等を記憶する。また条件式テーブル416は、「条件分岐処理」モジュールが設定された際の、条件式等を記憶し、ノード処理フラグテーブル417は、「並列分岐処理」モジュールが設定された際の、呼び出し側のノード名等を記憶する。
The object code table 414 stores object code that is an executable module obtained by converting the source code stored in the source code table 413 by the compiling
続いて、図4のフロー作成部420、ソースコード変換部430、コンパイル部440、実行部450、データ保存部460、及び、データ入力・出力部470について説明する。
Next, the
フロー作成部420は、モジュール・ソースコードマスタテーブル411に含まれているモジュールの処理シーケンスを管理する処理フロー・入出力パラメータテーブル412の作成等と、処理フロー描画領域(後述する図11の1102)へのモジュールの描画を行う機能を有する。
The
ソースコード変換部430は、フロー作成部420により作成された処理フロー・入出力パラメータテーブル412に記憶されている各モジュールの処理データをモジュール・ソースコードマスタテーブル411と照合して、各モジュールをソースコードに変換し、ソースコードテーブル413に記憶する機能を有する。
The source
なお、図5及び図6に示すテーブルのモジュールには、画像に対する処理だけでなく、画像を取得するための事前処理や、処理結果を出力するための事後処理を含む外部機器に対する処理などを含めても勿論構わない。例えば、カメラ140の撮像条件を設定する制御指令や、照明装置160を制御するための照明装置コントローラ150への制御指令、或いは、ステージの移動などを制御するための外部機器コントローラ170への制御指令、LAN上に接続されたPCにデータを送信する等の制御指令を行うものであってもよい。
The table modules shown in FIGS. 5 and 6 include not only processing for images but also processing for external devices including pre-processing for acquiring images and post-processing for outputting processing results. But of course. For example, a control command for setting the imaging conditions of the
コンパイル部440は、ソースコードテーブル413に記憶されているソースコードから実行可能なオブジェクトコードを生成し、生成したオブジェクトコードをオブジェクトコードテーブル414に記憶する機能を有する。
The compiling
なお、コンパイル部440が行うコンパイルには、デバッグ・コンパイルとリリース・コンパイルの2つのタイプがある。ここで、本実施形態においては、処理フロー作成中には、ソースコードレベルでのステップ実行を可能とするデバッグ・コンパイルを行い、データ保存時には、オンラインで利用可能なファイルを生成するリリース・コンパイルを行う。この際、デバッグ・コンパイル及びリリース・コンパイルの両者は、同じ変換手法で生成されたソースコードを参照するものとする。 There are two types of compilation performed by the compiling unit 440: debug compilation and release compilation. Here, in this embodiment, during the process flow creation, debugging / compilation that enables step execution at the source code level is performed, and release / compilation that generates a file that can be used online is performed when data is saved. Do. At this time, both the debug compilation and the release compilation refer to the source code generated by the same conversion method.
(検証)実行部450は、コンパイル部440により作成されたオブジェクトコードテーブル414に記憶されているオブジェクトコードを実行し、結果画像表示領域(後述する図11の1103)と処理フロー・入出力パラメータテーブル412を更新する機能を有する。
The (verification)
データ保存部460は、例えば、RAM112にあるソースコードテーブル413、オブジェクトコードテーブル414及びプロジェクトファイルテーブル415を外部メモリ116に出力して、データの保存処理を行う。
For example, the
データ入力・出力部470は、各モジュールで使用する入出力パラメータを管理する機能を有する。
The data input /
次に、情報処理装置110によって実行される画像処理アプリケーションプログラム作成処理の処理手順について説明する。図7は、図1に示す情報処理装置110による画像処理プログラム作成処理の処理手順の一例を示すフローチャートである。本処理をCPU111に実行させるためのプログラムは外部メモリ116に記憶されており、本処理の実行要求を入力装置120より受け付けた場合に、CPU111は、当該プログラムをRAM112にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。
Next, a processing procedure of image processing application program creation processing executed by the
まず、図7のステップS101において、情報処理装置110のCPU111は、図34に示すシステム設定テーブルT3400のスタートアッププロジェクト名3402を参照し、起動モードを特定する。ここで、スタートアッププロジェクト3402には、既存のプロジェクト名、もしくは、「NULL」が設定されている。
First, in step S101 of FIG. 7, the
続いて、ステップS102に進むと、ステップS101で特定した起動モードが、スタートアップか否かを判断する。システム設定テーブルのスタートアッププロジェクト名3402に既存のプロジェクト名が設定されている場合には、CPU111は、スタートアップであると判断することになる。ステップS102で、CPU111が、起動モードがスタートアップであると判断した場合(S102/YES)、ステップS109の「オンライン検査」処理へ進む。一方、CPU111が、スタートアップでないと判断した場合(S102/NO)、ステップS103に進む。
Subsequently, when the process proceeds to step S102, it is determined whether or not the activation mode specified in step S101 is startup. If an existing project name is set in the
ステップS103において、情報処理装置110のCPU111は、例えば、入力装置120からの入力指示に基づいて、画像処理システム開発やシステム設定を行うためのメインメニューをディスプレイ装置130に表示する処理を行う。メインメニューは図8に示すようなものである。
In step S <b> 103, the
図8は、画像処理システム開発画面のメインメニュー800の一例を示す模式図である。 図8に示す画像処理システム開発画面のメインメニュー800には、ロジック(処理フロー)の新規作成、若しくは作成済みの処理フローの編集を行う「プロジェクト構築」メニュー801、「プロジェクト構築」メニュー801で作成した処理フローをオンライン検査モードで実行するための「オンライン検査」メニュー802、画像処理システム100において、カメラ140で画像を撮像する際の調整を行う「機器調整」メニュー803、「オンライン検査」メニュー802で読み出すプロジェクトの指定などを行う「システム設定」メニュー804、メインメニューを終了する「終了」メニュー805、「プロジェクト構築」メニュー801で作成済みのプロジェクトを編集する際に指定する「読み出しプロジェクト名」メニュー806が設けられている。
FIG. 8 is a schematic diagram showing an example of the
図7の説明に戻る。ステップS103のメインメニュー表示処理を終えると、CPU111は処理をステップS104に進める。そして、情報処理装置110のCPU111は、ステップS103で表示された画像処理システム開発画面のメインメニュー800上の各メニュー項目に対して、入力装置120からの入力指示があったか否かを判断する。
Returning to the description of FIG. When the main menu display process in step S103 is completed, the
ステップS104の判断の結果、入力装置120からメインメニュー800の各メニュー項目に対する入力指示がなかったと判断した場合には(ステップS104/NO)、入力装置120からの入力指示があるまで、ステップS104で待機する、一方、ステップ102の判断の結果、入力装置120からの入力指示あったと判断した場合には(ステップS104/YES)、ステップS105に進む。
As a result of the determination in step S104, when it is determined that there is no input instruction for each menu item of the
ステップS105に進むと、情報処理装置110のCPU111は、入力装置120からの入力指示に基づいて、選択された処理内容の判定処理を行う。このステップS105で判定される処理内容としては、本例では、「プロジェクト構築処理」、「オンライン検査処理」、「機器調整画面表示」、「システム設定画面表示」、「終了処理」、及び「読み出しプロジェクト名入力」である。なお、ここで挙げた処理内容は一例を示したものであり、その他のメニュー項目をメインメニューに追加し、そのメニュー項目に対応するその他の処理内容をステップS105で判定することも可能である。
In step S <b> 105, the
続いて、ステップS106において、情報処理装置110のCPU111は、ステップS105で判定した処理内容が、「プロジェクト構築処理」であるか否かを判断する。ステップS106の判断の結果、ステップS105で判定した処理内容が、「プロジェクト構築処理」であると判断した場合には(ステップS106/YES)、処理をステップS107に進める。
Subsequently, in step S106, the
ステップS107に進むと、情報処理装置110のCPU111は、「プロジェクト構築処理」を行う。この「プロジェクト構築処理」の詳細については、図11を用いて後述する。そして、ステップS107の処理が終了すると、ステップS104に戻り、入力装置120から次の入力指示があるまで待機する。
In step S107, the
一方、ステップS106の判断の結果、ステップS106で判定した処理内容が、「プロジェクト構築処理」ではないと判断した場合には(ステップS106/NO)、処理をステップS108に進める。 On the other hand, as a result of the determination in step S106, if it is determined that the processing content determined in step S106 is not “project construction processing” (step S106 / NO), the process proceeds to step S108.
ステップS108では、情報処理装置110のCPU111は、ステップS105で判定した処理内容が、「オンライン検査処理」であるか否かを判断する。
In step S108, the
ステップS108の判断の結果、ステップS105で判定した処理内容が、「オンライン検査処理」であると判断した場合には(ステップS108/YES)、CPU111は処理をステップS109に進める。
As a result of the determination in step S108, when it is determined that the processing content determined in step S105 is “online inspection processing” (step S108 / YES), the
ステップS109に進むと、情報処理装置110のCPU111は、「オンライン検査処理」処理を行う。この「オンライン検査処理」の詳細について、図35を用いて後述する。そして、ステップS109の処理が終了すると、ステップS104に戻り、入力装置120から次の入力指示があるまで待機する。
In step S109, the
一方、ステップS108の判断の結果、ステップS106で判定した処理内容が、「オンライン検査処理」ではないと判断した場合には(ステップS108/NO)、CPU111は、処理をステップS110に進める。
On the other hand, as a result of the determination in step S108, when it is determined that the processing content determined in step S106 is not “online inspection processing” (step S108 / NO), the
ステップS110に進むと、情報処理装置110のCPU111は、ステップS105で判定した処理内容が、「機器調整処理」であるか否かを判断する。
In step S110, the
ステップS110の判断の結果、ステップS105で判定した処理内容が、「機器調整処理」であると判定した場合には(ステップS110/YES)、CPU111は処理をステップS111に進める。
As a result of the determination in step S110, when it is determined that the processing content determined in step S105 is “device adjustment processing” (step S110 / YES), the
ステップS111では、情報処理装置110のCPU111は、「機器調整処理」を行う。この「機器調整処理」の詳細については、図26を用いて後述する。そして、ステップS111の処理が終了すると、ステップS104に戻り、入力装置120から次の入力指示があるまで待機する。
In step S <b> 111, the
一方、ステップS110の判断の結果、ステップS105で判定した処理内容が、「機器調整画面表示処理」ではないと判断した場合には(ステップS110/NO)、CPU111は、処理をステップS112に進める。
On the other hand, as a result of the determination in step S110, if it is determined that the processing content determined in step S105 is not “apparatus adjustment screen display processing” (step S110 / NO), the
ステップS112では、情報処理装置110のCPU111は、ステップS105で判定した処理内容が、「システム設定処理」であるか否かを判断する。
In step S112, the
ステップS112の判断の結果、ステップS105で判定した処理内容が、「システム設定処理」であると判断した場合には(ステップS112/YES)、CPU111は処理をステップS113に進める。
As a result of the determination in step S112, if it is determined that the processing content determined in step S105 is “system setting processing” (step S112 / YES), the
ステップS113では、情報処理装置110のCPU111は、「システム設定処理」を行う。そして、ステップS113の処理が終了すると、ステップS104に戻り、入力装置120から次の入力指示があるまで待機する。
In step S113, the
一方、ステップS112の判断の結果、ステップS105で判定した処理内容が、「システム設定処理」ではないと判断した場合には(ステップS112/NO)、CPU111は、処理をステップS114に進める。
On the other hand, as a result of the determination in step S112, if it is determined that the processing content determined in step S105 is not “system setting processing” (step S112 / NO), the
ステップS114では、情報処理装置110のCPU111は、ステップS105で判定した処理内容が、「終了処理」であるか否かを判断する。
In step S114, the
ステップS114の判断の結果、ステップS105で判定した処理内容が、「終了処理」であると判断した場合には(ステップS114/YES)、本プログラムによる処理を終了する。 As a result of the determination in step S114, when it is determined that the processing content determined in step S105 is “end processing” (step S114 / YES), the processing by this program is ended.
一方、ステップS114の判断の結果、ステップS106で判定した処理内容が、「終了処理」ではないと判断した場合には(ステップS114/NO)、処理をステップS104に進め、入力装置120から次の入力指示があるまで待機する。
On the other hand, as a result of the determination in step S114, if it is determined that the processing content determined in step S106 is not “end processing” (step S114 / NO), the process proceeds to step S104, and the
次に、図10を参照して図7のステップS107の「プロジェクト構築処理」の詳細について説明する。図10は、情報処理装置110のCPU111によって行われる、「プロジェクト構築処理」の処理手順の一例を示すフローチャートである。本処理をCPU111に実行させるためのプログラムは外部メモリ116に記憶されており、本処理の実行要求を入力装置120より受け付けた場合に、CPU111は、当該プログラムをRAM112にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。
Next, the details of the “project construction process” in step S107 of FIG. 7 will be described with reference to FIG. FIG. 10 is a flowchart illustrating an example of a process procedure of “project construction process” performed by the
まず、ステップS201において、情報処理装置110のCPU111は、例えば、入力装置120からの入力指示に基づいて、図11に示す画像処理システムの開発を行うための画像処理プロジェクト開発画面1100をディスプレイ装置130に表示する処理を行う。
First, in step S <b> 201, the
図11は、画像処理プロジェクト開発画面1100の一例を示す模式図である。図11に示す画像処理プロジェクト開発画面1100には、利用可能な処理ユニット(即ち、「カメラ取込」等の画像処理に係る各モジュール)を表示するツールボックス1101と、画像処理の実行順序(即ち、各モジュールの実行順序)をフローチャートで描画する処理フロー描画領域1102と、各画像処理(即ち、各モジュールの処理)で実行した結果画像を表示する結果画像表示領域1103と、ツールバー1107や、画像処理プログラムの開発を終了する際に操作される不図示の閉じるボタン等も設けられている。また、図11に示す画像処理プロジェクト開発画面1100には、例えば、新規モジュールの登録時もしくはパラメータの編集時等に、処理フロー描画領域1102のフローチャートの各ステップ(即ち、各モジュール)で利用するパラメータを設定するパラメータ編集画面1104と、そのパラメータの設定で実行された結果画像を表示する結果画像表示領域1103が表示される。図11の、プロジェクト構築画面の例では、分岐処理によるフローを制御するモジュールも含んでいる。ここで、結果画像表示領域1103は、フロー描画領域1102の各モジュールの結果画像である。これは、プレビュー画像や縮小画像であってもよい。条件分岐処理の場合には、条件を満たしたノード(枝)の画像を表示し、条件を満たさないノードについては処理が行われないのでブラックアウトした画像を表示する。このとき、すべての処理フローの結果が結果画像表示領域1103に収まらない場合は、水平・垂直方向のスクロールバーを用いて表示領域を変更することとしてもよい。以上が、画像処理プロジェクト開発画面の構成の一例の説明である。
FIG. 11 is a schematic diagram illustrating an example of the image processing
図11の説明に戻る。ステップS201の処理が終了すると、CPU111は処理をステップS202に進める。ステップS202では、情報処理装置110のCPU111は、入力装置120からの入力指示に基づいて、ステップS201で表示された画像処理プロジェクト開発画面1100を用いて新規に画像処理プログラムを開発するか否かを判断する。
Returning to the description of FIG. When the process of step S201 ends, the
ステップS202の判断の結果、新規に画像処理プログラムを開発しない場合、即ち既に作成している画像処理フローの編集を行う場合には(ステップS202/NO)、ステップS203に進む。 As a result of the determination in step S202, when a new image processing program is not developed, that is, when editing an already created image processing flow (step S202 / NO), the process proceeds to step S203.
ステップS203に進むと、情報処理装置110のCPU111は、外部メモリ116に保存されているプロジェクトファイルテーブル415を読み出して、これをRAM112に記憶する。
In
ステップS203の処理が終了後、或いは、ステップS202で新規に画像処理プログラムを開発すると判断された場合には(ステップS202/YES)、CPU111は処理をステップS204に進める。
After the process of step S203 is completed, or when it is determined in step S202 that a new image processing program is to be developed (step S202 / YES), the
ステップS204では、情報処理装置110のCPU111は、入力装置120からの入力指示(具体的には、ステップS201で表示された画像処理プロジェクト開発画面1100に対する入力指示)があったか否かを判断する。
In step S204, the
ステップS204の判断の結果、入力装置120からの入力指示を受け付けていないと判断した場合には(ステップS204/NO)、入力装置120からの入力指示があるまで、ステップS204で待機する。一方、ステップS204の判断の結果、入力装置120からの入力指示を受け付けた(入力あり)と判断した場合には(ステップS204/YES)、処理をステップS205に進める。
As a result of the determination in step S204, if it is determined that an input instruction from the
ステップS205に進むと、情報処理装置110のCPU111は、入力装置120から受け付けた入力指示に基づいて、選択された処理内容の判定処理を行う。このステップS205で判定される処理内容としては、本例では、「新規追加処理」、「変更処理」、「移動処理」、「挿入処理」、「削除処理」、「全体実行処理」、「保存処理」である。なお、ここで挙げた処理内容は一例を示したものであり、その他の処理内容をステップS205で判定することも勿論可能である。
In step S205, the
ここで、ステップS205の判定処理では、CPU111は、例えば、図11に示す画像処理プロジェクト開発画面1100において以下の入力がなされることによって、上述した各処理を判定するようにしている。
Here, in the determination process of step S205, the
まず、図11に示すツールボックス1101からいずれかの処理アイテム(モジュール)が選択され、処理フロー描画領域1102の処理フローシーケンスの最後尾にドラッグ&ドロップされると、情報処理装置110のCPU111は、モジュールの「新規追加処理」のイベントであると判定する。また、処理フロー描画領域1102に既に登録されているモジュールがダブルクリックされる、若しくはあるモジュールを指定して不図示のポップアップメニューを表示させ、パラメータ変更メニュー項目が選択(クリック指示)されると、情報処理装置110のCPU111は、モジュールのパラメータの「変更処理」のイベントであると判定する。また、処理フロー描画領域1102に既に登録されているモジュールが他のモジュールの間にドラッグ&ドロップされると、情報処理装置110のCPU111は、モジュールの「移動処理」のイベントであると判定する。また、図11に示すツールボックス1101からモジュールが選択され、処理フロー描画領域1102に既に登録されているモジュールの間にドラッグ&ドロップされると、情報処理装置110のCPU111は、モジュールの「挿入処理」のイベントであると判定する。また、処理フロー描画領域1102に既に登録されているモジュールを選択し、削除キーが押下される、若しくはあるモジュールを指定して不図示のポップアップメニューを表示させ、削除メニュー項目が選択(クリック指示)されると、情報処理装置110のCPU111は、モジュールの「削除処理」のイベントであると判断する。また、メニューバー1106もしくはツールバー1107の「実行」が選択されると、情報処理装置110のCPU111は、処理フロー描画領域1102に設定された処理フローの「全体実行処理」のイベントであると判定する。また、ツールバー1107の「保存」が選択されると、情報処理装置110のCPU111は、処理フロー描画領域1102に設定された処理フローの「保存処理」のイベントであると判定する。
First, when any process item (module) is selected from the tool box 1101 shown in FIG. 11 and dragged and dropped to the end of the process flow sequence in the process
なお、本実施形態ではこのようにして処理内容の判定を行うようにしているが、これは一例であり、例えばツールバー1107に「新規追加」などの処理内容に応じたアイコン等の機能を設けてもよく、上述した形態に限定されるものではない。
In this embodiment, the processing content is determined in this way. However, this is an example. For example, the
続いて、ステップS206において、情報処理装置110のCPU111は、ステップS205で判定した処理内容が、モジュールの「新規追加処理」であるか否かを判断する。ステップS206の判断処理で、ステップS205で判定した処理内容が、モジュールの「新規追加処理」であると判断した場合には(ステップS206/YES)、CPU111は処理をステップS207に進める。
Subsequently, in step S <b> 206, the
ステップS207では、情報処理装置110のCPU111は、選択されたモジュールの「新規追加処理」を行う。このステップS207の新規追加処理の詳細については、図12を用いて後述する。そして、ステップS207の処理が終了すると、ステップS204に戻り、入力装置120から次の入力指示があるまで待機する。
In step S207, the
一方、ステップS206の判断処理、ステップS205で判定した処理内容が、モジュールの「新規追加処理」ではないと判断した場合には(ステップS206/NO)、CPU111は処理をステップS208に進める。
On the other hand, if it is determined that the determination processing in step S206 and the processing content determined in step S205 are not the “new addition processing” of the module (step S206 / NO), the
ステップS208では、情報処理装置110のCPU111は、ステップS205で判定した処理内容が、モジュールのパラメータの「変更処理」であるか否かを判断する。ステップS208の判断処理で、ステップS205で判定した処理内容が、モジュールのパラメータの「変更処理」であると判断した場合には(ステップS208/YES)、処理をステップS209に進める。
In step S208, the
ステップS209では、情報処理装置110のCPU111は、選択されたモジュールのパラメータの「変更処理」を行う。このステップS209の変更処理の詳細については、図13を用いて後述する。そして、ステップS209の処理が終了すると、ステップS204に戻り、入力装置120から次の入力指示があるまで待機する。
In step S209, the
一方、ステップS208の判断処理で、ステップS205で判定した処理内容が、モジュールのパラメータの「変更処理」ではないと判断した場合には(ステップS208/NO)、CPU111はステップS210に進める。ステップS210では、情報処理装置110のCPU111は、ステップS205で判定した処理内容が、モジュールの「移動処理」であるか否かを判断する。
On the other hand, if it is determined in step S208 that the processing content determined in step S205 is not a “parameter change processing” for the module parameter (step S208 / NO), the
ステップS210の判断処理で、ステップS205で判定した処理内容が、モジュールの「移動処理」であると判断した場合には(ステップS210/YES)、ステップS211に進む。 If it is determined in step S210 that the processing content determined in step S205 is a “movement process” of the module (step S210 / YES), the process proceeds to step S211.
ステップS211では、情報処理装置110のCPU111は、選択されたモジュールの「移動処理」を行う。このステップS211の移動処理の詳細については、図15を用いて後述する。そして、ステップS211の処理が終了すると、ステップS204に戻り、入力装置120から次の入力指示があるまで待機する。
In step S <b> 211, the
一方、ステップS210の判断処理で、ステップS205で判定した処理内容が、モジュールの「移動処理」ではないと判断した場合には(ステップS210/NO)、ステップS212に進む。ステップS212に進むと、情報処理装置110のCPU111は、ステップS205で判定した処理内容が、モジュールの「挿入処理」であるか否かを判断する。
On the other hand, if it is determined in step S210 that the processing content determined in step S205 is not the “movement processing” of the module (step S210 / NO), the process proceeds to step S212. In step S212, the
ステップS212の判断処理で、ステップS205で判定した処理内容が、モジュールの「挿入処理」であると判断した場合には(ステップS212/YES)、処理をステップS213に進める。 If it is determined in step S212 that the processing content determined in step S205 is “insertion processing” of the module (step S212 / YES), the process proceeds to step S213.
ステップS213では、情報処理装置110のCPU111は、選択されたモジュールの「挿入処理」を行う。ステップS213の挿入処理の詳細については、図16を用いて後述する。そして、ステップS213の処理が終了すると、ステップS204に戻り、入力装置120から次の入力指示があるまで待機する。
In step S213, the
一方、ステップS212の判断処理で、ステップS205で判定した処理内容が、モジュールの「挿入処理」ではないと判断した場合には(ステップS212/NO)、CPU111は、処理をステップS214に進める。
On the other hand, when it is determined in step S212 that the processing content determined in step S205 is not the “insertion processing” of the module (step S212 / NO), the
ステップS214では、情報処理装置110のCPU111は、ステップS205で判定した処理内容が、モジュールの「削除処理」であるか否かを判断する。ステップS214の判断処理で、ステップS205で判定した処理内容が、モジュールの「削除処理」であると判断した場合には(ステップS214/YES)、処理をステップS215に進める。
In step S214, the
ステップS215では、情報処理装置110のCPU111は、選択されたモジュールの「削除処理」を行う。ステップS215の削除処理の詳細については、図17を用いて後述する。そして、ステップS215の処理が終了すると、ステップS204に戻り、操作入力装置120から次の入力指示があるまで待機する。
In step S215, the
一方、ステップS214の判断処理で、ステップS205で判定した処理内容が、モジュールの「挿入処理」ではないと判断した場合には(ステップS214/NO)、CPU111は、処理をステップS216に進める。
On the other hand, if it is determined in step S214 that the processing content determined in step S205 is not the “insertion processing” of the module (step S214 / NO), the
ステップS216では、情報処理装置110のCPU111は、ステップS205で判定した処理内容が、処理フローの「実行処理」であるか否かを判断する。ステップS216の判断処理で、ステップS205で判定した処理内容が、処理フローの「実行処理」であると判断した場合には(ステップS216/YES)、CPU111は、処理をステップS217に進める。
In step S216, the
ステップS217では、情報処理装置110のCPU111は、処理フロー描画領域1102に設定された処理フローの「実行処理」を行う。ステップS217の実行処理の詳細については、図18を用いて後述する。そして、ステップS217の処理が終了すると、ステップS204に戻り、入力装置120から次の入力指示があるまで待機する。
In step S <b> 217, the
一方、ステップS216の判断処理で、ステップS205で判定した処理内容が、処理フローの「実行処理」ではないと判断した場合には(ステップS216/NO)、CPU111は、処理をステップS218に進める。
On the other hand, if it is determined in step S216 that the processing content determined in step S205 is not “execution processing” in the processing flow (step S216 / NO), the
ステップS218では、情報処理装置110のCPU111は、ステップS205で判定した処理内容が、処理フローの「保存処理」であるか否かを判断する。ステップS218の判断処理で、ステップS205で判定した処理内容が、処理フローの「保存処理」であると判断した場合には(ステップS218/YES)、CPU111は、処理をステップS219に進める。
In step S218, the
ステップS219では、情報処理装置110のCPU111は、画像処理プロジェクト開発画面1100で設定された内容の、「保存処理」を行う。そして、ステップS219の処理が終了すると、画像処理プロジェクト開発画面1100を終了する。
In
一方、ステップS218の判断処理で、ステップS205で判定した処理内容が、処理フローの「保存処理」でないと判断した場合には(ステップS218/NO)、ステップS204に戻り、操作入力装置120から入力指示があるまで待機する。
On the other hand, if it is determined in step S218 that the processing content determined in step S205 is not “save processing” in the processing flow (step S218 / NO), the process returns to step S204 and input from the
次に、図12を参照して、モジュールの「新規追加処理」の詳細を説明する。図12は、図10のステップS207のモジュールの「新規追加処理」の詳細を示すフローチャートである。本処理をCPU111に実行させるためのプログラムは外部メモリ116に記憶されており、本処理の実行要求を入力装置120より受け付けた場合に、CPU111は、当該プログラムをRAM112にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。
Next, details of the “new addition process” of the module will be described with reference to FIG. FIG. 12 is a flowchart showing details of the “new addition process” of the module in step S207 of FIG. A program for causing the
まず、図12のステップS301の処理では、情報処理装置110のCPU111は、図11の画像処理プロジェクト開発画面1100のツールバー1107で、選択された処理の特定を行う。ここで、本発明では、「入力モード」と「処理モード」の判定が行えるものとする。
First, in the process of step S301 in FIG. 12, the
ステップ302では、CPU111は、ステップS301で特定したモードが、「入力モード」か「処理モード」かの判定を行う。画像処理を画像入力コントローラ115fのCPU301に行わせる場合には「入力モード」、情報処理装置110のCPU111に行わせる場合には「処理モード」と判定される。ステップS302の判定処理の結果、ステップS301で特定した処理内容が、「入力モード」であると判定した場合には(ステップS302/YES)、CPU111は、処理をステップS303に進める。
In
ステップS303では、CPU111は外部メモリ116に記憶されている、入力モード用モジュールをRAM112のソースコードマスタテーブル411aに読み出す。処理完了後、処理をステップS405に進める。
In step S <b> 303, the
一方、ステップS302の判定処理で、ステップS301で特定した処理内容が、「処理モード」であると判定した場合(ステップS302/NO)、CPU111は、処理をステップS304に進める。
On the other hand, when it is determined in the determination process of step S302 that the processing content specified in step S301 is “processing mode” (step S302 / NO), the
ステップS304では、CPU111は、外部メモリ116に記憶されている、処理モード用モジュールをRAM112のソースコードマスタテーブル411bに読み出す。処理完了後、処理をステップS405に進める。
In step S <b> 304, the
ステップS303、若しくはステップS304の処理が終了後、ステップS305において、情報処理装置110のCPU111は、RAM112に読み出されたソースコードマスタテーブル411a(入力モード用モジュール)若しくはソースコードマスタテーブル411b(処理モード用モジュール)を、ディスプレイ装置130に選択可能なモジュールメニューとして表示する。
After step S303 or step S304 is completed, in step S305, the
その後、ステップS306では、情報処理装置110のCPU111は、ステップS305で選択したモジュールを特定する。そして、ステップS307の処理では、ステップS306で特定したモジュールが、反復処理か条件分岐処理のモジュールであるか否かを判断する。この判断処理では、ステップS306で特定されたモジュールが、反復処理か条件分岐処理かのモジュールの場合、YESという判断を、それ以外のモジュールである場合にはNOという判断をCPU111は行うことになる。
Thereafter, in step S306, the
ステップS307の判断処理で、反復・条件分岐処理モジュールではないと判断した場合(ステップS307でNO)、処理をステップS308に進め、情報処理装置110のCPU111(例えばフロー作成部420)は、ステップS306の処理で得られた情報を、処理フロー・入出力パラメータテーブル412に1レコードとして追加する処理を行う。
If it is determined in step S307 that the module is not an iterative / conditional branch processing module (NO in step S307), the process proceeds to step S308, and the CPU 111 (for example, the flow creation unit 420) of the
ここで、図6に示す処理フロー・入出力パラメータテーブル412に、「二値化」のモジュールに関するレコードを追加する場合について説明する。 Here, a case where a record relating to the “binarization” module is added to the processing flow / input / output parameter table 412 shown in FIG. 6 will be described.
この場合、インデックス(Index)601として「1」が設定され、また、他の処理が設定されていない場合には、順序602として「1」が設定され、モジュール603として「二値化」が設定される。また、フロー登録名604としてユーザが指定した値(例えば「UI00001」)が設定される。また、例えば、出力パラメータ606として、結果画像の格納先である「画像バッファB」の情報(アドレス等)が設定される。ここで「二値化」処理は、処理フローの第1番目のモジュールであるが、当然それ以前に画像取り込み処理が実行されているため、入力パラメータ605には、画像バッファの情報(アドレス等)として「画像バッファA」が設定されている。「二値化」処理モジュールは入力パラメータとして設定されている画像バッファAに入力される画像データに対して二値化処理を行い、その結果を出力パラメータとして設定されている画像バッファBに格納する。その際に、二値化を行う際に白画素する若しくは黒画素するという判断を行うために閾値とした値を閾値に出力する。
In this case, “1” is set as the
図12の説明に戻る。ステップS308の処理が終了すると、CPU111は処理をステップS309に進め、あらかじめモジュール・ソースコードマスターテーブル411の処理主体フィールド505に指定されている値をもとに、CPU111は処理主体がCPUであるか、それとも画像入力コントローラのCPU(演算チップ)301であるかを判定する。
Returning to the description of FIG. When the processing of step S308 ends, the
ステップS309の判定処理で、CPU111がYESと判定した(画像入力コントローラのCPUにより処理する)場合には、処理フロー・入出力パラメータテーブル(図6)の当該処理を示すレコードの処理主体フィールドに「0」を設定する(ステップS310)。一方、ステップS309NOと判定した(情報処理装置のCPUにより処理する)場合には、「1」を設定する(ステップS311)。このとき、ステップS301で判定した処理モードが、「入力モード」である場合には、処理主体は画像入力コントローラ115fのCPU(演算チップ)301であるため、処理主体フィールドに「0」が、一方、「処理モード」である場合には、処理主体は、プログラムを実行する情報処理装置110のCPU111とするので「1」が設定される。尚、この処理モードはユーザの指定に基づき設定させるようにしても勿論構わない。
If the
ステップS310若しくはステップS311の処理が終了後、CPU111は処理をステップS312に進め、ステップS306で特定されたモジュールが、「イベントセット」処理であるか否かを判断する。
After the process of step S310 or step S311 is completed, the
ステップS312で「イベントセット」処理(YES)と判断されると、ステップS313に進む、一方、NOと判断されると、ステップS314に進む。 If it is determined in step S312 that the “event set” process (YES), the process proceeds to step S313, whereas if NO, the process proceeds to step S314.
ステップS313では、CPU111は、処理フロー・入出力パラメータテーブルT600中の当該処理を示すレコードのイベント参照フィールド610に、当該イベントセット処理で発行するイベント情報を設定する。尚、イベント情報については、不図示の参照イベント情報入力画面で入力された値をイベント情報として取得し、次に説明するノード処理フラグテーブルの値をこのイベント参照フィールド610に設定することになる
また、イベント処理(並列分岐処理)の詳細な手順の一例を図25に、ボード処理フラグテーブルの一例を図29に示す。
In step S313, the
図25に、並列処理を実行する際の、処理手順の詳細について説明する。ここで、ステップS1102a及びステップS1102bは、「コード認識」処理と「欠陥検査」処理を並列分岐処理で行う場合の一例を示す。 FIG. 25 describes the details of the processing procedure when executing parallel processing. Here, step S1102a and step S1102b show an example in the case where the “code recognition” process and the “defect inspection” process are performed by a parallel branch process.
ステップS1101では、並列分岐モジュールが登録(挿入)された前ステップの結果を各ノードの次ステップへ割り振るための前処理やノード処理フラグテーブルの作成などを行う。図29は、ノード処理フラグテーブルT2900の一例である。 In step S1101, preprocessing for allocating the result of the previous step in which the parallel branch module is registered (inserted) to the next step of each node, creation of a node processing flag table, and the like are performed. FIG. 29 is an example of the node processing flag table T2900.
ステップS1101に戻るが、ノード処理フラグテーブルT2900をRAM112上に新規に作成する。あわせて並列で処理するノード数のコードを追加する。その後、各インデックス(Index)2901のノード名に「NODEx」、終了フラグに「0」を登録する。また、並列分岐処理として1レコードが登録(挿入)された処理フロー・入出力パラメータテーブルの分岐参照に、ノード処理フラグテーブルT2900を設定する。なお、終了フラグに登録する値の一例として、完了を「1」とし、未完了を「0」とする。
Returning to step S1101, a node processing flag table T2900 is newly created on the
ステップS1102aでは、処理フロー・入出力パラメータテーブルに登録されている処理モジュール(ここではコード認識処理)を実行する。続いて、ステップS1103aでは、情報処理装置110のCPU111は、RAM112上のノード処理フラグテーブルT2900の終了フラグを「1」と設定する。
In step S1102a, a processing module (code recognition processing in this case) registered in the processing flow / input / output parameter table is executed. Subsequently, in step S1103a, the
同様に、ステップS1102aが開始されると同時に、ノード(枝)2において、ステップS1102b(欠陥検査処理)からS1103bの処理を順次実行し、ノード処理フラグテーブルT2900に終了フラグを更新する。ノード(枝)が3つ以上となる場合も、同様の手順で処理を行う。 Similarly, simultaneously with the start of step S1102a, the node (branch) 2 sequentially executes the processing from step S1102b (defect inspection processing) to S1103b, and updates the end flag in the node processing flag table T2900. When there are three or more nodes (branches), the same procedure is performed.
次に、ステップS1104では、情報処理装置110のCPU111は、ノード処理フラグテーブルT2900の終了フラグを調べ、すべてのノードの処理が完了しているかの判定処理を行う。
Next, in step S1104, the
ステップS1104の判断の結果、ステップS1105で判定した処理内容が、「完了」である場合には(ステップS1105/YES)、並列分岐処理を終了し、処理フローのステップに戻る。一方、「完了」でない場合には(ステップS1105/NO)、ステップS1104に戻り、実行中のすべてのノードが完了するのを待機する。つまりこの処理により各ノードの処理を同期することになり、その後の処理タイミングを揃えることが可能となる。以上が並列分岐処理の実行手順である。 As a result of the determination in step S1104, when the processing content determined in step S1105 is “complete” (step S1105 / YES), the parallel branch processing is terminated and the processing flow is returned to the step. On the other hand, when it is not “completed” (step S1105 / NO), the process returns to step S1104 and waits for all of the executing nodes to be completed. That is, the processing of each node is synchronized by this processing, and the subsequent processing timing can be made uniform. The above is the execution procedure of the parallel branch processing.
ステップS314では、情報処理装置110のCPU111は、ステップS306で特定されたモジュールが、「イベント待機」処理であるか否かを判断する。ステップS314の判断処理で「イベント待機」処理(YES)と判断した場合には、CPU111は処理をステップS315に進める。一方、NOと判断した場合には、処理をステップS318に進める。
In step S314, the
ステップS315では、処理フロー・入出力パラメータテーブルT600中の当該処理を示すレコードのイベント参照フィールド610に、ステップS313で設定した当該イベントセット処理で発行するイベント情報を設定する。尚、イベント情報については、不図示の待機イベント情報入力画面の待機イベント入力フィールドに入力された値をCPU111はイベント情報として取得し、ステップS313で設定した値(テーブル名等)をイベント情報に設定することになる。
In step S315, event information issued in the event set process set in step S313 is set in the
ステップS316では、関連付ける処理フロー(ロジック)が、すでに表示されているか否かを判断する。ステップS316の判断処理で、すでに表示されていると判断した場合には、CPU111はステップ318に進める。一方、まだ表示されていないと判断した場合には、処理をステップS317へ進め、当該関連処理フローを画面表示する。なお、待機すると設定されたイベントを発行するイベントセット処理が他の何れの処理フローに設定されていない場合(すなわち、そのフローの処理を示す処理フロー・入出力パラメータテーブルがない場合)には、関連処理フローの表示は行わない。
In step S316, it is determined whether or not the associated processing flow (logic) has already been displayed. If it is determined in step S316 that the image has already been displayed, the
ステップS316でNOと判断した場合、若しくはステップS317の処理終了後、CPU111は処理をステップS318に進め、情報処理装置110のCPU111(例えばフロー作成部420)は、ステップS306で特定したモジュールを処理フロー描画領域1102に追加して描画(表示)する。なお、本実施形態においては、ステップS308の処理フロー・入出力パラメータテーブル412に関する処理を、ステップS318の処理フロー描画領域1102の描画処理との処理の後に行っても構わない。
If NO is determined in step S316 or after the process of step S317 is completed, the
その後、ステップS319では、ステップS306で特定されたモジュールが並列分岐処理のモジュールであるかを判断する。並列分岐処理ではない(ステップS319でNO)と判断した場合、処理をステップS320に進める。 Thereafter, in step S319, it is determined whether the module identified in step S306 is a module for parallel branch processing. If it is determined that it is not a parallel branch process (NO in step S319), the process proceeds to step S320.
ステップS320では、情報処理装置110のCPU111(例えばソースコード変換部430)は、ステップS317で処理フロー描画領域1102に追加したモジュールを、モジュール・ソースコードマスタテーブル411を用いてソースコードに変換し、変換により得られたソースコードをソースコードテーブル413に記憶する。この際、情報処理装置110のCPU111(例えばソースコード変換部430)は、モジュール・ソースコードマスタテーブル411から読み出したソースコードに対してパラメータを反映させる等の修正を行って、得られたソースコードをソースコードテーブル413に記憶する。
In step S320, the CPU 111 (for example, the source code conversion unit 430) of the
ステップS307において、ステップS306で特定したモジュールが「反復・分岐処理」と判断した場合には、CPU111は処理をステップS321に進め、「分岐処理モジュール登録」処理を行う。「分岐処理モジュール登録」処理については、図22で詳細を説明する。
If it is determined in step S307 that the module identified in step S306 is “repetition / branch processing”, the
ステップS321が終了すると、ステップS322へ進み、情報処理装置110のCPU111(例えばフロー作成部420)は、ステップS306で特定したモジュールを処理フロー描画領域1102に追加して描画(表示)する。以上が、図10のステップS207のモジュールの「新規追加処理」の詳細な説明である。
When step S321 ends, the process proceeds to step S322, and the CPU 111 (for example, the flow creation unit 420) of the
次に、「分岐処理」や「反復処理」における詳細な処理条件などを登録する条件式テーブルT2100について図21を用いて説明する。 Next, a conditional expression table T2100 for registering detailed processing conditions in “branch processing” and “iterative processing” will be described with reference to FIG.
図21は条件式テーブルT2100の一例であり、インデックス(Index)2101、条件式2104、閾値1(2105)及び閾値2(2106)、次ステップ2107を登録する。なお、この条件式テーブルT2100は、「分岐処理」モジュール、「反復処理」モジュール1つに1つに対してテーブルを1つ作成する。
FIG. 21 shows an example of the conditional expression table T2100. An
特徴量2103は、結果を比較する際に用いる特徴量、例えば、マッチングの検出個数や粒子解析の粒子数などを登録する。また条件式列2104には、Greater
/ GreaterOrEqual
/Equal / LessOrEqual / Less / InRange / OutRangeなどが、閾値1列2105及び閾値2列2106には、特徴量と比較する値を登録する。次ステップ列2107には、条件ごとに次に行うステップ(処理フロー・入出力パラメータテーブルのインデックス(Index)1801)を設定する。複数の条件がある場合には、条件式テーブルT2100の行数を追加して対応する。
The
/ GreaterOrEqual
/ Equal / LessOrEqual / Less / InRange / OutRange and the like, the
次に、図22を参照して、図12のステップS321の「分岐処理モジュール登録」処理の詳細について説明する。図22は図12のステップS321の分岐処理モジュール登録処理の詳細を示すフローチャートである。本処理をCPU111に実行させるためのプログラムは外部メモリ116に記憶されており、本処理の実行要求を入力装置120より受け付けた場合に、CPU111は、当該プログラムをRAM112にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。
Next, the details of the “branch processing module registration” process in step S321 of FIG. 12 will be described with reference to FIG. FIG. 22 is a flowchart showing details of the branch processing module registration processing in step S321 of FIG. A program for causing the
まず、ステップS1001で、CPU111は、処理フロー・入出力パラメータテーブルT600のインデックス(Index)601の1および2、さらに、登録対象のモジュールに対して出力パラメータ1806を元に、選択可能な特徴量の種類を取得する。取得した特徴量の種類をRAM112に記憶する。
First, in step S1001, the
ステップS1002では、条件式入力画面を表示する。図20は、条件式入力画面の一例であり、特徴量を指定する特徴量リストボックスや、判断するための条件を設定するための条件式および閾値入力ボックスを有する。特徴量リストボックスはこの後の判断処理に対してとり得る特徴量を選択可能にリスト表示している。 In step S1002, a conditional expression input screen is displayed. FIG. 20 is an example of a conditional expression input screen, which includes a feature quantity list box for specifying a feature quantity, and a conditional expression and a threshold value input box for setting conditions for determination. The feature amount list box displays a list of selectable feature amounts for subsequent determination processing.
ステップS1003では、条件式入力画面の所定の項目に対して、入力装置120から値が入力されたか否かを判断する。ステップS1003で、入力装置120から入力がない(ステップS1003/NO)の場合、入力待ちとする。一方、ステップS903において、入力装置120から入力があった(ステップS1003/YES)場合、ステップS1004へ進む。
In step S1003, it is determined whether or not a value is input from the
ステップS1004では、情報処理装置110のCPU111は、ステップS1003で入力された値が妥当か否かの判断をする。ここで判断する項目としては、モジュールごとにあらかじめ設定された条件式入力画面の下限値、および上限値に入力された数値や文字列である。
In step S1004, the
ステップS1005では、ステップS1004で特定した値が正しいか否かを判定する。ステップS1005にて判定した結果、値が正しくないと判断した(ステップS1005/NO)場合は、入力装置120からの入力待ちとする。一方、値が正しいと判断した(ステップS1005/YES)場合、ステップS1006に進む。
In step S1005, it is determined whether or not the value specified in step S1004 is correct. As a result of the determination in step S1005, when it is determined that the value is not correct (step S1005 / NO), the process waits for input from the
ステップS1006では、情報処理装置110のCPU111(例えばフロー作成部420)は、入力装置120からの入力指示に基づいて、条件式入力画面2000で編集されたパラメータを登録するか否かを判断する。具体的に、ここでは、図20に示す条件式入力画面の設定ボタンが選択された際に当該条件式入力画面で編集されたパラメータを登録すると判断し、また、図20に示す条件式入力画面のキャンセルボタン等が選択された際に当該条件式入力画面で編集されたパラメータを登録しないと判断する。
In step S <b> 1006, the CPU 111 (for example, the flow creation unit 420) of the
ステップS1007では、情報処理層装置110のCPU111はRAM112上に条件式テーブルT2100を、新規に作成する。
In step S1007, the
ステップS1008では、ステップS1007で作成した条件式テーブルT2100に、レコードを追加する。以上が図12のステップS321の分岐処理モジュール登録の詳細な説明である。 In step S1008, a record is added to the conditional expression table T2100 created in step S1007. The above is the detailed description of the branch processing module registration in step S321 in FIG.
ここで、実際に図6のT600、T601に示すデータを作成する際にCPU111が行う処理について説明する。具体的に作成する処理フローとしては、「画像取り込み」処理(不図示)後、画像入力コントローラ115fによる、「二値化」→「モフォロジ(3回繰り返し)」の処理を行い、その後、情報処理装置110のCPU111による、「位置決め」を行い、「位置決め」の結果が条件を満たす場合には「回転」、NGなら「ミラー反転」を行う。その後、「メディアン」処理を行い、その後に「コード認識」処理を行い、結果を「I/O出力」する処理フローである。尚、ここでは「入力モード」用の処理フロー・入出力パラメータテーブルをT600、「処理モード」用の処理フロー・入出力パラメータテーブルをT601で表している。
Here, a process performed by the
まず、「二値化」処理モジュールの新規追加処理を行うことになるが、(図10のステップS207)、処理モジュールの選択に先立ち、二値化処理を画像入力コントローラ115fにより行わせる処理として登録するので、入力モードのモジュールを選択するために、開発者は、図11のツールバー1107の「入力」をクリック指示することで、CPU111に対して、「入力モード」の指示をCPU111に対して行うことになる。
First, a process of newly adding a “binarization” processing module is performed (step S207 in FIG. 10), and is registered as a process for causing the
その入力指示を受け付けると、図12のステップS301のモード判定処理で、CPU111は入力モードであると判断し、処理をステップS303に進め、モジュール・ソースコードマスタテーブル411から、入力モードのモジュールを読み出し(図12のステップS303の処理)、利用可能な処理ユニット(モジュール)を表示するツールボックス1101に読み出した各モジュールを設定する(図12のステップS305の処理)。
When the input instruction is accepted, the
そしてその後、開発者は、入力装置120を用いて、ツールボックス1101に設定されているモジュールメニュー項目のうち、二値化のモジュールメニューを処理フロー描画領域1102にドラッグアンドドロップ処理する指示入力を行う。その処理をCPU111は検知して、ドラッグアンドドロップの対象となったモジュールを特定する(ステップS306のモジュール特定)。この場合は、二値化モジュールが新規追加のモジュールとして特定される。
After that, the developer uses the
ここで、図10及び図12のフローチャートには示していないが、新規のプロジェクト開発の際には、処理フローメインテーブル418が作成されることになる。その構成例を図9に示す。 Here, although not shown in the flowcharts of FIGS. 10 and 12, a process flow main table 418 is created when a new project is developed. An example of the configuration is shown in FIG.
図9は、図4のテーブル記憶部410に記憶されている処理フローメインテーブル418の構成の一例を示す図である。図に示すように、処理フローメインテーブル418は、データ項目として、Index901、順序902、カメラ番号903、処理フロー・入出力パラメータテーブル904を備えている。
FIG. 9 is a diagram showing an example of the configuration of the processing flow main table 418 stored in the
Index901はレコードを一意に識別する識別情報である。順序902はこの処理フローメインテーブルで管理されているレコードが示す処理を実行する順序を示す。カメラ番号903は、作成した処理フローでの画像処理対象となるカメラを識別するためのカメラ番号を示す。処理フロー・出入力パラメータテーブル名904は当該レコードに対応する処理を登録している処理フロー・出入力パラメータテーブルのテーブル番号が登録されている。
本作成例では、画像入力コントローラ115fで実行される一連の処理(Indexが1のレコード)、及び情報処理装置110のCPU111で実行される一連の処理(Index番号が2のレコード)が登録されることになり、それぞれ処理フロー・入出力パラメータテーブル名に、図6のT600(本作成例で作成する画像入力コントローラ115fが実施する画像処理フロー)と、図6のT601が登録されることになる。
In this creation example, a series of processes (records with an index of 1) executed by the
ステップS306で、情報処理装置110のCPU111により、ステップS305で選択したモジュールを「二値化」モジュールと特定したのち、特定したモジュールが、反復処理か条件分岐処理のモジュールであるか否かをCPU111は判断する。今回は「二値化」のモジュールであるのでNOと判断し、処理をステップS308に進めることになる。
In step S306, the
ステップS308に進むと、情報処理装置110のCPU111(例えばフロー作成部420)は、ステップS306の処理で得られた情報を、処理フロー・入出力パラメータテーブル412に1レコードとして追加する処理を行う。この場合、図6のT600のIndex601が1のレコードが追加されることになる。その際に、合わせて、入力パラメータや、出力パラメータの指定を受け付け、その情報も合わせて登録することになる。
In step S308, the
その後、図12のイベントセット判断処理(ステップS312)や、イベント待機判断処理(ステップS313)等を行うことになるが、それぞれ設定は行わないので、それらで判断処理ではNOと判断し、ステップS320でソースコード変換を行い、二値化処理の新規追加処理は終了することになる。 Thereafter, the event set determination process (step S312), the event standby determination process (step S313), etc. of FIG. 12 are performed. However, since each setting is not performed, it is determined NO in the determination process, and step S320 is performed. Thus, the source code conversion is performed, and the new addition process of the binarization process ends.
続いて、本作成例では、「モフォロジ」モジュールを、登録することになるが、二値化の新規登録処理とほぼ同様であるために、説明は割愛する。 Subsequently, in this creation example, the “morphology” module is registered, but since it is almost the same as the new registration process for binarization, the description is omitted.
その後、新規登録を行った「モフォロジ」処理を3回繰り返し実行させるために、反復処理の設定を行うことになる。 Thereafter, in order to repeatedly execute the newly registered “morphology” process three times, the iterative process is set.
まず、「モフォロジ」処理を3 回実施させるための「反復処理」モジュールを、処理フローとして図12の手順に従い、新規追加登録する処理を説明する。ステップS306までの処理は既に説明した二値化モジュールの新規追加処理とほぼ同様であるので説明は割愛する。 First, a process for newly registering an “iterative process” module for performing the “morphology” process three times as a process flow according to the procedure of FIG. 12 will be described. Since the process up to step S306 is almost the same as the process for newly adding a binarized module already described, a description thereof will be omitted.
ステップS307では、CPU111は、ステップS306で特定されたモジュールが「反復処理」モジュールであると判断することになるので(ステップS307でYES),と判断した場合、ステップS321に進み、図22を用いて既に説明した反復・分岐処理モジュールの登録処理を行う。
In step S307, the
図22に示す反復分岐処理を行うことで、図6のT600のIndexが3であるレコードが作成されることになるのだが、ここで、そのレコードの次ステップが2、NULLとなっていることに注目してほしい。ここで、反復条件を満たしている場合には次ステップ607で示されているIndex番号2のモフォロジ処理を行うことになる。そして、反復条件を満たさなくなった場合には次ステップの処理を行うことになる。しかしながら、この場合は次ステップとしてNULLが設定されているので、本テーブルで管理されている処理を終了することになる。ここで、次ステップ607を1、NULLと設定した場合には、反復条件を満たしている場合には、次ステップであるIndex1の処理である二値化処理を行うことを意味する。そのような設定をした場合には反復処理後、反復条件を満たしていれば、二値化処理を行い、その後モフォロジ処理を行う。その後反復の判定処理を行い、反復条件を満たしていれば再度二値化処理を行うというロジック(処理フロー)に基づくプログラムが作成されることになる。
By performing the iterative branching process shown in FIG. 22, a record in which the index of T600 in FIG. 6 is 3 is created. Here, the next step of the record is 2, NULL. I want you to pay attention to. Here, when the repetition condition is satisfied, the morphology process of the
ステップS1001では、処理フロー・入出力パラメータテーブルT600のインデックス(Index)601の1および2、さらに、登録対象のモジュールに対して出力パラメータ1806を元に、選択可能な特徴量を特定する。すなわち、この場合は、反復処理の「カウンタ」のみであるため、「カウンタ」を選択可能な特徴量としてRAM112に記憶する。
In step S1001, selectable feature quantities are specified based on 1 and 2 of the index (Index) 601 in the processing flow / input / output parameter table T600, and the output parameter 1806 for the module to be registered. That is, in this case, since only the “counter” of the iterative process is used, the “counter” is stored in the
ステップS1002では、条件式入力画面2000を表示する。RAM112に選択可能な特徴量として「カウンタ」が記憶されているので、図20の特徴量リスト2001には、「カウンタ」−「カウント数」のみが表示されることになる。
In step S1002, the conditional expression input screen 2000 is displayed. Since “counter” is stored as a selectable feature amount in the
ステップS903では、本例では、特徴量を「カウンタ数」、条件式を「<」、上限値を「3」が入力されることになる。 In step S903, in this example, “number of counters”, “<” as a conditional expression, and “3” as an upper limit value are input.
そしてその後のステップS1007では、情報処理装置110のCPU111はRAM112上に条件式テーブルT2100を、新規に作成することになる。図21に示すようにインデックス(Index)2101を「1」として1レコード追加し、条件を満たす場合の設定値を書き込む。つまり、特徴量2103に、反復処理のカウント数
である「UI00003−Count」、条件式2104に「Less」、閾値1の2105には「3」を登録する。なお、条件式2104で「Less」、が設定されているので閾値2の2106には、「NULL」を設定する。次ステップ2107には、反復処理を行う最初の処理モジュールを指定することになり、ここでは、「UI00002」の「モフォロジ」モジュールを示す、処理フロー・入出力パラメータテーブルT600のインデックス(Index)601である「2」を登録する。
In subsequent step S1007, the
さらに、条件式テーブルT2100のインデックス(Index)2101を「2」として、1レコード追加し、特徴量2103に「UI00003-Count」、条件式2104「Else」とする。次ステップには、反復処理を終えて次に実行するステップを設定することになるが、現段階ではまだ次にステップが登録されていないため、次ステップ2107は一時的に「NULL」として登録することになる。そして、図6のT600のIndex601が3のレコードの分岐参照608にT2100を設定する。以上で、反復処理の登録が終了する。
Further, the index (Index) 2101 of the conditional expression table T2100 is set to “2”, one record is added, and “UI00003-Count” is set as the
続いて、本例では、「位置決め」処理を登録するが、これ以降の処理は情報処理装置110のCPU111に行わせるためのプログラムを作成するためのロジック(処理フロー)を作成することになるので、動作モードとしては「処理モード」を選択することになる。
Subsequently, in this example, “positioning” processing is registered, but since the subsequent processing creates logic (processing flow) for creating a program for causing the
前述の手順と同様に、「位置決め」モジュールを登録するが、図12のステップS301で特定したモードが、「処理モード」であるため、ステップS302/NOとなり、ステップS304へ進む。ここで、初めて「処理モード」が選択されたため、新規に処理フロー・入出力パラメータテーブルT601を作成し、インデックス(Index)611に「1」、順序612に「1」、モジュール613に「位置決め」、フロー登録名614に「UP00001」、入力パラメータの画像バッファには、「入力モード」の処理フロー・入出力パラメータテーブルT600の最終画像である「画像バッファD」が、設定される。また、同時に、情報処理装置110のCPU111は、処理フローメインテーブルT900に、Index(インデックス)901を“2”、順序902を“2”、処理フロー・入出力パラメータテーブル名を“T601”として1レコード追加する。
Similar to the above-described procedure, the “positioning” module is registered. However, since the mode specified in step S301 in FIG. 12 is the “processing mode”, step S302 / NO is performed, and the process proceeds to step S304. Here, since “processing mode” is selected for the first time, a new processing flow / input / output parameter table T601 is created, “1” in the index 611, “1” in the order 612, and “positioning” in the module 613. “UP00001” is set in the flow registration name 614, and “image buffer D” which is the final image in the processing flow / input / output parameter table T600 of “input mode” is set in the input parameter image buffer. At the same time, the
次に、「条件分岐処理」モジュールを含む場合の情報処理装置110による制御方法の処理手順について説明する。具体的には、先の位置決め処理で行われた結果を用いて、条件を満たす場合(YES)は、「回転補正」処理を、条件を満たさない場合(NO)は、「ミラー」処理を行う場合を例にして説明する。ステップS306では、選択されたモジュールを特定する。
Next, the processing procedure of the control method performed by the
ステップS307の判断処理において、ステップS306で特定されたモジュールが「条件分岐処理」であるので、CPU111はYESと判断し、ステップS321にて「条件分岐処理」モジュールの登録処理を行う。この「条件分岐処理」モジュールの登録処理は、「反復処理」モジュールの登録処理とほぼ同様であるため詳細な説明は省略する。なお、「条件分岐処理」の処理の結果作成される条件式テーブルを、図21のT2110に示す。
In the determination process of step S307, since the module identified in step S306 is the “conditional branch process”, the
ステップS1001では、処理フロー・入出力パラメータテーブルT600の出力パラメータ606を元に、現在のステップまでで選択可能な特徴量を特定する。ここでは、情報処理装置110のCPU111は、出力パラメータ606を参照するが、本例では、選択できる特徴量としては、二値化の閾値「UI00001−Thresh」,反復処理の回「UI00003−Count」、位置決めの個数「UP00001−Count」である。
In step S1001, based on the
ステップS1002では、ステップS1001で特定した特徴量をもとに条件式入力画面2000を表示し、入力を受け付ける。本作成例では、特徴量2113を前ステップの位置決めの個数「U00004−Count」、条件式2114を「==」、閾値1の2114を「1」として入力を受け付けることになる。 In step S1002, the conditional expression input screen 2000 is displayed based on the feature amount specified in step S1001, and input is accepted. In this creation example, the feature amount 2113 is input as the number of positionings “U00004-Count” in the previous step, the conditional expression 2114 is “==”, and the threshold value 2114 is “1”.
ステップS907では、情報処理装置110のCPU111は、RAM112上に条件式テーブルT2110を、新規に作成することになる。
In step S907, the
ステップS908では、ステップS907で作成した条件式テーブルT2110に、レコードを追加する。このとき、まず、インデックス(Index)2111を「1」として1 コード追加し、条件を満たす場合の設定値を書き込む。特徴量2113に、位置決め処理の個数である「UP00001−Count」を、条件式2114に「Equal」、閾値1の2115には「1」を登録する。なお、条件式2114で「Less」が設定されているので閾値2の2116には、「NULL」を設定する。次ステップ2117には、「条件分岐処理」を行った際の分岐先の処理モジュールを指定することになるが、ここではまだ次ステップが登録されていないため、一時的に「NULL」とする。 In step S908, a record is added to the conditional expression table T2110 created in step S907. At this time, first, an index 2111 is set to “1”, one code is added, and a setting value when the condition is satisfied is written. “UP00001-Count”, which is the number of positioning processes, is registered in the feature amount 2113, “Equal” is registered in the conditional expression 2114, and “1” is registered in the threshold 1115. Since “Less” is set in the conditional expression 2114, “NULL” is set in the threshold 2116. In the next step 2117, 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”.
さらに、条件式テーブルT2110にインデックス(Index)2101を「2」として、1 レコード追加し、特徴量2113に「UP00001−Count」、条件式1914を「Else」とする。同様に次ステップには、「条件分岐処理」を終えて次に実行するステップを設定することになるが、現段階ではまだ次にステップが登録されていないため、次ステップ1917は一時的に「NULL」とする。また、図6のT601のIndex601が2のレコードの分岐参照608にT2110を設定する。
Furthermore, an index (Index) 2101 is set to “2” in the conditional expression table T2110, one record is added, “UP00001-Count” is set as the feature quantity 2113, and “Else” is set as the conditional expression 1914. Similarly, in the next step, the step to be executed next after the “conditional branch process” is set, but since the next step is not yet registered at this stage, the next step 1917 is temporarily set to “ "NULL". Also, T2110 is set in the
次に、「条件分岐」モジュールの後に、条件分岐内のノードの処理を追加登録する処理を 説明する。ここでは、位置決めの個数が「1」の場合には回転補正、「1」以外の場合にはミラー変換を行うものとし、「回転補正」処理のモジュールと「ミラー変換」処理のモジュールをそれぞれのノードに追加登録する処理を行う。 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. Perform additional registration with the node.
その後、条件分岐モジュールに続くモジュールの登録に該当するので、条件式テーブルT2110で条件を満たす場合の次ステップ、つまりインデックス(Index)2111が「1」の次ステップ2117には、「3」を登録する。一方、条件を満たさない場合、つまりインデックス(Index)2111が「2」の次ステップ2117には「4」を登録する。あわせて、処理フロー・入出力パラメータテーブルT601のインデックス(Index)611が「2」の次ステップ1807には、「3,4」が登録されることになる。 After that, since it corresponds to the registration of the module following the conditional branch module, “3” is registered in the next step when the condition is satisfied in the conditional expression table T2110, that is, the next step 2117 in which the index (Index) 2111 is “1”. To do. On the other hand, if the condition is not satisfied, that is, “4” is registered in the next step 2117 in which the index 2111 is “2”. In addition, “3, 4” is registered in the next step 1807 in which the index (Index) 611 of the processing flow / input / output parameter table T601 is “2”.
なお、ここで、処理フロー・入出力パラメータテーブルT601においては、インデックス(Index)611の「3」の「回転補正」、および「4」の「ミラー変換」の入力パラメータ1805の画像バッファは、インデックス(Index)601の「2」の「条件分岐処理」の出力パラメータ616の画像バッファのポインタを使用することになる。つまり「条件分岐処理」の前ステップであるインデックス(Index)601の「1
」の位置決めの出力画像617を使用することになる。
Here, in the processing flow / input / output parameter table T601, the image buffer of the input parameter 1805 of “3” “rotation correction” of the index (Index) 611 and “mirror conversion” of “4” is the index. The pointer of the image buffer of the output parameter 616 of “conditional branch processing” of “Index” 601 “2” is used. That is, “1” of the index (Index) 601 which is the previous step of “conditional branch processing”
The positioning output image 617 is used.
ステップS319以降の処理は図12の先の説明と同様である。が、ステップS321のソース変換の処理は「条件分岐処理」、「回転処理」、「ミラー処理」のモジュールについてモジュール・ソースコードマスタテーブル411を用いてソースコードに変換し、変換により得られたソースコードをソースコードテーブル413に記憶して更新する。また、ソースコードテーブル413のソースコードをデバッグ・コンパイルして、これをオブジェクトコードテーブル414に記憶して更新する。以上で、「条件分岐処理」モジュールの登録およびプログラムの作成が終了することになる。
引き続き、「メディアン」処理、「コード認識」処理を行い、最後に「I/O 出力」処理の登録を行うが、図12で説明した手順に従い新規追加処理するため、詳細の説明は重複するので省略する。以上が図6に示す処理フロー・入出力パラメータテーブルの作成例である。
The processing after step S319 is the same as that described above with reference to FIG. However, the source conversion processing in step S321 is performed by converting the modules of “conditional branch processing”, “rotation processing”, and “mirror processing” into the source code using the module / source code master table 411, and the source obtained by the conversion. The code is stored in the source code table 413 and updated. Also, the source code of the source code table 413 is debugged and compiled, and this is stored in the object code table 414 and updated. This completes registration of the “conditional branch processing” module and creation of the program.
Subsequently, “median” processing and “code recognition” processing are performed, and finally “I / O output” processing is registered. However, since new addition processing is performed in accordance with the procedure described in FIG. Omitted. The above is an example of creating the processing flow / input / output parameter table shown in FIG.
次に、図13を参照して、図10のステップS209に示す変更処理の詳細な処理について説明する。図13は、図10のステップS209における「変更処理」の詳細な手順の一例を示すフローチャートである。本処理をCPU111に実行させるためのプログラムは外部メモリ116に記憶されており、本処理の実行要求を入力装置120より受け付けた場合に、CPU111は、当該プログラムをRAM112にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。
Next, with reference to FIG. 13, the detailed process of the change process shown in step S209 of FIG. 10 will be described. FIG. 13 is a flowchart illustrating an example of a detailed procedure of the “change process” in step S209 of FIG. A program for causing the
図13のステップS401において、情報処理装置110のCPU111は、既に処理フローとして登録されているモジュールを特定する処理を行う。開発者(ユーザ)は、図11に示す画像処理プロジェクト開発画面1100中の処理フロー描画領域1102に表示されているモジュールに対してクリック指示を行うことで処理対処とするモジュールの指定入力を行うことになるので、CPU111は、その指定入力に従ってモジュールを特定することになる。
In step S401 in FIG. 13, the
ステップS402では、情報処理装置110のCPU111は、ステップS401で特定したモジュールのパラメータ編集画面をCRT130に表示する。
図14でパラメータ編集画面の一例を示す。図14に示すパラメータ編集画面1400には、画像ファイルや画像処理の設定ファイルの読み出し、保存を行うツールバー1401と、画像処理のパラメータ設定領域1402と、結結果画像表示領域1403と、入力したパラメータ設定するかどうかの設定メニュー1404等が設けられている。
In step S <b> 402, the
FIG. 14 shows an example of the parameter editing screen. A
なお、図14は、空間フィルタに関するパラメータを設定する画面の例であり、ここでは、空間フィルタに用いるカーネルタイプ(ガウシアン、ソーベルなど)を設定する項目1402aと、開発者(ユーザー)が自由に設定できるカスタムカーネル設定ボタン1402b、また処理領域を設定する項目1402cが設けられている。また、結果画像表示領域1403は、パラメータ設定領域1402で値を変更すると、随時結果画像が更新され処理結果を確認することができる。
FIG. 14 shows an example of a screen for setting parameters relating to the spatial filter. Here, an
その後、処理をステップS403に進め、ステップS402で表示したパラメータ編集画面で、任意のパラメータが変更されたか否かを判断する。ステップS403の判断処理で、パラメータが変更がないと判断した場合(ステップS403/NO)には、本変更処理を終了する。一方、ステップS403で変更があったと判断した場合(ステップS403/YES)、CPU111は、処理をステップS404に進める。
Thereafter, the process proceeds to step S403, and it is determined whether or not any parameter has been changed on the parameter editing screen displayed in step S402. If it is determined in step S403 that the parameter has not been changed (step S403 / NO), the change process is terminated. On the other hand, if it is determined in step S403 that there is a change (step S403 / YES), the
ステップS404では、CPU111は、変更のあったパラメータを特定する。そして、ステップS405では、ステップS404で変更のあったパラメータをもとに処理を実行する。
In step S404, the
その後、処理をステップS406に進め、情報処理装置110のCPU111は、ステップS404で変更のあったパラメータ設定を有効にするか否かを判断する。つまり、図14の設定メニュー1404の入力を判断する。有効にするとCPU111が判断した場合(S406/YES)、処理をステップS407に進める。一方、有効にしないと判断した場合(S406/NO)には、変更処理を終了する。
Thereafter, the process proceeds to step S406, and the
ステップS407では、CPU111は、処理フロー・入出力パラメータテーブルを更新し、RAM112に記憶する。
In step S <b> 407, the
続いて、ステップS408では、CPU111は、処理フロー・入出力パラメータテーブルの情報を元に、ソースコードに変換し、ソースコードテーブル413に記憶する。以上で、変更処理が終了する。
Subsequently, in step S <b> 408, the
なお、変更処理が行われた場合、すべてのモジュールにおいて、結果画像表示領域の各モジュールの結果画像をダブルクリック、もしくはコンテキストメニューから選択することで、画像比較ウィンドウを表示する。図23で、パラメータを変更した際に、前回のパラメータでの処理結果画像と今回の処理結果画像の画像比較ウィンドウを示す。 When the change process is performed, in all the modules, the image comparison window is displayed by double-clicking the result image of each module in the result image display area or selecting from the context menu. FIG. 23 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.
次に、図15を参照して、図11のステップS211の移動処理の詳細な処理について説明する。図15は、図11のステップS211におけるモジュールの「移動処理」の詳細な処理手順の一例を示すフローチャートである。このモジュールの移動処理により、処理フローの順序が変更されることになる。本処理をCPU111に実行させるためのプログラムは外部メモリ116に記憶されており、本処理の実行要求を入力装置120より受け付けた場合に、CPU111は、当該プログラムをRAM112にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。
Next, with reference to FIG. 15, the detailed process of the movement process of step S211 of FIG. 11 is demonstrated. FIG. 15 is a flowchart illustrating an example of a detailed processing procedure of the “move process” of the module in step S211 of FIG. The order of processing flow is changed by the movement processing of this module. A program for causing the
ステップS501において、情報処理装置110のCPU111(例えばフロー作成部420)は、図10のステップS204の入力において選択された、既に処理フローとして登録されているモジュールを特定する。ステップS502では、情報処理装置110のCPU111は、ステップS204でドラッグされたモジュールの位置を特定する。
In step S501, the CPU 111 (for example, the flow creation unit 420) of the
ステップS503では、ステップS502で特定した位置が正しいか否かを判断する。位置が正しい場合(S503/YES)、ステップ504へ進む、一方、正しくない場合(S503/NO)、ステップS502に戻り、正しい位置が特定されるまで続ける。 In step S503, it is determined whether or not the position specified in step S502 is correct. If the position is correct (S503 / YES), the process proceeds to step 504. If the position is not correct (S503 / NO), the process returns to step S502 and continues until the correct position is specified.
続いて、ステップS504において、情報処理装置110のCPU111(例えばフロー作成部420)は、処理フロー描画領域1102に描画(表示)されている処理フローについて、ステップS501で特定したモジュールを、ステップS502で特定したモジュールの間へ移動し、処理フロー描画領域1102を再描画(再表示)する処理を行う。
Subsequently, in step S504, the CPU 111 (for example, the flow creation unit 420) of the
そして、ステップS505では、CPU111(例えばフロー作成部420)は、ステップS501で特定したモジュールの移動処理に伴って、処理フロー・入出力パラメータテーブル412の変更処理を行う。ここでは、具体例を示さないが、まず、ステップS504で再描画された処理フロー描画領域1102の処理フローにおけるモジュールの順序に従って、処理フロー・入出力パラメータテーブル412の順序602(更にはフロー登録名604を変更する場合もある)を変更する。次に、ステップS504で再描画された処理フロー描画領域1102の処理フローにおけるモジュールの順序に従って、当該順序の変更に伴うモジュールの入力パラメータ605及び出力パラメータ606を変更する。例えば、移動対象のモジュールの入力パラメータ605には、1つ前の順序のモジュールにおける出力パラメータ606の画像バッファの情報を格納する。この際、移動対象のモジュールの出力パラメータ606は変更しないようにすることもできる。ただし、1つ後の順序のモジュールにおける入力パラメータ605は、移動対象のモジュールの出力パラメータ606の画像バッファの情報を格納する。
In step S505, the CPU 111 (for example, the flow creation unit 420) changes the process flow / input / output parameter table 412 in accordance with the module movement process specified in step S501. Here, a specific example is not shown, but first, in accordance with the order of modules in the processing flow of the processing
続いて、ステップS505において、CPU111(例えばソースコード変換部430)は、処理フロー・入出力パラメータテーブル412において、順序602が変更されたモジュール以降のモジュールについて、モジュール・ソースコードマスタテーブル411を用いてソースコードに変換し、変換により得られたソースコードをソースコードテーブル413に記憶して更新する。この際、CPU111(例えばソースコード変換部430)は、ソースコードテーブル413において、順序の変更が行われたモジュールに対応するソースコードをいったん消去し、再度、ソースコードへの変換を行ってソースコードテーブル413を更新する。
Subsequently, in step S505, the CPU 111 (for example, the source code conversion unit 430) uses the module / source code master table 411 for modules after the module whose
ステップS506の処理が終了した場合には、操作入力装置120から「移動処理」の終了が指示されたときは図15のフローチャートの処理を終了し、また、入力装置120から「移動処理」の継続が指示されたときはステップS501に戻って、ステップS501以降の処理を再度行うことになる。以上のようにして、図11のステップS211におけるモジュールの「移動処理」が行われる。以上が移動処理の詳細な説明である。
When the process in step S506 is completed, when the
次に、図16を参照して、図11のステップS213に示す挿入処理の詳細な手順について説明する。図16は、図11のステップS213におけるモジュールの「挿入処理」の詳細な処理手順の一例を示すフローチャートである。本処理をCPU111に実行させるためのプログラムは外部メモリ116に記憶されており、本処理の実行要求を入力装置120より受け付けた場合に、CPU111は、当該プログラムをRAM112にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。
Next, with reference to FIG. 16, the detailed procedure of the insertion process shown in step S213 of FIG. 11 will be described. FIG. 16 is a flowchart showing an example of a detailed processing procedure of the “insertion processing” of the module in step S213 in FIG. A program for causing the
まず、図16のステップS601において、情報処理装置110のCPU111(例えばフロー作成部420)は、ステップS204の入力において処理モジュールをドロップされた、新規にモジュールを挿入する挿入先を特定する。
First, in step S601 in FIG. 16, the CPU 111 (for example, the flow creation unit 420) of the
続いて、ステップS602において、情報処理装置110のCPU111(例えばフロー作成部420)は、ステップS204の入力において選択されたモジュールを特定する処理を行う。なお、本実施形態においては、ステップS601の挿入先の特定処理とステップS602のモジュールの特定処理との処理の順番を、逆にする形態であってもよい。
Subsequently, in step S602, the CPU 111 (for example, the flow creation unit 420) of the
ステップS602では、CPU111は、ステップS204でドロップされたモジュールの位置を特定する。そして、ステップS603では、ステップS602で特定した位置が正しいか否かを判断する。位置が正しいと判断し場合(S603/YES)、処理をステップ604へ進める。一方、正しくないと判断した場合(S603/NO)には、ステップS602に戻り、正しい位置が特定されるまで続ける。
In step S602, the
続いて、ステップS604において、のCPU111(例えばフロー作成部420)は、処理フロー描画領域1102に描画(表示)されている処理フローについて、ステップS601で特定したモジュールを、ステップS602で特定したモジュールの間へ移動し、処理フロー描画領域1102を再描画(再表示)する処理を行う。
Subsequently, in step S604, the CPU 111 (for example, the flow creation unit 420) determines the module identified in step S601 for the process flow rendered (displayed) in the process
ステップS605では、CPU111(例えばフロー作成部420)は、ステップS601で特定したモジュールの移動処理に伴って、処理フロー・入出力パラメータテーブル412の変更処理も行う。ここでは、具体例を示さないが、まず、情報処理装置110のCPU111(例えばフロー作成部420)は、モジュール・ソースコードマスタテーブル411で得られた情報を、処理フロー・入出力パラメータテーブル412に1レコードとして追加する処理を行うとともに、ステップS602で特定された挿入先の情報に基づいて、処理フロー・入出力パラメータテーブル412の情報を変更して更新する。
In step S605, the CPU 111 (for example, the flow creation unit 420) also performs processing for changing the processing flow / input / output parameter table 412 in accordance with the movement processing of the module specified in step S601. Here, although a specific example is not shown, first, the CPU 111 (for example, the flow creation unit 420) of the
続いて、ステップS606において、情報処理装置110のCPU111(例えばソースコード変換部430)は、処理フロー・入出力パラメータテーブル412において、順序602が変更されたモジュール以降のモジュールについて、モジュール・ソースコードマスタテーブル411を用いてソースコードに変換し、変換により得られたソースコードをソースコードテーブル413に記憶して更新する。この際、CPU111(例えばソースコード変換部430)は、ソースコードテーブル413において、順序の変更が行われたモジュールに対応するソースコードをいったん消去し、再度、ソースコードへの変換を行ってソースコードテーブル413を更新する。
Subsequently, in step S606, the CPU 111 (for example, the source code conversion unit 430) of the
ステップS606の処理が終了した場合には、入力装置120から「挿入処理」の終了が指示されたときは本処理を終了する。また、入力装置120から「挿入処理」の継続が指示されたときはステップS601に戻って、ステップS601以降の処理を再度行うことになる。以上が図12のステップS213の挿入処理の説明である。
When the process of step S606 is completed, when the
次に、図17を参照して、図11のステップS215の削除処理の詳細な手順について説明する。図17は、図11のステップS215におけるモジュールの「削除処理」の詳細な処理手順の一例を示すフローチャートである。本処理をCPU111に実行させるためのプログラムは外部メモリ116に記憶されており、本処理の実行要求を入力装置120より受け付けた場合に、CPU111は、当該プログラムをRAM112にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。
Next, a detailed procedure of the deletion process in step S215 in FIG. 11 will be described with reference to FIG. FIG. 17 is a flowchart illustrating an example of a detailed processing procedure of the “deleting process” of the module in step S215 of FIG. A program for causing the
まず、ステップS701において、情報処理装置110のCPU111(例えばフロー作成部420)は、ステップS204の入力において選択されたモジュールを特定する処理を行う。
First, in step S701, the CPU 111 (for example, the flow creation unit 420) of the
続いて、ステップS702では、CPU111(例えばフロー作成部420)は、ステップS701で特定したモジュールの削除処理に伴って、処理フロー・入出力パラメータテーブル412の変更処理も行う。ここでは、具体例を示さないが、まず、情報処理装置110のCPU111(例えばフロー作成部420)は、処理フロー・入出力パラメータテーブル412において、ステップS701で特定された登録済みのモジュールに関する項目を、1レコードとして削除する処理を行うとともに、ステップS602で特定された挿入先の情報に基づいて、処理フロー・入出力パラメータテーブル412の情報を変更して更新する。
Subsequently, in step S <b> 702, the CPU 111 (for example, the flow creation unit 420) also performs processing for changing the processing flow / input / output parameter table 412 in accordance with the deletion processing of the module specified in step S <b> 701. Here, although a specific example is not shown, first, the CPU 111 (for example, the flow creation unit 420) of the
続いて、ステップS704において、CPU111(例えばソースコード変換部430)は、処理フロー・入出力パラメータテーブル412において、順序602が変更されたモジュール以降のモジュールについて、モジュール・ソースコードマスタテーブル411を用いてソースコードに変換し、変換により得られたソースコードをソースコードテーブル413に記憶して更新する。この際、情報処理装置110のCPU111(例えばソースコード変換部430)は、ソースコードテーブル413において、順序の変更が行われたモジュールに対応するソースコードをいったん消去し、再度、ソースコードへの変換を行ってソースコードテーブル413を更新する。以上が、図11のステップS215におけるモジュールの「削除処理」の詳細な説明である。
Subsequently, in step S704, the CPU 111 (for example, the source code conversion unit 430) uses the module / source code master table 411 for modules after the module whose
次に、図18を参照して、図11のステップS217の実行処理の詳細な手順について説明する。図18は、図11のステップS217におけるモジュールの「実行処理」の詳細な処理手順の一例を示すフローチャートである。本処理をCPU111に実行させるためのプログラムは外部メモリ116に記憶されており、本処理の実行要求を入力装置120より受け付けた場合に、CPU111は、当該プログラムをRAM112にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。
Next, with reference to FIG. 18, the detailed procedure of the execution process of step S217 of FIG. 11 will be described. FIG. 18 is a flowchart illustrating an example of a detailed processing procedure of the “execution processing” of the module in step S217 of FIG. A program for causing the
まず、ステップS801において、CPU111(例えばコンパイル変換部440)は、各処理の最終ステップのソースコード変換処理により、ソースコードテーブル413に記憶されたソースコードに対して、デバッグ・コンパイルを行い、オブジェクトコードテーブル414に記憶する。 First, in step S801, the CPU 111 (for example, the compile conversion unit 440) performs debugging and compilation on the source code stored in the source code table 413 by the source code conversion process in the final step of each process, and the object code Store in table 414.
ステップS802では、CPU111は、オブジェクトコードテーブル414に記憶しているオブジェクトコードを実行する。その後、ステップS803に処理を進め、ステップS802で実行した各モジュールの結果を、結果描画領域1103に、描画する。このとき、処理フローに反復処理が含まれている場合には、反復処理モジュールをダブルクリック、もしくはメニューから結果表示を選択されることで、図24に一例を示す通り、各回数における経過画像ウィンドウを表示する。以上が実行処理の詳細な説明である。
In step S802, the
次に、図19を参照して、図11のステップS219の保存処理の詳細な手順について説明する。図19は、図11のステップS219におけるモジュールの「保存処理」の詳細な処理手順の一例を示すフローチャートである。本処理をCPU111に実行させるためのプログラムは外部メモリ116に記憶されており、本処理の実行要求を入力装置120より受け付けた場合に、CPU111は、当該プログラムをRAM112にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。
Next, with reference to FIG. 19, the detailed procedure of the storage process in step S219 of FIG. 11 will be described. FIG. 19 is a flowchart showing an example of a detailed processing procedure of the “save processing” of the module in step S219 of FIG. A program for causing the
まず、ステップ901では、CPU111(例えばソースコード変換部430)は、処理フロー・入出力パラメータテーブル412に登録されている一連の処理フローを、デバッグ情報を除去し、ソースコードに変換し、ソースコードテーブル413に記憶する。ここで、ソースコードに変換する際には、処理フロー・入出力パラメータテーブル412の情報だけでなく、オンライン検査画面で使用するダイアログリソースなどを含んだ形式としてソースコードテーブル413に記憶する。
First, in
続いて、ステップS902では、CPU111(例えばコンパイル変換部440)は、ステップS902において、ソースコードテーブル413に記憶したソースコードに対して、リリース・コンパイルを行い、オブジェクトコードテーブル414に記憶する。 Subsequently, in step S902, the CPU 111 (for example, the compile conversion unit 440) releases and compiles the source code stored in the source code table 413 in step S902, and stores it in the object code table 414.
その後、ステップS903では、情報処理装置110のCPU111(例えばデータ保存部460)は、RAM112上に記憶されている、処理フロー・入出力パラメータテーブル412と、ステップS901で変換しソースコードテーブル413をソースコードファイルとして、オブジェクトコードテーブル414をEXEやDLL等の実行形式のバイナリファイルとして保存する。また、本発明では、オンライン検査画面のリソースおよび処理コードを含み、市販コンパイラで利用できる、プロジェクトファイルとして、外部メモリ160に記憶する。つまり、プロジェクト保存処理を実行することで、市販コンパイラを使用すれば、オンライン画面リソースの変更、処理の追加が可能となる。以上が、保存処理の詳細な説明である。
Thereafter, in step S903, the
図28は、機器調整画面の一例を示す図である。図中、画像表示領域2801では、カメラ140から取得した画像を表示する。また、オプション選択2802で、機器調整時に行う動作を選択できる。画像保存設定2803では、オプション選択2802で「画像保存」処理を選択した際に必要となるパラメータを指定できる。また履歴画像表示領域2804では、画像表示領域2801で表示している画像の1つ前の取り込み処理で取得した画像を表示する。表示順序は、左側が最新の画像を表示するが、その逆となっていてもよい。
FIG. 28 is a diagram illustrating an example of the device adjustment screen. In the figure, an image acquired from the
次に、図26を参照して、図7のステップS109の機器調整処理の詳細な手順について説明する。図26は、図7のステップS109におけるモジュールの「機器調整」の詳細な処理手順の一例を示すフローチャートである。本処理をCPU111に実行させるためのプログラムは外部メモリ116に記憶されており、本処理の実行要求を入力装置120より受け付けた場合に、CPU111は、当該プログラムをRAM112にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。
Next, with reference to FIG. 26, a detailed procedure of the device adjustment process in step S109 of FIG. 7 will be described. FIG. 26 is a flowchart illustrating an example of a detailed processing procedure of the “device adjustment” of the module in step S109 of FIG. A program for causing the
まず、ステップS1401では、CPU111は、カメラ取り込みを行うカメラを特定する。ステップS1402では、CPU111は、ステップS1401で特定したカメラから、1枚画像を取得し、ステップS1403に進む。
First, in step S1401, the
ステップS1403に進むと、入力装置120から入力があるか否かを判断する。ステップS1403で入力なしと判断された場合(S1403/NO)、ステップS1402に戻り、画像取り込みを行う。一方、入力装置120からの操作があると判断した場合(S1403/YES)、ステップS1404に進む。
In step S1403, it is determined whether or not there is an input from the
ステップS1404に進むと、入力装置120からの入力を特定する。ここで、本発明では、「ヒストグラム表示」、「プロファイル表示」、「X/Yプロジェクション表示」、「フォーカス表示」、「統計量表示」、及び「画像保存」が選択可能であるが、その他の項目があってもよい。
In step S1404, an input from the
ステップS1405では、CPU111は、ステップS1404で特定した内容が、「ヒストグラム表示」であるか否かを判断する。ステップS1405の判断処理で、「ヒストグラム表示」でないと判断した場合(S1405/NO)、処理をステップS1407に進める。一方、「ヒストグラム表示」であると判断した場合(S1405/YES)には、処理をステップS1406に進め、ステップS1402で取得した画像のヒストグラムを表示を行う。
In step S1405, the
ステップS1407では、情報処理装置110のCPU111は、ステップS1404で特定した内容が、「プロファイル表示」であるか否かを判断する。ステップS1407の判断処理で、CPU111が「プロファイル表示」でないと判断した場合(S1407/NO)、処理をステップS1409に進める。一方、「プロファイル表示」であると判断した場合には(S1407/YES)、処理をステップS1408に進め、ステップS1402で取得した画像のプロファイルを表示する。
In step S1407, the
ステップS1409では、情報処理装置110のCPU111は、ステップS1404で特定した内容が、「X/Yプロジェクション表示」であるか否かを判断する。判断の結果、「X/Yプロジェクション表示」でないと判断した場合(S1409/NO)、ステップS1411に進む。一方、「X/Yプロジェクション表示」であると判断した場合(S1409/YES)には、処理をステップS1410に進め、ステップS1402で取得した画像のX/Yプロジェクションを表示する。
In step S1409, the
ステップS1411では、情報処理装置110のCPU111は、ステップS1404で特定した内容が、「フォーカス表示」であるか否かを判断する。ステップS1411の判断処理で、「フォーカス表示」ではないと判断した場合(S1411/NO)、処理をステップS1413に進める。一方、「フォーカス表示」であると判断した場合には(S1411/YES)、処理をステップS1412に進め、ステップS1402で取得した画像のフォーカスを表示する。
In step S1411, the
ステップS1413では、情報処理装置110のCPU111は、ステップS1404で特定した内容が、「統計量表示」であるか否かを判断する。ステップS1413の判断処理で、CPU111が「統計量表示」ではないと判断した場合(S1413/NO)、処理をステップS1415に進める。一方、「統計量表示」であると判断した場合には(S1413/YES)、処理をステップS1414に進め、ステップS1402で取得した画像の統計量を表示する。
In step S1413, the
ステップS1415では、情報処理装置110のCPU111は、ステップS1404で特定した内容が、「画像保存処理」であるか否かを判断する。ステップS1415の判断処理で、「画像保存処理」でないと判断した場合(S1415/NO)、処理をステップS1417に進める。一方、「画像保存処理」であると判断した場合には(S1415/YES)、処理ステップS1416に進め、画像保存処理を行う。この処理の詳細については、図27を用いて後述する。
In step S1415, the
ステップS1417では、情報処理装置110のCPU111は、ステップS1404で特定した内容が、「カメラ設定処理」であるか否かを判断する。ステップS1417の判断処理で、CPU111が「カメラ設定処理」ではないと判断した場合(S1417/NO)、処理をステップS1419に進める。一方、「カメラ設定処理」であると判断した場合(S1417/YES)、ステップS1418に進める。ここで、たとえば、「カメラ設定処理」では、情報処理装置110のCPU111は、ディスプレイ装置130に、カメラの露光時間、トリガモード、ゲインなどが設定できるウィンドウを表示する。
In step S1417, the
ステップS1419では、情報処理装置110のCPU111は、ステップS1404で特定した内容が、「照明設定処理」であるか否かを判断する。ステップS1419の判断処理で、CPU111が「照明設定処理」でないと判断した場合(S1419/NO)、処理をステップS1421に進める。一方、「照明設定処理」であると判断した場合(S1419/YES)、処理をステップS1420に進める。ステップS1420の「照明設定処理」では、情報処理装置110のCPU111は、ディスプレイ装置130に、照明の明るさ、点灯時間、ディレイなどが設定できるウィンドウを表示する。
In step S1419, the
ステップS1421では、情報処理装置110のCPU111は、ステップS1404で特定した内容が、「停止処理」であるか否かを判断する。ステップS1421の判断処理で、CPU111が「停止処理」でないと判断した場合(S1421/NO)、ステップS1412に戻り、画像取り込みを行う。一方、「停止処理」であると判断した場合(S1421/YES)、本処理を終了する。以上が図7のステップS111の機器調整画面表示処理の説明である。
In step S1421, the
次に、図27を参照して、図26のステップS1416の画像保存処理の詳細な手順について説明する。図27は、図26のステップS1415におけるモジュールの「画像保存処理」の詳細な処理手順の一例を示すフローチャートである。本処理をCPU111に実行させるためのプログラムは外部メモリ116に記憶されており、本処理の実行要求を入力装置120より受け付けた場合に、CPU111は、当該プログラムをRAM112にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。
Next, with reference to FIG. 27, the detailed procedure of the image storing process in step S1416 in FIG. 26 will be described. FIG. 27 is a flowchart showing an example of a detailed processing procedure of the “image saving process” of the module in step S1415 of FIG. A program for causing the
まず、ステップS1501において、情報処理装置110のCPU111は、図28で示す機器調整画面2800の画像保存設定2803に指定された各パラメータを取得する。ここで、本例では、取り込み制御(時間、枚数)、取り込み間隔(時間、枚数)、保存場所、画像フォーマットを指定できる。
First, in step S1501, the
ステップS1502では、情報処理装置110のCPU111は、画像入力コントローラ115fを通して、カメラ140から画像を1枚取得し、RAM112上に記憶する。
In step S1502, the
続いて、ステップS1503では、ステップS1502で取得した、つまり、RAM112上にある画像データを、ステップS1501で取得した画像フォーマットで外部メモリ116に記憶する。
In step S1503, the image data acquired in step S1502, that is, on the
ステップS1504に進むと、情報処理装置110のCPU111は、ステップS1501で取得した時間、もしくは枚数分待機する。
In step S1504, the
ステップS1505では、情報処理装置110のCPU111は、入力装置120からの入力が停止処理であるか否かを判断する。ステップS1505の判断処理で、CPU111が停止処理であると判断した場合(S1505/YES)、本処理を終了する。一方、停止処理でないと判断した場合には(S1505/NO)、ステップ1502に戻り、画像取得から実行する。ここで、ステップS1505で判断できる項目は、操作入力装置120からの入力、もしくは、図28の画像保存設定2805で指定した取得枚数や取り込み時間であってもよい。以上が図26のステップS1416の画像保存処理の詳細な説明である。
In step S1505, the
<第2の実施例>
以下、本願発明の第2の実施例の説明をする。この実施例では、処理フローに登録する処理モジュールをユーザが独自のロジックを組み込んで追加することができる。また、この際、ユーザがソースコードを記述してモジュールを作成することになるが、本発明では、このソースコードにブレークポイントなどのデバッグ情報を配置することで、開発における援助をすることができる。
<Second embodiment>
The second embodiment of the present invention will be described below. In this embodiment, the user can add processing modules to be registered in the processing flow by incorporating their own logic. At this time, the user creates a module by describing the source code. In the present invention, debugging information such as breakpoints can be placed in the source code to assist in development. .
図30は、第2の実施例におけるプロジェクト構築の詳細な手順の一例を示すフローチャートである。なお、第1の実施例におけるプロジェクト構築の処理(図10)と同様の処理を行うステップには、図10と同じステップ番号を付与し、処理の詳細な説明については割愛する。尚、第1の実施例と異なる箇所は、点線で囲んでいる箇所である。 FIG. 30 is a flowchart illustrating an example of a detailed procedure for project construction in the second embodiment. Note that the same step numbers as those in FIG. 10 are assigned to steps for performing the same processing as the project construction processing (FIG. 10) in the first embodiment, and detailed description of the processing is omitted. The difference from the first embodiment is a portion surrounded by a dotted line.
図30のステップS220では、図10のステップS205で特定した処理が「カスタムモジュール作成」処理か否かを判断する。ここで、情報処理装置110の操作入力装置120から入力されるイベントは、本例では、モジュール表示画面3300のコンテキストメニュー3301のような方法で示す。また、ここで、判断するイベントとして、「追加」のほかに、「修正」「削除」などの機能があってもよい。
In step S220 of FIG. 30, it is determined whether or not the process specified in step S205 of FIG. 10 is a “custom module creation” process. Here, an event input from the
ここで、図33で、カスタムモジュール作成ウィンドウ3310の一例を示す。本例で示す、カスタムモジュール作成ウィンドウ3310には、ソースコードを記述するソースコード記述領域3311と、ブレークポイントを設定する領域3312、及び、変数表示領域3313で構成されている。
Here, FIG. 33 shows an example of the custom
図30の説明に戻る。ステップS220の判断処理で、CPU111が、ステップS205で特定した処理が、「カスタムモジュール作成」であると判断した場合(ステップS220/YES)、ステップS221へ進む。一方、判断した結果が、「カスタムモジュール作成」処理でない場合(ステップS220/NO)は、ステップS219へ進む。
Returning to the description of FIG. When the
ステップS221では、CPU111は「カスタムモジュール作成」処理を行う。図31で「カスタムモジュール作成」処理の詳細な手順の一例を示す。
In step S221, the
図31は、図30のステップS221のカスタムモジュール作成処理の詳細を示す。本処理をCPU111に実行させるためのプログラムは外部メモリ116に記憶されており、本処理の実行要求を入力装置120より受け付けた場合に、CPU111は、当該プログラムをRAM112にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。
FIG. 31 shows details of the custom module creation processing in step S221 of FIG. A program for causing the
まず、ステップS1201では、情報処理装置110のCPU111(たとえば、ソースコード変換部430)は、モジュール・ソースコードマスタテーブル411に予め用意されている「カスタムモジュール」処理の基本ソースコードを読み出し、読み出したソースコードをソースコードテーブル413に記憶する。
First, in step S1201, the CPU 111 (for example, the source code conversion unit 430) of the
ステップS1202に進むと、ステップS1201で、ソースコードテーブル413に読み出した「カスタムモジュール」処理の基本ソースコードを、図33に一例を示すソースコード記述領域3311に表示する。このステップで、ユーザは必要に応じてロジックを追加することになる。
In step S1202, the basic source code of the “custom module” process read in the source code table 413 in step S1201 is displayed in the source
続いて、ステップS1203において、情報処理装置110のCPU111は、入力されたソースコードの解析を行う。ここでは、一時的に処理フロー・入出力パラメータテーブルを新規に作成し、カスタムモジュールに渡す情報(画像バッファなど)、つまりカスタムモジュールを追加する前ステップの結果情報を入力パラメータ605に設定する。また、作成するカスタムモジュールの結果情報(画像バッファなど)、つまり、カスタムステップの次ステップに渡す情報を出力パラメータ606に設定する。さらに、情報処理装置110のCPU111は、追加されたコードで、ソースコードテーブル413で更新し、RAM112に記憶する。
Subsequently, in step S1203, the
ステップS1204では、情報処理装置110のCPU111(コンパイル部440)は、ステップS1203で解析を行ったソースコードのコンパイルを行い、RAM112上に一時的に、オブジェクトコードを記憶する。
In step S1204, the CPU 111 (compile unit 440) of the
ステップS1205では、ステップS1204でRAM112上に記憶されたオブジェクトコードを実行するが、実行手順の詳細については、図32を参照して後述する。
In step S1205, the object code stored on the
ステップS1206では、情報処理装置110のCPU111は、ステップS1205で実行した結果を、結果描画領域1103に表示する。
In step S1206, the
ステップS1207では、ステップS1201からS1206で作成した、カスタムモジュールを登録するか否かの判断を行う。 In step S1207, it is determined whether to register the custom module created in steps S1201 to S1206.
ステップS1207の判断処理で、CPU111が登録しないと判断した場合(ステップS1207/NO)、「カスタムモジュール作成」処理を終了する。一方、ステップS1207の判断処理で、CPU111が登録すると判断した場合には(ステップS1207/YES)、処理をステップS1208に進める。ステップS1208では、ステップS1203でRAM112に記憶しているソースコードテーブル413から、デバッグ情報を除去し、リリース・コンパイルを行う。
If it is determined in step S1207 that the
続いて、ステップS1209に進むと、ステップS1203で一時的に作成した処理フロー・入出力パラメータテーブルの各フィールドの情報を、すでに処理フローを登録している処理フロー・入出力パラメータテーブルに1レコード追加して、設定を移行する。 Subsequently, when proceeding to step S1209, one record is added to the information of each field of the processing flow / input / output parameter table temporarily created in step S1203 to the processing flow / input / output parameter table in which the processing flow is already registered. To migrate the settings.
さらに、ステップS1210では、情報処理装置110のCPU111は、前ステップにおいて作成したカスタムモジュールを、プロジェクト構築画面1100のツールボックス1101に追加設定する。以上がカスタムモジュール作成の詳細な説明である。これにより、新たに作成したカスタムモジュールを当初から用意されているモジュールのように前述の新規追加処理で選択することが可能となる。
In step S1210, the
次に、図32を参照して図31のステップS1205の実行処理の詳細について説明する。図32は、図31のステップS1205の実行処理の処理手順の詳細の一例を示すフローチャートである。本処理をCPU111に実行させるためのプログラムは外部メモリ116に記憶されており、本処理の実行要求を入力装置120より受け付けた場合に、CPU111は、当該プログラムをRAM112にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。
Next, details of the execution process of step S1205 of FIG. 31 will be described with reference to FIG. FIG. 32 is a flowchart illustrating an example of details of the processing procedure of the execution processing in step S1205 of FIG. A program for causing the
ステップS1301では、実行モードの判定を行う。ここで、実行モードは、デバッグあり(ブレークポイントあり)、もしくはブレークポイントのなしのモードがあるが、ステップ実行などの他のモードがあってもよい。 In step S1301, the execution mode is determined. Here, the execution mode includes a mode with debugging (with a breakpoint) or a mode without a breakpoint, but there may be other modes such as step execution.
ステップS1302では、CPU111はステップS1301で判定したモードに、デバッグ情報が含まれているか否かの判断を行う。ステップS1302の判断処理で、CPU111がデバッグなし実行であると判断した場合(ステップS1302/NO)には、処理をステップS1308に進め、処理を実行する。一方、ステップS1302の判断処理で、デバッグありと判断した場合には(ステップS1302/YES)、処理をステップS1303に進める。
In step S1302, the
ステップS1303では、CPU111は、図31のステップS1203で解析したソースコードに、ブレークポイントがあるか否かを判断する。その判断処理で、CPU111がブレークポイントがないと判断した場合には(ステップS1303/NO)、処理をステップS1308に進め、処理を実行する。一方、ブレークポイントがあると判断した場合には、(ステップS1303/YES)、処理をステップS1304へ進める。
In step S1303, the
ステップS1304では、情報処理装置110のCPU111は、ソースコードにおいてブレークポイントを設定された行まで処理を実行する。同時にステップS1305では、ステップS1304で実行した行のソースコードを表示する。
In step S1304, the
ステップS1305では、情報処理装置110のCPU111は、必要に応じて変数などの途中経過を表示する。ステップS1306に進むと、CPU111は、デバッグ実行を続けるか否かの判断を行う。ステップS1306の判断の結果、続行すると判断した場合(ステップS1306/YES)、ステップS1303に戻る。一方、続行しないと判断した場合には(ステップS1306/NO)、処理をステップS1308に進め、処理を実行する。
In step S1305, the
ステップS1308に進むと、作成したカスタムモジュールに従った処理を実行する。以上が図31のステップS1205の実行処理の詳細な説明である。 In step S1308, processing according to the created custom module is executed. The above is the detailed description of the execution process of step S1205 of FIG.
次に、図35を参照して、図7のステップS113のシステム設定画面表示処理の詳細について説明する。図35は、図7のステップS113のシステム設定画面表示処理の詳細な処理手順の一例を示すフローチャートである。本処理をCPU111に実行させるためのプログラムは外部メモリ116に記憶されており、本処理の実行要求を入力装置120より受け付けた場合に、CPU111は、当該プログラムをRAM112にロードし、ロードしたプログラムによる制御に従って本処理を実行することになる。なお、「オンライン検査」処理は、メインメニュー以外にも、直接実行ファイルを実行することでも起動できる。
Next, with reference to FIG. 35, details of the system setting screen display processing in step S113 of FIG. 7 will be described. FIG. 35 is a flowchart showing an example of a detailed processing procedure of the system setting screen display processing in step S113 of FIG. A program for causing the
図7のステップS113の処理が呼ばれた際には、情報処理装置110のCPU111は、システム設定画面3500を表示する。ここでは例をあげないが、本ウィンドウには、図34で示すシステム情報テーブルT3400に示すように、オンライン検査プログラム実行時に開始されるプロジェクトを設定する「スタートアッププロジェクト名」フィールド3402、データ通信の情報を設定する「データ通信」フィールド3403、情報処理装置110の外部に画像データを転送する情報を設定する「ファイル転送」フィールド3403、カメラ情報を設定する「カメラテーブル」フィールド3404が設定できる項目を含んでいる。また「カメラテーブル」フィールド3404で参照する、カメラテーブルT3410の一例を図34のカメラテーブルT3410で示す。カメラテーブルT3410では、「デバイス名」フィールド3412、カメラ設定ファイル等を指定する「プロパティフィールド」3413、原点を設定する「原点設定」フィールド3414、キャリブレーション情報を設定する「補正情報」3415フィールドを含んでいる。
When the process of step S113 in FIG. 7 is called, the
図34に、図4で示すシステム情報テーブル419の一例を示す。 FIG. 34 shows an example of the system information table 419 shown in FIG.
まず、ステップS1601では、情報処理装置110のCPU111は、「オンライン検査」処理が、メインメニューから実行されたか、直接実行されたかの特定を行う。
First, in step S1601, the
次に、ステップS1602では、ステップS1601で特定したモードがメインメニューからであるか否かを判断する。ステップS1602に判断の結果、メインメニューからである場合(S1602/YES)、ステップS1603に進む、一方、メインメニューからでない場合(S1602/NO)、ステップS1604に進む。 Next, in step S1602, it is determined whether the mode specified in step S1601 is from the main menu. If the result of determination in step S1602 is from the main menu (S1602 / YES), the process proceeds to step S1603, while if not from the main menu (S1602 / NO), the process proceeds to step S1604.
ステップS1603では、外部メモリ160から読みだす、プロジェクト名を入力する画面を表示する。
In step S1603, a screen for inputting a project name read from the
また、ステップS1604では、情報処理装置110のCPU111は、システム情報テーブルT3400のスタートアッププロジェクト名3402で設定されたプロジェクト名を取得する。
In step S1604, the
続いて、ステップS1605に進むと、情報処理装置110のCPU111は、システム情報テーブルT3400から、データ通信3403、ファイル転送3404、及び、カメラテーブル3405をRAM112に読みだす。
Subsequently, in step S1605, the
最後に、ステップS1606では、情報処理装置110のCPU111は、ステップS1605でRAM112に読みだされたシステム情報をもとに、オンライン検査画面をCRT130に表示する。
Finally, in step S1606, the
<第3の実施例>
以下、本願発明の第3の実施例の説明をする。この実施例では、処理フローを構築し、オンライン検査で実行する際に、ユーザが独自の画面レイアウトとして編集することができる。
<Third embodiment>
The third embodiment of the present invention will be described below. In this embodiment, when the processing flow is constructed and executed by online inspection, the user can edit it as a unique screen layout.
図36は、第3の実施例におけるプロジェクト構築の詳細な手順の一例を示すフローチャートである。なお、第1の実施例におけるプロジェクト構築の処理(図10)と同様の処理を行うステップには、図10と同じステップ番号を付与し、処理の詳細な説明については割愛する。 FIG. 36 is a flowchart illustrating an example of a detailed procedure for project construction in the third embodiment. Note that the same step numbers as those in FIG. 10 are assigned to steps for performing the same processing as the project construction processing (FIG. 10) in the first embodiment, and detailed description of the processing is omitted.
図36のステップS222では、図10のステップS205で特定した処理が「レイアウト編集」処理か否かを判断する。ステップS222の判断の結果、ステップS205で特定した処理が、「レイアウト編集」処理である場合(ステップS222/YES)、ステップS223へ進む。一方、判断した結果が、「レイアウト編集」処理でない場合(ステップS222/NO)は、ステップS219へ進む。 In step S222 in FIG. 36, it is determined whether or not the process specified in step S205 in FIG. 10 is a “layout edit” process. As a result of the determination in step S222, when the process specified in step S205 is the “layout edit” process (step S222 / YES), the process proceeds to step S223. On the other hand, if the determined result is not the “layout editing” process (step S222 / NO), the process proceeds to step S219.
ステップS223へ進むと、「レイアウト編集」処理を行う。図38で「レイアウト編集」処理の詳細な手順の一例を示す。 In step S223, "layout editing" processing is performed. FIG. 38 shows an example of a detailed procedure of the “layout editing” process.
次に、図38を参照して、図36のステップS223のレイアウト編集処理の詳細について説明する。この処理では、上記第1乃至第2の実施例で作成されたプログラムを実行させるための画面作成処理を行うことになる。図38は、画面作成処理の詳細な処理の一例を示すフローチャートである。本処理を、CPU111に実行させるためのプログラムは外部メモリ116に記憶されており、CPUは本処理を行う際に、当該プログラムをRAM112にロードし、当該プログラムの制御に従って、本処理を行うことになる。
Next, the details of the layout editing process in step S223 of FIG. 36 will be described with reference to FIG. In this process, a screen creation process for executing the programs created in the first and second embodiments is performed. FIG. 38 is a flowchart illustrating an example of detailed processing of screen creation processing. A program for causing the
まず、CPU111は、図37に示すレイアウト画面を、ビデオコントローラ115bを介して、CRT130に表示させる(ステップS3801)。レイアウト画面の詳細については、図46を参照して説明する。
First, the
次に、図37の画面に対する操作入力装置を介してのユーザによる操作に基づき、コントロールの入力指示を受け付けたか(入力あり?)を判定する(ステップS3802)。入力指示を受け付けた場合(ステップS3802/YES)と判定した場合には、入力指示の処理内容を判定する(ステップS3803)。 Next, it is determined whether a control input instruction has been received (has an input?) Based on an operation by the user via the operation input device on the screen of FIG. 37 (step S3802). If it is determined that an input instruction has been accepted (step S3802 / YES), the processing content of the input instruction is determined (step S3803).
ステップS3803での入力内容の判定結果、その入力内容が、新規ボタン追加処理であると判定した場合には(ステップS3804/YES)、ステップS3805に進み、新規ボタン追加処理を行うことになる。新規ボタン追加処理の詳細については、図39を参照して説明する。 If it is determined in step S3803 that the input content is a new button addition process (YES in step S3804), the process advances to step S3805 to perform a new button addition process. Details of the new button addition processing will be described with reference to FIG.
ステップS3804での入力内容の判定結果、その入力内容が、新規画面追加処理であると判定した場合には(ステップS3806/YES)、ステップS3807に進み、新規画面追加処理を行うことになる。新規画面追加処理の詳細については、図40を参照して説明する。 If it is determined in step S3804 that the input content is a new screen addition process (YES in step S3806), the process advances to step S3807 to perform a new screen addition process. Details of the new screen addition processing will be described with reference to FIG.
ステップS3804での入力内容の判定結果、その入力内容が、新規ボックス追加処理であると判定した場合には(ステップS3808/YES)、ステップS3809に進み、新規ボックス追加処理を行うことになる。新規ボックス追加処理の詳細については、図41を参照して説明する。 If it is determined in step S3804 that the input content is a new box addition process (YES in step S3808), the process advances to step S3809 to perform a new box addition process. Details of the new box addition processing will be described with reference to FIG.
ステップS3804での入力内容の判定結果、その入力内容が、変更・移動処理であると判定した場合には(ステップS3810/YES)、ステップS3811に進み、変更・移動処理を行うことになる。変更・移動処理の詳細については、図42を参照して説明する。 If it is determined in step S3804 that the input content is a change / movement process (YES in step S3810), the process proceeds to step S3811 to perform the change / movement process. Details of the change / move process will be described with reference to FIG.
ステップS3804での入力内容の判定結果、その入力内容が、保存処理であると判定した場合には(ステップS3812/YES)、ステップS3813に進み、保存処理を行うことになる。保存処理の詳細については、図43を参照して説明する。 If it is determined in step S3804 that the input content is a storage process (YES in step S3812), the process advances to step S3813 to perform the storage process. Details of the storage process will be described with reference to FIG.
そして、以上の処理をステップS3814で開発終了指示を受け付けたと判断するまで繰り返すことになる。以上が、画面作成処理の大まかな説明である。 The above processing is repeated until it is determined in step S3814 that a development end instruction has been received. The above is a rough description of the screen creation process.
次に、図37を参照して、図38のステップS3801でディスプレイ装置130に表示されるレイアウト画面の一例について説明する。レイアウト画面3700には、利用可能な処理コントロール(即ち、数値結果を表示するテキストボックスなどオンラインGUIの構成に係るコントロール)を表示するツールボックス3701と、画面構成(即ち、テキストボックスやボタンなど)を表示するデザイン領域3702と、各コントロールに係るプロパティを表示するプロパティ表示領域3703等が設けられている。
Next, an example of a layout screen displayed on the
開発者(ユーザ)は、ツールボックス3701に表示されている処理コントロールをデザイン領域にドラッグアンドドロップ処理をすることにより、希望の位置に配置し、その後、当該処理コントロールのサイズの変更や、プロパティ表示欄に表示されているプロパティを変更することで、画面の作成が可能となっている。以上が、レイアウト画面3700の説明である。
The developer (user) arranges the processing control displayed in the
次に、図30を参照して、図38のステップS3805の新規ボタン追加処理について説明する。まず、CPU111は、新規ボタンの追加処理の指示を受け付けると、当該ボタンを配置する画面レイアウトテーブルが既に作成されているかを判定する(ステップS3901)。そして、ステップS3901の判定処理の結果、テーブルがまだ作成されていない(テーブルありでNO)と判定された場合(ステップS3902/NO)、画面レイアウトテーブルを作成する。画面レイアウトテーブルの一例については、図44を参照して説明する。
Next, with reference to FIG. 30, the new button addition processing in step S3805 of FIG. 38 will be described. First, when receiving an instruction to add a new button, the
図44は、画面レイアウトテーブルの一例を示す模式図である。図44の画面レイアウトテーブル4400には、Index4401、コントロール種別4402、デザイン登録名4403、プロパティテーブル4404が設定されている。
FIG. 44 is a schematic diagram illustrating an example of a screen layout table. In the screen layout table 4400 of FIG. 44, an
コントロール種別4402には、画面に設定されている各コントロールの種別が、デザイン登録名にはコントロールのIDが、プロパティテーブル4404には、当該コントロールの詳細を管理するプロパティテーブルのIDが登録されることになる。以上が、画面レイアウトテーブルの説明である。
The type of each control set on the screen is registered in the
図39の説明に戻る。そして、その後、追加されたボタンコントロールの種類を特定する(ステップS3904)。ボタンコントロールの種類としては、「単発検査」「連続検査」「検査停止」「検査設定」及び「終了」などが用意されている。 Returning to the description of FIG. Thereafter, the type of the added button control is specified (step S3904). As the types of button controls, “single inspection”, “continuous inspection”, “inspection stop”, “inspection setting”, “end”, and the like are prepared.
その後、ボタンコントロールの詳細を示すボタンコントロールテーブル(図45)に、当該追加されたボタンコントロールの詳細を登録するためのレコードを追加し(ステップS3905)、ボタンの基本プロパティを外部メモリ116から読み出し、当該レコードに設定する(ステップS3906)。そして、ステップS3906で読み出したプロパティを図46のプロパティ表示領域3703に表示するとともに、追加されたコントロールをデザイン領域3702に描画する。以上が、図47のステップS3805の新規ボタン追加処理の詳細である。
Thereafter, a record for registering the details of the added button control is added to the button control table (FIG. 45) showing the details of the button control (step S3905), and the basic properties of the button are read from the
図45を参照して、ボタンコントロールテーブルの一例について説明する。図45に示すボタンコントロールテーブルT4500には、Index(4501)、基本プロパティ(4502)、実行内容(4503)、カスタム1(4504)、カスタム2(4505)・・・が設定されている。 An example of the button control table will be described with reference to FIG. In the button control table T4500 shown in FIG. 45, Index (4501), basic property (4502), execution content (4503), custom 1 (4504), custom 2 (4505),... Are set.
Index(4501)には、当該コントロールのIndex情報が、基本プロパティ(4502)にはボタンコントロールの基本プロパティ情報が、実行内容(4503)には、当該ボタンが押下指示された場合に実行する実行内容が、カスタム1(4504)、カスタム2(4505)・・・には、ボタンコントロールの位置情報、ボタンのサイズ、形状等の情報が登録されることになる。以上が図45のボタンコントロールテーブルの説明である。 The Index (4501) includes the index information of the control, the basic property (4502) includes the basic property information of the button control, and the execution content (4503) includes the execution content to be executed when the button is instructed to be pressed. However, in the custom 1 (4504), custom 2 (4505)..., 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.
次に、図40を参照して、図38のステップS3807の新規画面追加処理の詳細について説明する。この処理は、図30で説明した新規ボタン追加処理と略同等である。 Next, with reference to FIG. 40, details of the new screen addition processing in step S3807 of FIG. 38 will be described. This process is substantially the same as the new button addition process described with reference to FIG.
まず、CPU111は、画像処理結果を表示するための新規画面追加処理の指示を受け付けると、処理の結果を表示するための画面を配置する画面レイアウトテーブルが既に作成されているかを判定する(ステップS4001)。そして、ステップS4001の判定処理の結果、テーブルがまだ作成されていない(テーブルありでNO)と判定された場合(ステップS4002/NO)、画面レイアウトテーブルを作成する(ステップS4003)。
First, when receiving an instruction for a new screen addition process for displaying an image processing result, the
その後、追加された画面に表示するデータを設定する(ステップS4004)。ここで設定するデータは、例えば、当該画面に設定されている画面コントロールにより実行される処理フローでの処理結果であり、具体的には当該処理フローを示す処理フロー・入出力パラメータテーブル中の入力パラメータ若しくは出力パラメータとして設定されている変数が指定される。 Thereafter, data to be displayed on the added screen is set (step S4004). 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.
その後、画面コントロールの詳細を示す画面コントロールテーブル(図46)に、当該追加されたボタンコントロールの詳細を登録するためのレコードを追加し(ステップS4005)、画面の基本プロパティを外部メモリ116から読み出し、当該レコードに設定する(ステップS4006)。そして、ステップS4006で読み出したプロパティを図46のプロパティ表示領域3703に表示するとともに、追加されたコントロールをデザイン領域3702に描画する。以上が、図38のステップS3807の新規画面追加処理の詳細である。
Thereafter, a record for registering the details of the added button control is added to the screen control table (FIG. 46) showing the details of the screen control (step S4005), and the basic properties of the screen are read from the
図46を参照して、画面コントロールテーブルの一例について説明する。画面コントロールテーブルT4600には、Index(4601)、基本プロパティ(4602)、リソース(4603)、カスタム1(4604)、カスタム2(4605)・・・等が設定されている。 An example of the screen control table will be described with reference to FIG. In the screen control table T4600, Index (4601), basic property (4602), resource (4603), custom 1 (4604), custom 2 (4605), etc. are set.
Index(4601)には、当該コントロールのIndex情報が、基本プロパティ(4602)には画面コントロールの基本プロパティ情報が、リソースには、当該画面に表示されるデータを保持する変数が、カスタム1(4604)、カスタム2(4605)・・・には、画面コントロールの位置情報、画面コントロールのサイズ、等の情報が登録されることになる。以上が図46の画面コントロールテーブルの説明である。 Index (4601) includes Index information of the control, Basic Property (4602) includes basic property information of the screen control, and Resource includes a variable that holds data displayed on the screen as Custom 1 (4604). ), Custom 2 (4605)..., 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.
次に、図41を参照して、図38のステップS3809の新規ボックス追加処理の詳細について説明する。この処理は、図39で説明した新規ボタン追加処理と略同等である。 Next, with reference to FIG. 41, the details of the new box addition processing in step S3809 in FIG. 38 will be described. This process is substantially the same as the new button addition process described with reference to FIG.
まず、CPU111は、画像処理結果を表示するための新規ボックス追加処理の指示を受け付けると、処理の結果を表示するためのボックスを配置する画面レイアウトテーブルが既に作成されているかを判定する(ステップS4101)。そして、ステップS4101の判定処理の結果、テーブルがまだ作成されていない(テーブルありでNO)と判定された場合(ステップS4102/NO)、画面レイアウトテーブルを作成する(ステップS4103)。
First, when receiving an instruction for a new box addition process for displaying an image processing result, the
その後、追加された画面に表示するデータを設定する(ステップS4104)。ここで設定するデータは、例えば、当該画面に設定されているボタンコントロールにより実行される処理フローでの処理結果であり、具体的には当該処理フローを示す処理フロー・入出力パラメータテーブル中の入力パラメータ若しくは出力パラメータとして設定されている変数が指定される。 Thereafter, data to be displayed on the added screen is set (step S4104). 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.
その後、ボックスコントロールの詳細を示すボックスコントロールテーブル(図47)に、当該追加されたボックスコントロールの詳細を登録するためのレコードを追加し(ステップS4105)、画面の基本プロパティを外部メモリ116から読み出し、当該レコードに設定する(ステップS4106)。そして、ステップS4106で読み出したプロパティを図46のプロパティ表示領域3703に表示するとともに、追加されたコントロールをデザイン領域3702に描画する。以上が、図38のステップS3809の新規ボックス追加処理の詳細である。
Thereafter, a record for registering the details of the added box control is added to the box control table (FIG. 47) showing the details of the box control (step S4105), and the basic properties of the screen are read from the
図47を参照して、ボックスコントロールテーブルの一例について説明する。ボックスコントロールテーブル4700には、Index(4701)、基本プロパティ(4702)、表示変数(4703)、カスタム1(4704)、カスタム2(4705)・・・等が設定されている。 An example of the box control table will be described with reference to FIG. In the box control table 4700, Index (4701), basic property (4702), display variable (4703), custom 1 (4704), custom 2 (4705), etc. are set.
Index(4701)には、当該コントロールのIndex情報が、基本プロパティ(4702)には画面コントロールの基本プロパティ情報が、表示変数(4703)には、当該画面に表示されるデータを保持する変数が、カスタム1(4704)、カスタム2(4705)・・・には、ボックスコントロールの位置情報、ボックスコントロールのサイズ、等の情報が登録されることになる。以上が図47の画面コントロールテーブルの説明である。 Index (4701) includes index information of the control, basic property (4702) includes basic property information of the screen control, and display variable (4703) includes a variable that holds data displayed on the screen. Custom 1 (4704), custom 2 (4705)... 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.
次に、図42を参照して、図38のステップS3811に示す、変更・移動処理の詳細について説明する。CPU111は、変更若しくは移動指示を受け付けた場合に、まず変更対象となるコントロールを特定する(ステップS4201)。その後、当該変更要求を受け付けた種別コントロールの詳細を管理するコントロールテーブルから変更対象のコントロールのレコードを取得する(ステップS4202)。
Next, with reference to FIG. 42, the details of the change / move process shown in step S3811 of FIG. 38 will be described. When the
そしてステップS4202で取得したレコードに対して、ユーザから受け付けた変更内容に従った変更処理を行う(ステップS4203)。例えば、コントロールの移動の場合には、コントロールの座標値を示す情報に対する変更処理が行われることになる。 And the change process according to the change content received from the user with respect to the record acquired by step S4202 is performed (step S4203). For example, in the case of movement of a control, a change process for information indicating the coordinate value of the control is performed.
そして、変更されたプロパティ情報を図37のプロパティ表示領域3703に表示するとともに、変更されたコントロールの再描画処理を行う。以上が、図42のステップS3811の変更・移動処理の詳細である。
Then, the changed property information is displayed in the
図43を参照して、図38のステップS3813の保存処理の詳細について説明する。まず、CPU111は、外部メモリ116に記憶されているソースプログラムに従って、図47〜図42の処理により作成された画面に対する操作指示等により発生するイベントに応じて、設定された処理を実行するためのソースプログラムを作成する(ステップS4301)。そして、そのソースプログラムを外部メモリ116に保存する(ステップS4302)。この処理を行う際に、実際にソースプログラムのコンパイル処理、リンク処理を実行し、その後、デバッグ処理を行わせるようにしても勿論かまわない。
With reference to FIG. 43, the details of the storage processing in step S3813 in FIG. 38 will be described. First, in accordance with a source program stored in the
本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、1つの機器からなる装置に適用してもよい。 The present invention can be implemented as a system, apparatus, method, program, storage medium, or the like, and can be applied to a system including a plurality of devices. You may apply to the apparatus which consists of one apparatus.
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。 Note that the present invention includes a software program that implements the functions of the above-described embodiments directly or remotely from a system or apparatus. The present invention also includes a case where the system or the computer of the apparatus is achieved by reading and executing the supplied program code.
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。 Accordingly, since the functions of the present invention are implemented by computer, the program code installed in the computer also implements the present invention. In other words, the present invention includes a computer program itself for realizing the functional processing of the present invention.
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。 In that case, as long as it has the function of a program, it may be in the form of object code, a program executed by an interpreter, script data supplied to the OS, and the like.
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RWなどがある。また、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などもある。 Examples of the recording medium for supplying the program include a flexible disk, hard disk, optical disk, magneto-optical disk, MO, CD-ROM, CD-R, and CD-RW. There are also magnetic tape, nonvolatile memory card, ROM, DVD (DVD-ROM, DVD-R) and the like.
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。 As another program supply method, a browser on a client computer is used to connect to an Internet home page. The computer program itself of the present invention or a compressed file including an automatic installation function can be downloaded from the homepage by downloading it to a recording medium such as a hard disk.
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。 It can also be realized by dividing the program code constituting the program of the present invention into a plurality of files and downloading each file from a different homepage. That is, a WWW server that allows a plurality of users to download a program file for realizing the functional processing of the present invention on a computer is also included in the present invention.
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。 In addition, the program of the present invention is encrypted, stored in a storage medium such as a CD-ROM, distributed to users, and key information for decryption is downloaded from a homepage via the Internet to users who have cleared predetermined conditions. Let me. It is also possible to execute the encrypted program by using the downloaded key information and install the program on a computer.
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。 Further, the functions of the above-described embodiments are realized by the computer executing the read program. In addition, based on the instructions of the program, an OS or the like running on the computer performs part or all of the actual processing, and the functions of the above-described embodiments can also be realized by the processing.
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。 Further, the program read from the recording medium is written in a memory provided in a function expansion board inserted into the computer or a function expansion unit connected to the computer. Thereafter, the CPU of the function expansion board or function expansion unit performs part or all of the actual processing based on the instructions of the program, and the functions of the above-described embodiments are realized by the processing.
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。 The above-described embodiments are merely examples of implementation in carrying out the present invention, and the technical scope of the present invention should not be construed as being limited thereto. That is, the present invention can be implemented in various forms without departing from the technical idea or the main features thereof.
100 画像処理システム
110 情報処理装置)
120 入力装置
130 ディスプレイ装置
140 カメラ
150 照明装置コントローラ
160 照明装置
170 外部機器コントローラ
180 ステージ
181 検査対象
190 LAN(Local Area Network)
111 CPU
112 RAM
113 ROM
114 システムバス
115a 入力コントローラ
115b ビデオコントローラ
115c メモリコントローラ
115d、115e、115g 通信I/Fコントローラ
115f 画像入力コントローラ
116 外部メモリ
100
120
111 CPU
112 RAM
113 ROM
114
Claims (10)
前記アプリケーションプログラムに追加可能な複数の処理アイテムと、その処理アイテムに係る処理を実現するためのプログラムの生成に用いられるソースコードとを対応付けて記憶する記憶手段と、
前記複数の処理アイテムを表示する選択画面から前記アプリケーションプログラムに追加する処理アイテムの指定を受け付け、また前記選択画面におけるユーザからの指示により、ユーザがソースコードを記述するための入力画面を当該ソースコードの基礎となる部分を含めて表示し、デバッグのためのデバッグ情報を含めたソースコードの記述を受け付ける受付手段と、
前記受付手段での前記処理アイテムの指定の受付に応じて、前記処理アイテムによる画像処理結果の画像データを表示する表示領域を設定する設定手段と、
前記受付手段で受け付けた前記処理アイテムに対応するソースコードを用いて、前記アプリケーションプログラムを生成し、また前記受付手段で記述を受け付けたソースコードから、前記デバッグ情報を除去することで処理アイテムを生成する生成手段と、
前記生成手段で生成したアプリケーションプログラムを前記記憶手段に登録する登録手段と、
前記登録手段で登録したアプリケーションプログラムの実行時に、処理対象画像に対する前記処理アイテムに係る処理を行った結果の結果画像データを前記設定手段で設定された表示領域に表示する表示制御手段と、
を備え、
前記登録手段は、前記生成手段で生成された処理アイテムが前記受付手段で前記選択画面における指定の受付が可能となるよう、当該生成された処理アイテムを前記アプリケーションプログラムに追加可能な処理アイテムとして前記記憶手段に追加登録することを特徴とする情報処理装置。 An information processing apparatus for generating an application program for causing a computer to perform image processing,
Storage means for storing a plurality of process items that can be added to the application program and source code used for generating a program for realizing the process related to the process item in association with each other;
The specification of a process item to be added to the application program is received from the selection screen for displaying the plurality of process items, and an input screen for the user to describe the source code is displayed according to an instruction from the user on the selection screen. Receiving means for displaying the source code including the debugging information for debugging, including the basic part of
A setting unit that sets a display area for displaying image data of an image processing result by the processing item in response to the reception of the designation of the processing item by the receiving unit;
The application program is generated using the source code corresponding to the processing item received by the receiving unit, and the processing item is generated by removing the debug information from the source code whose description is received by the receiving unit Generating means for
Registration means for registering the application program generated by the generating means in the storage means;
Display control means for displaying the result image data as a result of performing the processing related to the processing item on the processing target image in the display area set by the setting means when executing the application program registered by the registration means;
With
Said registration means so that the process item generated by the generating means is possible to specify the reception of the selection screen by said receiving means, said processing items in which the generated as addable process item to the application program An information processing apparatus that is additionally registered in a storage unit.
前記登録手段は、前記生成手段で生成された前記処理アイテムを、前記受付手段で前記処理フローに対する追加の指定の受付が可能なように、前記記憶手段に追加登録することを特徴とする請求項1に記載の情報処理装置。 The accepting unit accepts designation of a process item to be added to a process flow indicating a flow of a series of processes of the application program from a selection screen displaying the plurality of process items,
The registration unit additionally registers the process item generated by the generation unit in the storage unit so that the reception unit can receive an additional designation for the processing flow. The information processing apparatus according to 1.
前記受付手段は前記第1の表示領域に表示されているメニュー項目に対する前記第2の領域へのドラッグアンドドロップ処理を受け付けることで、前記アプリケーションプログラムに追加する処理アイテムの指定を受け付けることを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。 A first display area serving as the selection screen for displaying a menu item for accepting designation of a process item; and a second display area for displaying display information indicating the process and execution order of the process item accepted by the accepting means. A display means for displaying screen information;
The accepting means accepts a designation of a process item to be added to the application program by accepting a drag and drop process to the second area for the menu item displayed in the first display area. The information processing apparatus according to any one of claims 1 to 3.
前記情報処理装置の受付手段が、前記複数の処理アイテムを表示する選択画面から前記アプリケーションプログラムに追加する処理アイテムの指定を受け付け、また前記選択画面におけるユーザからの指示により、ユーザがソースコードを記述するための入力画面を当該ソースコードの基礎となる部分を含めて表示し、デバッグのためのデバッグ情報を含めたソースコードの記述を受け付ける受付ステップと、
前記情報処理装置の設定手段が、前記受付ステップでの前記処理アイテムの指定の受付に応じて、前記処理アイテムによる画像処理結果の画像データを表示する表示領域を設定する設定ステップと、
前記情報処理装置の生成手段が、前記受付ステップで受け付けた前記処理アイテムに対応するソースコードを用いて、前記アプリケーションプログラムを生成し、また前記受付ステップで記述を受け付けたソースコードから、前記デバッグ情報を除去することで処理アイテムを生成する生成ステップと、
前記情報処理装置の登録手段が、前記生成ステップで生成したアプリケーションプログラムを前記記憶手段に登録する登録ステップと、
前記情報処理装置の表示制御手段が、前記登録ステップで登録したアプリケーションプログラムの実行時に、処理対象画像に対する前記処理アイテムに係る処理を行った結果の結果画像データを前記設定ステップで設定された表示領域に表示する表示制御ステップと、
を備え、
前記登録ステップは、前記生成ステップで生成された処理アイテムが前記受付ステップで前記選択画面における指定の受付が可能となるよう、当該生成された処理アイテムを前記アプリケーションプログラムに追加可能な処理アイテムとして前記記憶手段に追加登録することを特徴とする情報処理装置の制御方法。 Storage means for storing a plurality of process items that can be added to an application program for causing a computer to perform image processing and source code used for generating a program for realizing processing related to the process items in association with each other A method for controlling the information processing apparatus for generating the application program,
The accepting means of the information processing apparatus accepts designation of a process item to be added to the application program from a selection screen that displays the plurality of process items, and a user describes source code according to an instruction from the user on the selection screen An input screen for displaying the source code including the basic part of the source code, and receiving a description of the source code including debug information for debugging ,
A setting step in which the setting unit of the information processing apparatus sets a display area for displaying image data of an image processing result by the processing item in response to receiving the designation of the processing item in the receiving step;
The generation unit of the information processing apparatus generates the application program using the source code corresponding to the processing item received in the receiving step, and the debug information from the source code whose description is received in the receiving step. Generating a process item by removing
A registration step in which the registration unit of the information processing apparatus registers the application program generated in the generation step in the storage unit;
The display area in which the display control unit of the information processing apparatus sets the result image data obtained as a result of performing the processing related to the processing item on the processing target image when the application program registered in the registration step is executed. Display control steps to be displayed on,
With
The registration step, so that the process item generated in the generation step is possible to specify the reception of the selection screen in the accepting step, the processing item which the generated as addable process item to the application program A method for controlling an information processing apparatus, wherein the information is additionally registered in a storage unit.
前記情報処理装置を、
前記複数の処理アイテムを表示する選択画面から前記アプリケーションプログラムに追加する処理アイテムの指定を受け付け、また前記選択画面におけるユーザからの指示により、ユーザがソースコードを記述するための入力画面を当該ソースコードの基礎となる部分を含めて表示し、デバッグのためのデバッグ情報を含めたソースコードの記述を受け付ける受付手段と、
前記受付手段での前記処理アイテムの指定の受付に応じて、前記処理アイテムによる画像処理結果の画像データを表示する表示領域を設定する設定手段と、
前記受付手段で受け付けた前記処理アイテムに対応するソースコードを用いて、前記アプリケーションプログラムを生成し、また前記受付手段で記述を受け付けたソースコードから、前記デバッグ情報を除去することで処理アイテムを生成する生成手段と、
前記生成手段で生成したアプリケーションプログラムを前記記憶手段に登録する登録手段と、
前記登録手段で登録したアプリケーションプログラムの実行時に、処理対象画像に対する前記処理アイテムに係る処理を行った結果の結果画像データを前記設定手段で設定された表示領域に表示する表示制御手段
として機能させ、
前記登録手段は、前記生成手段で生成された処理アイテムが前記受付手段で前記選択画面における指定の受付が可能となるよう、当該生成された処理アイテムを前記アプリケーションプログラムに追加可能な処理アイテムとして前記記憶手段に追加登録することを特徴とするコンピュータに読み取り実行可能なプログラム。
Storage means for storing a plurality of process items that can be added to an application program for causing a computer to perform image processing and source code used for generating a program for realizing processing related to the process items in association with each other A computer-readable program for causing a computer to execute the control method of the information processing apparatus that generates the application program,
The information processing apparatus;
The specification of a process item to be added to the application program is received from the selection screen for displaying the plurality of process items, and an input screen for the user to describe the source code is displayed according to an instruction from the user on the selection screen. Receiving means for displaying the source code including the debugging information for debugging, including the basic part of
A setting unit that sets a display area for displaying image data of an image processing result by the processing item in response to the reception of the designation of the processing item by the receiving unit;
The application program is generated using the source code corresponding to the processing item received by the receiving unit, and the processing item is generated by removing the debug information from the source code whose description is received by the receiving unit Generating means for
Registration means for registering the application program generated by the generating means in the storage means;
When executing the application program registered by the registration means, function as display control means for displaying the result image data as a result of performing the processing related to the processing item on the processing target image in the display area set by the setting means,
Said registration means so that the process item generated by the generating means is possible to specify the reception of the selection screen by said receiving means, said processing items in which the generated as addable process item to the application program A program readable and executable by a computer, additionally registered in a storage means.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009272757A JP5334124B2 (en) | 2009-11-30 | 2009-11-30 | Information processing apparatus, control method thereof, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009272757A JP5334124B2 (en) | 2009-11-30 | 2009-11-30 | Information processing apparatus, control method thereof, and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011118467A JP2011118467A (en) | 2011-06-16 |
JP5334124B2 true JP5334124B2 (en) | 2013-11-06 |
Family
ID=44283758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009272757A Expired - Fee Related JP5334124B2 (en) | 2009-11-30 | 2009-11-30 | Information processing apparatus, control method thereof, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5334124B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11921619B2 (en) | 2018-11-28 | 2024-03-05 | Trust Technology Co., Ltd. | Programming devices and programs for creating and editing programs used for image processing |
JP7363601B2 (en) * | 2020-03-11 | 2023-10-18 | オムロン株式会社 | Image processing device, control method and program |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3625084B2 (en) * | 1995-04-14 | 2005-03-02 | 株式会社山武 | Reuse system for software parts |
JP4442042B2 (en) * | 2001-02-23 | 2010-03-31 | パナソニック電工株式会社 | Image processing program creation method and system |
JP3980392B2 (en) * | 2002-03-29 | 2007-09-26 | 滋賀県 | Development support system and development support method for image processing inspection apparatus |
JP2006285473A (en) * | 2005-03-31 | 2006-10-19 | Fujitsu Ltd | Manufacturing process management system |
JP2007025798A (en) * | 2005-07-12 | 2007-02-01 | Hitachi Ltd | Linguistic knowledge construction support program and method |
JP2009059203A (en) * | 2007-08-31 | 2009-03-19 | Omron Corp | Customization device for image processing function, customization method for image processing function, and program for customizing image processing function |
JP5060674B2 (en) * | 2007-11-13 | 2012-10-31 | 株式会社キーエンス | Program creation device for image processing controller |
-
2009
- 2009-11-30 JP JP2009272757A patent/JP5334124B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2011118467A (en) | 2011-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7864178B2 (en) | Creating machine vision inspections using a state diagram representation | |
US9141350B2 (en) | Embedded system performance | |
CN104267947B (en) | A kind of editor's method of pop-up picture and pop-up picture editor's device | |
CN108345456A (en) | Page code generation method, device, computer equipment and storage medium | |
EP3726373A1 (en) | Creating an app method and system | |
CN102591662B (en) | Method and device for drawing skin picture | |
US20170168860A1 (en) | Dynamically binding data in an application | |
US9116708B2 (en) | Program creation support apparatus, program, and information system | |
JP5334124B2 (en) | Information processing apparatus, control method thereof, and program | |
JP5344658B2 (en) | Information processing apparatus, control method thereof, and program | |
Yang et al. | GSWO: A programming model for GPU-enabled parallelization of sliding window operations in image processing | |
CN114090436A (en) | Test method and device | |
JP5257898B2 (en) | Information processing apparatus, control method therefor, and program | |
JP6168206B2 (en) | Information processing apparatus, information processing apparatus control method, and program | |
JP4767309B2 (en) | Information processing apparatus, information processing method, and computer program | |
JP2012003618A (en) | Information processing system, information processing method and information processor | |
US20240013079A1 (en) | Generating a graphical representation of a quantum circuit | |
CN112783483B (en) | Function creation method, device, equipment and medium based on suspension button assembly | |
US11809844B2 (en) | Creating an app method and system | |
JP4886910B1 (en) | Information processing apparatus, information processing apparatus control method, program, and recording medium storing program | |
CN112204480B (en) | Information processing apparatus and computer-readable recording medium | |
JP7067869B2 (en) | Image processing systems, information processing equipment, information processing methods, and information processing programs | |
JP2011186650A (en) | Apparatus and method for processing information, computer program, and recording medium with computer program recorded thereon | |
Kornyakov | Instant OpenCV for iOS | |
KR102382703B1 (en) | Multi-Channel Integration Platform Authoring Device and Method Thereby |
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 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130402 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20130531 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20130531 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130603 |
|
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: 20130625 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130724 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5334124 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313115 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |