This application claims priority based on 35 USC 119 from prior Japanese Patent Application No. 2011-148215 filed on Jul. 4, 2011, entitled “DEVELOPMENT SUPPORT APPARATUS AND DEVELOPMENT SUPPORT PROGRAM”, the entire contents of which are incorporated herein by reference.
1. Technical Field
This disclosure relates to a development support apparatus and a development support program, and more particularly, to development of a program executed by an image processing apparatus in a system including the image processing apparatus for performing an inspection and a determination by performing image processing on an image of a measurement target object.
2. Related Art
In the past, when a program executed by an image processing apparatus is developed, an object program, an image processing module, and the like, which are constituent units of the contents of the processing, are prepared in advance and used. Along with an increase in variety of object measurement modes by the image processing apparatus, a more flexible customization is desired in development of the program.
With regard to this point, for example, Japanese Unexamined Patent Publication No. 2009-59203 discloses a technique in which a new image processing module, generated according to a user operation, is added and stored in a storage unit that stores multiple image processing modules. The execution sequence of the multiple image processing modules that make up the image processing modules stored in the storage unit is determined according to a user operation whereby a basic flow is generated.
Japanese Unexamined Patent Publication No. 2009-87144 discloses a technique in which multiple image processing modules stored in a storage unit include a first image processing module for specifying an image processing function and a second image processing module as information for displaying a screen used for the input of setting information to the first image processing module. On the basis of information inputted to the displayed screen according to the second image processing module, the image processing function is customized by setting an image processing operation for the first image processing module.
According to the technique of the related art explained above, a desired basic flow can be generated when the image processing function is customized in accordance with the technique described in Japanese Unexamined Patent Publication No. 2009-87144, and only a necessary image processing module is generated by using the image processing module used in advance in accordance with the technique described in Japanese Unexamined Patent Publication No. 2009-59203.
However, a source code describing the contents of each processing needs to be generated in order to generate the image processing module as disclosed in Japanese Unexamined Patent Publication No. 2009-59203. Therefore, this added need to generate the source codes is a problem that imposes a heavy burden on a system integrator (SI). On the other hand, when a manufacturer of an image processing apparatus develops a program according to each client's demand, there is the problem that it is impossible to make ends meet in terms of the cost.
An object of an embodiment of the invention is to provide a development support apparatus and a development support program capable of facilitating development of a program executed by an image processing apparatus.
An aspect of the invention is a development support apparatus. The development support apparatus includes a storage part (e.g. electric circuit) configured to store a particular program for achieving a particular image processing; a reception part (e.g. electric circuit) configured to receive an operation from the outside; and an execution part (e.g. electric circuit) configured to execute the particular program when the reception part receives a particular operation. The storage part is configured to store screen display data for displaying a description of the particular program on a screen. When the reception part receives the particular operation, the execution part is further configured to display the description of the particular program, using the screen display data.
The storage part may store explanatory data for displaying an explanation about the particular program on the screen. In response to the particular operation, the execution part may display the explanation about the particular program, using the explanatory data.
The particular operation may include a first operation that displays the description and the explanation, and a second operation that executes the particular program.
The execution part may receive a change of setting of the particular program, and store the changed content in the storage part.
Another aspect of the invention is a development support program. The development support program is executed by a computer having a storage part (e.g. electric circuit) configured to store a particular program for achieving a particular image processing. The storage part stores screen display data for displaying a description of the particular program on a screen. The development support program causes the computer to execute the steps of receiving an operation from outside, displaying the description of the particular program, using the screen display data when the particular operation is received, and executing the particular program.
According to the aspects, a particular program is executed, and a description of the particular program is displayed.
Therefore, a user can recognize not only the processing contents of the particular program, but also the description of the program executing the processing contents.
An embodiment of an inspection apparatus according to the invention will be explained herein with reference to the drawings. In each drawing, the same constituent elements are denoted with the same reference signs, and are detailed repeatedly.
(1) Configuration of the Image Processing Apparatus
The image processing apparatus according to the present embodiment includes a camera 1, a controller 2, a monitor 3, a console 4, and the like. In an inspection line L of a factory, the image processing apparatus takes pictures of conveyed workpieces W in order and generates color images thereof. By processing the images, the image processing apparatus determines whether a position, a posture, a size, and the like of a measurement target object 7 (mark, character, fault, and the like) on each of the workpieces W are accepted or rejected. It should be noted that the form of the console 4 is not particularly limited, as long as it is a device which an operator can use to give an instruction to a CPU (Central Processing Unit) 21, such as a mouse, a keyboard, or a touch panel. Instead of using only one camera 1, multiple cameras 1 may be connected and used in the image processing apparatus.
The controller 2 is an example of a development support apparatus according to the present embodiment. The controller 2, with the CPU 21 being a subject of the control, includes a flash memory 22, a RAM (Random Access Memory) 23, a graphic controller 24, a camera interface 25, an input interface 26, an external interface 27, and the like.
The flash memory 22 stores, e.g., programs and parameters required for processing, and the RAM 23 temporarily stores image data, intermediate operation results, and the like.
The programs executed by the CPU 21 to achieve the functions stated in the present embodiment may be stored in the flash memory 22, or may be recorded in a storage medium which is detachably attached to the image processing apparatus. Examples of the storage medium are media storing programs capable of providing storage in a non-volatile manner, such as a CD-ROM (Compact Disc-Read Only Memory), a DVD-ROM (Digital Versatile Disk-Read Only Memory), a USB (Universal Serial Bus) memory, a memory card, a FD (Flexible Disk), a hard disk, a magnetic tape, a cassette tape, an MOD (Magnetic Optical Disc), an MD (Mini Disc), an IC (Integrated Circuit) card (excluding the memory card), an optical card, a mask ROM, an EPROM, and an EEPROM (Electronically Erasable Programmable Read-Only Memory).
The camera interface 25 includes, e.g., a driving circuit of the camera 1, a buffer for receiving respective image signals of R, G, B, (red, green, blue) and an ND conversion circuit (all of which are not shown). The input interface 26 is provided to receive a signal from the console 4. The external interface 27 is used to communicate with an external device, such as a personal computer, a Power Line Communication (PLC), or the like (not shown). The graphic controller 24 executes display control of the monitor.
The external I/F (interface) is connected to a PLC (Power Line Communication) and a personal computer. This also allows for connection with another image processing apparatus via a network.
The CPU 21 displays, on the monitor 3, the programs and the parameters stored in the flash memory 22 and in the RAM 23. The CPU 21 stores data, which is inputted from the console 4 and the external I/F 27, in the flash memory 22 and the RAM 23. In addition, a workpiece detection sensor 5 (a photoelectric switch, a proximity switch, or the like) is connected thereto. When the CPU 21 receives a signal from this sensor 5 indicating that a workpiece W has been detected, the CPU 21 drives the camera 1 using the camera interface 25, and causes the camera 1 to take a picture of the workpiece W. Then, when a color gray-scale image (hereinafter referred to as a “processing target image”) of workpiece W is generated and saved in the RAM 23, the CPU 21 executes, on the basis of the programs stored in the flash memory 22, the process of extracting the measurement target object 7 and the process of measuring the extracted measurement target object 7. Further, the CPU 21 determines whether the measurement target object is to be accepted or rejected on the basis of the measurement result. The image as the processing result (hereinafter referred to as “the processed image”) and data of the measuring process result are stored in the flash memory 22 and in the RAM 23. Furthermore, the CPU 21 can obtain an image of another image processing apparatus connected via the network by way of the external I/F 27. Moreover, the CPU 21 can perform the process of transmitting the programs, parameters, and the like to another image processing apparatus from this image processing apparatus.
The controller 2 illustrated in
(2) Screen Display of the Image Processing Apparatus
When “File” in the system menu area is selected by the console 4 or the like, “save”, “change history”, and “scene switching” are displayed as lower level selection menus. When “save” is chosen, a save processing is performed to save various kinds of setting data that have been set. When “change history” is chosen, a change history dialogue is displayed, and the setting is loaded with the selected history. The change history dialogue displays, in a list format, setting changes (saved date/time, saved data type/classification, and saved data file name) saved as a history in the past. Shown as the saved data is a number or a name of a flow (scene data) generated by selecting processing items from among multiple image processing items prepared in advance and combining them in a predetermined sequence, for the inspection or determination to be performed. When “scene switching” is selected, a screen for receiving an input of the name or the number of the scene data, or a group (scene group) to which the scene data belongs, is displayed. The scene data in the scene group, which is inputted/selected with text input or from a dropdown list, is switched as a target of the operation, such as an editing or execution.
When “Edit” in the system menu area is selected by means of the console 4 or the like, “edit flow”, “start/end non-stop adjustment”, editing of other processing items, and items for performing a property setting are displayed as lower level selection menus thereof.
When “edit flow” is selected, an edit flow dialogue screen is displayed (
At the left side of the lowermost portion, a help button is provided. When the help button is selected, the operation manual is displayed on the screen. At the right side of the lowermost portion, a close button is provided. When the close button is selected, parameters which have been set are given to the main screen, and the screen is closed. The buttons provided in the tool button area include “insert” for inserting a processing unit (an image processing module), “property” for setting the property of the processing unit, “delete” for deleting the processing unit, “copy” for copying the processing unit, “cut” for cutting the processing unit, “paste” for pasting the processing unit (when the copy/cut button is not enabled, this button is disabled), “move (upward)” for moving upward the position of the processing unit, and “move (downward)” for moving downward the position of the processing unit. In the flow area, images (icons) corresponding to the processing items sent to the processing unit are displayed as processing unit icons. For example,
The controller 2 edits, in accordance with an input made by means of the console 4, the contents of the setting of each processing unit included in the flow displayed on the screen, as illustrated in
When the editing of the flow is completed, the controller 2 causes the monitor 3 to display the main screen as illustrated in
When the flow is edited, the layout of the screen can also be changed.
In
In
(3) Functional Configuration of the Image Processing Apparatus
As shown in
As shown in
The application program is a development support application executed by the controller 2 (which may be hereinafter simply referred to as the “development support application”). The list of sample units includes display data for displaying the list of the “sample units”. The development support application according to the present embodiment is an application used for executing the sample units to achieve the same functions as those of the units executed by the image processing apparatus, in a demonstration format. In the development support application, the list of sample units is displayed, and one of the sample units selected from the list is executed. The sample data is used for executing the sample units. The sample data is provided as pieces A to N, respectively, for the sample units. Alternatively, the multiple sample units may share part of the sample data.
In the present embodiment, each piece of sample data is stored in the flash memory 22 in a compressed file format. Each piece of sample data includes image data, setting data, and a program to be read.
The image data is used as a target of an image processing operation executed as a demonstration when each piece of the sample data is executed.
The setting data is used for executing the sample units.
As shown in
Referring back to
(4) Development Support Processing
Hereinafter, the development support processing executed by the controller 2 will be explained. The development support processing achieves the development support application described above.
In response to the above operation, CPU 21 displays the list of sample units.
In the screen illustrated in
When one of the items is selected on the screen by means of the console 4, the CPU 21 displays an explanatory screen explaining the selected item.
The explanatory screens shown in
Below the field “operation method” in
The screen illustrated in
Referring back to
In step S40, the CPU 21 identifies the sample unit which is the target of the above operation, and proceeds to the processing in step S50.
In step S50, the compressed file reader 203 of the CPU 21 decompresses the compressed file of sample data of the sample unit identified in step S40 (see
In step S60, the read program start unit 201 of the CPU 21 activates the program to be read in the program decompressed in step S50, and proceeds to the processing in step S70. The program to be read is an execution program for executing the processing with the sample unit.
In step S70, the setting data reader 204 of the CPU 21 reads the setting data of the sample unit identified in step S40, and thereafter proceeds to the processing in step S80.
In step S80, measurement control unit 205 of the CPU 21 executes image processing according to the sample unit (measurement operation), and proceeds to the processing in step S90.
In step S90, the CPU 21 displays on the monitor 3 a result of the image processing (measurement operation) in step S80.
The screen of
The image display window 903 displays an image, including a character image “ABC”. The image corresponds to the image data of the sample unit identified in step S40 (see
The flow display window 906 displays the processing units included in the sample unit (image processing module). More specifically, the flow display window 906 displays the names of two processing units, i.e., “input camera image” and “search”, and also displays a measurement result (OK/NG) of each of the processing units.
The comprehensive result display window 901 shows a comprehensive measurement result based on the measurement results of the respective processing units. More specifically, when the measurement results of all the processing units are OK, the comprehensive result display window 901 indicates OK. When the measurement result of at least one of the processing units is NG, the comprehensive result display window 901 indicates NG.
The information display window 902 displays information on a measurement condition and the like.
The detailed result display window 907 displays a detailed measurement result about the processing unit selected from among the processing units displayed on the flow display window 906.
The tool button window 904 displays the menus with which the flow of the sample unit is edited (e.g., the setting information of the processing units and the sequence of the processing units).
The test measurement window 905 also displays an “image selection button” and a “re-measurement button”.
The image selection button is manipulated to specify an image serving as the processing target of the sample unit. When this button is manipulated, the image reader 202 reads a specified image. In this case, an input image from the camera 1 can also be selected.
The re-measurement button is a button for causing the measurement control unit 205 to re-execute the image processing on the image specified at that occasion, with the sample unit being executed
When the image selection button is manipulated to specify an image different from the image data included in the sample unit (see
The screen of
In the present embodiment explained above, the user selects a desired purpose from the list display as shown in
According to the present embodiment explained above, the user recognizes the contents of the sample unit by executing the sample unit. In addition, the user recognizes the description of the program for achieving the contents of the sample unit by viewing the explanatory screen of the sample unit. Accordingly, the user considers the difference between the image processing operation desired by the user and the image processing operation achieved with the sample program. In order to compensate for the difference therebetween, the user changes the description of the program displayed on the explanatory screen, thereby generating a program. Therefore, the user can easily generate the description of the program for the image processing operation desired by the user.
In the present embodiment, the particular program is executed with a portion for executing the sample unit (sample data explained with reference to
(5) Modification and the Like
In the development support processing explained above, the program according to the purpose specified by the user is executed as the sample unit. As described above, the flow information included in the setting data of the sample unit (
In the screen of
Similar to the explanatory screen explained with reference to
“Overview” illustrates an overview of the processing executed with the sample unit corresponding to the explanatory screen. “Example of achievement” includes an explanation about the contents of the screen displayed when the sample unit is executed, and an operation method for executing the sample unit. In the screen image in
Below the field “operation method” in
The sample unit, including the macro program as illustrated in
In the present modification, when an image of the folder representing the directory storing the macro program is dragged and dropped onto the screen as illustrated in
In
In the present modification, when an item is selected from the displayed list, an explanatory screen corresponding to the item is displayed. In the development support processing, together with the display of the list or in the initial screen and the like of the development support application, it may be possible to display a screen for explaining what kind of operation is performed on the image in the folder displayed in the directory storing the macro program of the sample unit, as illustrated in
According to the present modification explained above, the user recognizes the contents of the sample unit by executing the sample unit. In addition, the user recognizes the description of the macro program for achieving the contents of the sample unit by viewing the explanatory screen of the sample unit. Accordingly, the user considers the difference between the image processing operation desired by the user and the image processing operation achieved with the macro program listed as a sample. In order to compensate for the difference therebetween, the user can use the description of the macro program displayed on the explanatory screen to generate a macro program. Therefore, the user can easily generate the description of the macro program for the image processing operation desired by the user.
The macro debugger 206 debugs the description of the macro program thus generated.
It is to be understood that the embodiments and the modifications thereof disclosed herein are examples in all respects and are not restrictive. It is to be understood that the scope of the invention is defined not by the above explanation but by the claims, and includes meanings equivalent to the claims as well as all the changes and variations within the scope of the claims.
It is further to be understood that the embodiments and the modifications thereof may be carried out either independently or in combination as appropriate.
Number | Date | Country | Kind |
---|---|---|---|
2011-148215 | Jul 2011 | JP | national |