Program, storage medium, control method, and information processing apparatus
A program for scanning devices corrects tilted images by extracting features and applying user-defined tilt corrections, addressing the issue of mechanical misalignment in scanning devices.
Patent Information
- Application Number
- JP2024135307
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-08-14
- Publication Date
- 2026-02-27
AI Technical Summary
Scanning devices may read documents at an angle due to mechanical misalignment, resulting in tilted scanned images that cannot be corrected by standard drivers.
A program that supports a general-purpose image processing device, enabling extraction of image features, display of tilt correction settings, and execution of tilt correction processes based on user input.
Corrects the tilt of scanned images, ensuring they are displayed straight.
Smart Images

Figure 2026032635000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a program, a storage medium, a control method, and an information processing device. [Background technology]
[0002] A scanning device (scanner) that reads images, i.e., scans, is communicatively connected to a host computer (information processing device) that can process information exchanged with the scanning device. For example, a scan driver installed on the host computer by the scanning device is used as control software for controlling the scanning device. This scan driver allows the host computer to issue scan instructions to the scanning device. An operating system (hereinafter referred to as "OS"), which is basic software, is pre-installed on the host computer. The scan driver is configured according to specifications defined by the OS and can be invoked and run by the OS. Furthermore, such scan drivers differ depending on the vendor that supplies the scanning device; that is, they are model-specific scan drivers suited to each scanning device.
[0003] In recent years, Windows® has been providing standard class drivers (hereinafter sometimes referred to as "standard drivers") that can be used across scanning devices supplied by multiple different vendors. Such standard drivers are pre-installed in the OS. Any scanning device can be connected to a host computer with an OS that incorporates the standard driver, allowing the standard driver to be used. This eliminates the need to install a model-specific scan driver. Furthermore, the standard driver is expected to be configured to specify the scanning functions of the scanning device based on scan function information generated based on information acquired from the scanning device. This allows scanning functions to be specified for each scanning device using a single standard driver.
[0004] Because standard drivers can be used in common with scanning devices from multiple different vendors, it may be impossible to execute some of the functions of a scanning device from a specific vendor, for example. Patent Document 1 discloses a program that expands the printing functions of a print service that can be used universally regardless of the model or vendor of the image forming device. This allows users to execute printing functions that cannot be executed with only the universal print service by operating a print setting screen tailored to each individual image forming device for each model and vendor. [Prior art documents] [Patent documents]
[0005] [Patent Document 1] Patent Publication No. 2021-033526 Summary of the Invention [Problem to be solved by the invention]
[0006] Scanning devices may read documents at an angle due to mechanical misalignment during transport. Even if a document is placed on the scanning device at an angle, the document will be read at that angle. In either case, the scanned image will be tilted. However, with standard drivers, if the scanned image is tilted, it is impossible to correct the tilt of the scanned image, i.e., to make the scanned image straight.
[0007] The present invention has been made in view of the above-mentioned problems, and has an object to provide a mechanism that can correct the tilt of a scanned image when the scanned image is tilted. [Means for solving the problem]
[0008] In order to achieve the above object, the program of the present invention is a program that supports a general-purpose program that can be commonly used for image processing devices having a scanning function and made by a plurality of manufacturers, and is characterized by causing a computer to execute an extraction step of extracting features from an image acquired by the scanning function, a display control step of displaying a setting acceptance screen that accepts settings for a tilt correction process that corrects the tilt of the image based on the features when the image is tilted, and an instruction step of instructing the image processing device to perform the tilt correction process in accordance with the settings accepted on the setting acceptance screen. [Effects of the Invention]
[0009] According to the present invention, when a scanned image is tilted, the tilt of the scanned image can be corrected. [Brief explanation of the drawings]
[0010] [Figure 1] 1 is a block diagram showing a hardware configuration of a scan system according to a first embodiment. [Figure 2A] FIG. 2 is a block diagram showing the software configuration of the scan system. [Figure 2B] FIG. 1 is a schematic diagram illustrating a configuration of a scanning device. [Figure 2C] FIG. 2 is a diagram illustrating an example of a scanned image acquired by a scanning device. [Figure 2D] 10 is a flowchart showing a tilt correction process executed by the scanning device. [Figure 3A] FIG. 10 is a diagram showing an example of a screen displayed on a display unit of the scanning system. [Figure 3B] FIG. 10 is a diagram showing an example (modification) of a screen displayed on a display unit of the scanning system. [Figure 4] 10 is a flowchart showing a process in which the scan function extension unit edits scan function information. [Figure 5] FIG. 10 is a diagram illustrating an example of a list of scan information. [Figure 6]FIG. 10 is a sequence diagram showing the process executed between the scan application, the general-purpose scan software, the extension application, and the scan device after the scan application receives scan settings. [Figure 7] 10 is a flowchart illustrating a process executed by an extension application. [Figure 8] 10 is a flowchart showing a process executed by the scanning device. [Figure 9] FIG. 11 is a sequence diagram showing the processing executed between the scan application, general-purpose scan software, extension application, and scan device after the scan application receives scan settings in the second embodiment. [Figure 10] FIG. 11 is a sequence diagram showing the processing executed between the scan application, general-purpose scan software, extension application, and scan device after the scan application receives scan settings in the third embodiment. [Figure 11] 10 is a flowchart illustrating a process executed by an extension application. [Figure 12] 13 is a flowchart showing a process in which a scan function extension unit in the fourth embodiment edits scan function information. [Figure 13] FIG. 10 is a diagram illustrating an example of a list of capability information of scanning devices. [Figure 14] FIG. 10 is a sequence diagram showing the process executed between the scan application, the general-purpose scan software, the extension application, and the scan device after the scan application receives scan settings. [Figure 15] FIG. 13 is a diagram showing an example of a list of scan information in the fifth embodiment. [Figure 16] FIG. 10 is a diagram showing an example of a screen displayed on a display unit of the scanning system. [Figure 17]FIG. 10 is a sequence diagram showing the process executed between the scan application, the general-purpose scan software, the extension application, and the scan device after the scan application receives scan settings. [Figure 18] FIG. 13 is a sequence diagram showing the processing executed between the scan application, general-purpose scan software, extension application, and scan device after the scan application receives scan settings in the sixth embodiment. [Figure 19] FIG. 10 is a diagram showing an example of a screen displayed on a display unit of the scanning system. DETAILED DESCRIPTION OF THE INVENTION
[0011] Each embodiment of the present invention will be described in detail below with reference to the drawings. However, the configurations described in each of the following embodiments are merely examples, and the scope of the present invention is not limited to the configurations described in each embodiment. For example, each component constituting the present invention can be replaced with any configuration that can perform the same function. Also, any component may be added. Furthermore, any two or more configurations (features) of each embodiment can be combined.
[0012] <<First Embodiment>> The first embodiment will be described below with reference to FIGS.
[0013] <Scan system hardware configuration> Fig. 1 is a block diagram showing the hardware configuration of a scanning system according to a first embodiment. As shown in Fig. 1, the scanning system 1000 includes a host computer 101, a scanning device (scanner) 102, a pointing device 117, a keyboard 118, and a display unit 119, which are communicatively connected to one another. The host computer 101 is an information processing device and includes an input interface 110, a CPU 111, a ROM 112, a RAM 113, an external storage device (storage medium) 114, an output interface 115, an input / output interface 116, and a NET interface 120. Note that the host computer 101 may be, for example, a desktop personal computer, but is not limited thereto, and may also be, for example, a notebook personal computer, a tablet terminal, a smartphone, or the like.
[0014] The CPU 111 is a computer that executes programs stored in the ROM 112 and the external storage device 114. In this embodiment, the CPU 111 executes functions and processes of the host computer 101 by performing processing in accordance with the program code stored in the ROM 112. An initialization program is stored in the ROM 112. The external storage device 114 stores application programs, an operating system (OS), print data generation software, and various other data. In this embodiment, the host computer 101 is equipped with Microsoft Windows 11 as the OS. The external storage device 114 is not particularly limited, and may be, for example, a hard disk drive (HDD) or a solid state drive (SSD). The RAM 113 is used as a work memory when executing various programs stored in the external storage device 114, enabling the various programs to run within the host computer 101. A pointing device 117 and a keyboard 118 are connected to the input interface 110 as input devices. A display unit 119 serving as a display device is connected to the output interface 115. The display unit 119 displays, for example, a scan setting screen 300A and a detailed setting screen 300C, which will be described later. The NET interface 120 is a network interface that controls data transfer between the host computer 101 and external devices via a network. The scanning device 102 is connected to the input / output interface 116. This allows the host computer 101 to communicate with scanning devices 102 from multiple manufacturers, regardless of the manufacturer of the scanning device 102, i.e., allows information to be processed between the host computer 101 and the scanning device 102 from multiple manufacturers. The host computer 101 and the scanning device 102 may be connected by wire or wirelessly.
[0015] The scanning device 102 includes an image processing unit 190, a CPU 191, a ROM 192, a RAM 193, an operation unit 194, a reading unit 195, a printing unit 196, a NET interface 197, an input / output interface 198, and an external storage device 199. The CPU 191 is a computer that executes programs stored in the ROM 192 and the external storage device 199 and provides overall control of the scanning device 102. The ROM 192 is a memory that stores programs. The RAM 193 is a memory that temporarily stores programs and image data. The operation unit 194 can issue various operational instructions to the scanning device 102. The reading unit 195 reads an image of a document. The printing unit 196 prints an image on a sheet based on image data generated by, for example, reading the image of the document with the reading unit 195. Note that the printing unit 196 may be omitted. The NETIF 197 is a network interface that controls data transfer between the scanning device 102 and external devices via a network. The input / output interface 198 is connected to the host computer 101. The image processing unit 190 receives, for example, image data generated by reading an image of a document in the reading unit 195. The image processing unit 190 then performs various editing processes on the image data.
[0016] The scanning device 102 is not particularly limited as long as it has an image reading function, i.e., a scanning function, and can be, for example, an image processing device such as a multi-function peripheral (MFP). Furthermore, when a multi-function peripheral is used as the scanning device 102, the printing performed by the multi-function peripheral is electrophotographic printing in this embodiment, but is not limited to this and can also be inkjet printing, for example. Furthermore, in this embodiment, the host computer 101 and the scanning device 102 are configured as separate devices, but are not limited to this. For example, the host computer 101 and the scanning device 102 may be configured as an integrated device.
[0017] <Software-based scanning system configuration> FIG. 2A is a block diagram showing the software configuration of a scanning system. FIG. 2A(a) shows a general configuration when an extension application (program) 204 is not associated with a general-purpose scanning software (general-purpose program) 202 and a scanning device 102. FIG. 2A(b) shows a configuration when the extension application 204 is associated with the general-purpose scanning software 202 and a scanning device 102. The general-purpose scanning software 202 is a general-purpose program (standard driver) that can be used commonly with scanning devices 102 from multiple manufacturers, for example, when scanning (reading images). In other words, the general-purpose scanning software 202 is a class driver that can be used commonly with scanning devices 102 supplied by multiple manufacturers. This general-purpose scanning software 202 is provided together with the OS as one of the functions in the OS package. By utilizing a standardized scanning method, the general-purpose scanning software 202 can process a wide range of scanning devices 102. This allows the general-purpose scanning software 202 to generate and output instructions that can be interpreted by scanning devices 102 from multiple manufacturers. This general-purpose scanning software 202 is pre-installed in the OS. The extension application 204 is a program that supports, i.e., assists, the general-purpose scanning software 202 (a program that executes a control method that performs control to support the general-purpose scanning software 202). In this embodiment, the extension application 204 is an extension program that can extend functions that the general-purpose scanning software 202 cannot execute for the scanning device 102, but is not limited to this. For example, the extension application 204 may be a program that improves the usability of functions that the general-purpose scanning software 202 can execute for the scanning device 102. The extension application 204 is stored in the external storage device 114, for example, together with the OS (general-purpose scanning software 202). As a result, the host computer 101 has the general-purpose scanning software 202 and the extension application 204.
[0018] <Configuration when the extended application is not associated with general-purpose scanning software and a scanning device> First, with reference to FIG. 2A(a), a configuration will be described for a case in which the extension application 204 is not associated with the general-purpose scan software 202 and the scan device 102. The scan application 201 is software that imports content (image data) generated by scanning with the scan device 102. The scan application 201 is not particularly limited, and examples thereof include a document creation application and an image editing application. The scan application 201 issues a scan instruction to the OS upon receiving a scan request from a user, for example. The scan instruction includes scan setting information for instructing the operation of the general-purpose scan software 202 and the scan device 102. To issue the scan instruction, the scan application 201 can display a scan setting screen 300A provided by any of the general-purpose scan software 202, the OS, and the scan application 201 on the display unit 119. In addition, by operating (pressing) a control 302 in the scan setting screen 300A, a detailed setting screen 300B (see FIG. 3A(b)) can be displayed on the display unit 119. The scan setting screen 300A, the detailed setting screen 300B, and the detailed setting screen 300C will be described later. The scan setting screen 300A includes setting items indicating configurable scan functions and control items indicating their setting values according to the capability information acquired by the general-purpose scan software 202, i.e., the information configurable as scan settings. The "capability information" refers to information regarding the scanning capability of the scanning device 102. Furthermore, the capability information can be used to determine whether or not information enabling the display of the detailed setting screen 300C is included (determination step). If it is determined that the information enabling the display of the detailed setting screen 300C is included, the detailed setting screen 300C can be displayed. On the other hand, if it is determined that the information enabling the display of the detailed setting screen 300C is not included, the detailed setting screen 300C is not displayed. In this way, the extension application 204 can switch whether or not to display the detailed setting screen 300C according to the capability information of the scanning device 102.
[0019] The scan function information 203 is data indicating scan functions, describing all configurable scan functions, their setting values, and the exclusive relationships between the setting values. The scan function information 203 is included in a configuration file of the general-purpose scan software 202 and stored in the external storage device 114 as an unmodifiable file. Alternatively, the scan function information 203 is dynamically generated by the general-purpose scan software 202. Specifically, the general-purpose scan software 202 acquires attribute data of the scan device 102 from the scan device 102. The general-purpose scan software 202 generates the scan function information 203 based on the attribute information in the attribute data. Note that when the scan function information 203 is dynamically generated in this manner, the scan function information 203 can be edited. The attribute data of the scan device 102 also includes attribute information indicating functions that can be specified by the scan device 102 (the capabilities of the scan device 102) and setting values related to the attribute information, which are stored in the RAM 113.
[0020] With this configuration, the generic scanning software 202 allows the user to specify scan functions available in the scanning device 102 depending on the scanning device 102 connected to the host computer 101. This allows the user to specify scan functions available in the scanning device 102 regardless of the scanning device 102, i.e., even when a scanning device 102 with different functions or a scanning device 102 developed by a different scanner manufacturer is connected. In this embodiment, the generic scanning software 202 is a standard class driver that executes scanning based on a standard scanning protocol called Mopria. Specifically, as described above, the generic scanning software 202 is not a specific scan driver specific to the model of the scanning device 102, but a standard class driver that can be commonly used by scanning devices 102 of various scanner manufacturers, regardless of the scanner manufacturer. Furthermore, the generic scanning software 202 acquires capability information of the scanning device 102 and generates scan function information 203 based on the acquired information.
[0021] Furthermore, the general-purpose scanning software 202 can be associated with an extension application 204. This allows the general-purpose scanning software 202 to execute functions not available in the general-purpose scanning software 202. For example, the general-purpose scanning software 202 cannot accept settings for a skew correction process that corrects the skew of an image scanned by the scanning device 102 if the image is tilted. That is, the general-purpose scanning software 202 does not support skew correction settings. This is because the skew correction setting is a function that is executed independently by the scanning device 102 manufactured by a specific scanner manufacturer. The extension application 204 can extend the general-purpose scanning software 202 to enable execution of functions that the general-purpose scanning software 202 cannot execute. In this embodiment, the general-purpose scanning software 202 cannot set the skew correction process, and the extension application 204 can extend the skew correction process settings to enable execution of the skew correction process, but this is not limiting. For example, the general-purpose scanning software 202 may execute some of the skew correction process settings, and the extension application 204 may supplement the missing skew correction process settings to further expand the scope of execution.
[0022] <Configuration of scanning device> FIG. 2B is a schematic diagram showing the configuration of a scanning device. As shown in FIG. 2B, the scanning device 102 has a platen 1901 on which a glass platen 1903 is mounted, multiple rollers 1902, and reading sensors 1904 and 1905 that read an image on a sheet of paper 1906. Each roller 1902 transports the sheet of paper 1906. Hereinafter, the direction in which the sheet of paper 1906 is transported will be referred to as the "sub-scanning direction," and the direction perpendicular to the sub-scanning direction will be referred to as the "main scanning direction." The reading sensor 1904 is fixed to the platen 1901. The reading sensor 1904 is a sensor that reads an image on the front side of the sheet of paper 1906. The reading sensor 1904 has a built-in light source and a solid-state image sensor, and acquires a raster image reading signal through the glass platen 1903. When the paper 1906 reaches a position opposite the reading sensor 1904, the reading sensor 1904 irradiates the front side of the paper 1906 with light and forms a reflected image on the solid-state imaging element. The reading sensor 1905 is fixed on the opposite side of the glass base 1903 from the reading sensor 1904. The reading sensor 1905 is a sensor that reads an image on the back side of the paper 1906. Like the reading sensor 1904, the reading sensor 1905 has a built-in light source and solid-state imaging element. When the paper 1906 reaches a position opposite the reading sensor 1905, the reading sensor 1905 irradiates the back side of the paper 1906 with light and forms a reflected image on the solid-state imaging element. In the scanning device 102, the reading sensors 1904 and 1905 can simultaneously read both the front and back sides of the paper 1906 while the paper 1906 is being transported. Furthermore, in the scanning device 102, the paper 1906 may be conveyed at an angle due to, for example, the installation accuracy of the roller 1902 or deterioration of the roller 1902.
[0023] <When tilt correction processing is performed> FIG. 2C is a diagram showing an example of a scanned image acquired by a scanning device. FIG. 2C(a) is a scanned image when skew correction processing has not been performed. FIG. 2C(b) is a scanned image when skew correction processing has been performed. In scanned image 1800A shown in FIG. 2C(a), original document 1802 is tilted with respect to margin 1801. As described above, scanned image 1800A is acquired when paper 1906 is transported at an angle. On the other hand, in scanned image 1800B shown in FIG. 2C(b), unlike scanned image 1800A, original document 1803 is no longer tilted with respect to margin 1801. Scanned image 1800B is acquired by performing skew correction processing even if paper 1906 is transported at an angle.
[0024] <Tilt correction process flowchart> 2D is a flowchart showing the skew correction process executed by the scanning device. A program based on the flowchart shown in FIG. 2D is stored in, for example, ROM 192 of the scanning device 102. The CPU 191 of the scanning device 102 reads this program from ROM 192 to RAM 193 and executes it. As shown in FIG. 2D, in step S1701, the scanning device 102 acquires a scanned image of a document from which a scanned image is to be acquired, from the reading unit 195. Alternatively, the scanning device 102 acquires a scanned image stored in RAM 193 from RAM 193.
[0025] In step S1702, the scanning device 102 (CPU 191) detects, i.e., extracts, the leading edge (feature amount) of the document in the scanned image acquired in step S1701 (extraction step). Specifically, the scanning device 102 scans the scanned image with a 3x3 window, and if the difference between the maximum and minimum pixel values in the window is equal to or greater than a threshold, it determines the pixel at the center of the window to be an edge pixel. Then, the scanning device 102 determines the first pixel determined to be an edge in the sub-scanning direction from the leading edge of the image to be the leading edge of the document.
[0026] In step S1703, the scanning device 102 calculates the skew angle of the original (scanned image) based on the leading edge (edge information) extracted in step S1702. Specifically, the scanning device 102 calculates the skew angle based on the coordinates of the leftmost edge pixel and the coordinates of the rightmost edge pixel of the leading edge.
[0027] In step S1704, the scanning device 102 performs a tilt correction process based on the tilt angle calculated in step S1703. Specifically, the scanning device 102 rotates the scanned image by the tilt angle in a direction that offsets the tilt angle. This results in a scanned image such as the scanned image 1800B shown in FIG. 2C(b). Note that the tilt correction process is not limited to the above process. For example, the scanned image may be binarized, scanned in the sub-scanning direction from the leading edge of the image, and the first pixel that becomes black may be detected as an edge. Prior to the tilt correction process, a filter process that emphasizes edges may be performed on the scanned image. This improves edge accuracy.
[0028] <Configuration when the extension application is associated with general-purpose scanning software and a scanning device> Referring to FIG. 2(b), a case where an extension application 204 is associated with the general-purpose scan software 202 and the scan device 102 will be described. As shown in FIG. 2(b), unlike FIG. 2(a), an extension application 204 is added. That is, the host computer 101 has the scan application 201, the general-purpose scan software 202, the scan function information 203, and also the extension application 204. The extension application 204 is software for extending the functions of the general-purpose scan software 202 and is sometimes simply referred to as "scan software." Note that the extension application 204 is not pre-installed (not bundled) with the OS. Therefore, the extension application 204 is downloaded from a server (not shown) via the Internet by a user operating the host computer 101 and installed on the host computer 101. Alternatively, when the scan device 102 is connected to the host computer 101, the extension application 204 may be automatically installed on the host computer 101 based on this connection. Specifically, when the scanning device 102 is connected to the host computer 101, the OS acquires device identification information from the scanning device 102. The OS may download and install the extension application 204 corresponding to this device identification information from a server via the Internet. As a result, the host computer 101 stores the general-purpose scanning software 202 and the extension application 204 as separate control programs. Note that the general-purpose scanning software 202 and the extension application 204 may be updated and upgraded. In this case, the general-purpose scanning software 202 update process and the extension application 204 update process may be performed at the same time or at different times. Furthermore, the trigger for the host computer 101 to acquire the general-purpose scanning software 202 and the extension application 204 may be the same trigger or different triggers.Additionally, when the extension application 204 is installed, the OS associates the extension application 204 with the general-purpose scan software 202 and the scan device 102 .
[0029] As shown in FIG. 2B, the extension application 204 can exchange information (send and receive information) with the general-purpose scan software 202 and the scan device 102. That is, the extension application 204 is associated with the general-purpose scan software 202 and the scan device 102. In this embodiment, the extension application 204 includes a scan setting screen extension unit 205, a scan function extension unit 206, an image data editing unit 207, and a notification unit 209. The extension application 204 also includes shared information 208 that can be accessed by each of the scan setting screen extension unit 205, the scan function extension unit 206, the image data editing unit 207, and the notification unit 209. The shared information 208 is a file saved in the external storage device 114 or information stored in the RAM 113. The extension application 204 can write and read the shared information 208 by using an API (Application Program Interface) provided by the OS.
[0030] The extended application 204 may terminate its entire operation upon completion of processing of each of the units from the scan setting screen extension unit 205 to the notification unit 209. In this case, the OS launches the extended application 204 each time it receives a processing execution request for each unit. The extended application 204 may also cancel processing of each of the units from the scan setting screen extension unit 205 to the notification unit 209 during that processing. In this case, the OS deletes the job being processed in the print queue. As described above, the scan application 201 issues a scan instruction to the OS upon receiving a print request from the user. The scan application 201 can also display a scan setting screen. In the configuration shown in FIG. 2(b), the scan application 201 can display a scan setting screen 300A (detailed setting screen 300C) provided by the scan setting screen extension unit 205 (extension application 204). The scan setting screen extension unit 205 can also save the detailed settings set by the user in the shared information 208.
[0031] The image data editing unit 207 acquires image data from the scanning device 102. After acquiring the image data, the image data editing unit 207 can also edit the image data. The image data editing unit 207 also acquires detailed setting information from the shared information 208 and performs image editing on the image data in accordance with the detailed setting information. The extension application 204 may also perform image editing on the image data acquired by the general-purpose scanning software 202 in accordance with the detailed setting information. Even in the configuration of FIG. 2(b), there are cases where the setting for the skew correction process is not executed. In this case, the general-purpose scanning software 202 may send a scan request instruction to the scanning device 102 without going through the extension application 204.
[0032] The scan function extension unit 206 can edit the scan function information 203 generated by the general-purpose scan software 202 or the OS. This allows functions provided by the extension application 204 to be added. It can also add functions that can be executed by the scan device 102 but not by the general-purpose scan software 202 (e.g., a skew correction function), or add exclusive relationships between scan function setting values. The OS starts the scan function extension unit 206 when the extension application 204 is first associated with the scan device 102 and the general-purpose scan software 202. The OS may also start the scan function extension unit 206 at other times (e.g., when the OS starts up). Even if scan-related functions are later expanded through such startup, the scan function extension unit 206 can detect the expanded function and add it to the scan function information 203.
[0033] The notification unit 209 can notify the user when an error occurs in the scanning device 102. For example, when a reading jam error occurs in the scanning device 102, the general-purpose scanning software 202 detects the occurrence of this error. The OS uses a notification function called a toast notification, which is one of the OS's functions, to display a message on the display unit 119 indicating the occurrence of the reading jam error, which is the detection result of the general-purpose scanning software 202. When the user operates the toast notification, the OS calls the notification unit 209, and a user interface screen (UI screen) of the notification unit 209 is displayed. The user interface screen can display, for example, a detailed message about the reading jam error, a method for clearing the jam, etc.
[0034] As described above, in this embodiment, the extended application 204 can be said to have the following four functions. The first function is to display a setting screen. This function is executed by the scan setting screen extension unit 205. The second function is to edit image data according to detailed setting information. This function is executed by the image data editing unit 207. The third function is to extend the functions that can be specified by the image data generation software. This function is executed by the scan function extension unit 206. The fourth function is to display a screen in response to the occurrence of an error in the scanning device 102. This function is executed by the notification unit 209. Note that the configuration of the extended application 204 is not limited to a configuration having these four functions, and it is preferable that the extended application 204 have at least one of these functions, and it may also have other functions.
[0035] <Example of scan settings screen / detailed settings screen> FIG. 3A is a diagram showing an example of a screen displayed on the display unit of the scan system. FIG. 3A(a) is a scan setting screen displayed by the scan application 201. FIG. 3A(b) is an advanced setting screen displayed when the extended application 204 is not associated. FIG. 3A(c) is an advanced setting screen displayed when the extended application 204 is associated. Note that the units and modules that display each screen are not particularly limited. For example, the scan setting screen extension unit 205 may be configured to only generate a display screen. In this case, the scan setting screen extension unit 205 transmits the generated display screen to the scan application 201 via the general-purpose scan software 202. The scan application 201 may be configured to display the acquired display screen.
[0036] The scan setting screen 300A shown in FIG. 3A(a) is a screen on which settings related to scanning by the scanning device 102 can be made. This scan setting screen 300A includes controls (buttons) 301, 302, 303, and 304. Control 301 allows the user to select and set the scanner device to be used to read the document. In FIG. 3A(a), as an example, the scanner device to be used to read the document is set as "Scanner 001 (common driver)." Control 302 allows the user to make detailed settings for skew correction processing. Control 303 allows the user to instruct the scanning device 102 to start scanning. Control 304 allows the user to instruct the scanning device 102 to cancel scanning.
[0037] In a configuration in which the extension application 204 is not associated, operating the control 302 displays the advanced settings screen 300B shown in FIG. 3A(b). The advanced settings screen 300B includes controls 305 and 306. The control 305 allows the user to select and set the document reading destination of the scanning device 102, i.e., the placement unit on which the document to be read is placed. For example, if the scanning device 102 has a document table (document table glass) and a feeder as the document reading destination, "feeder" is selected as an example in FIG. 3A(b). The control 306 allows the user to end the settings in the control 305. Operating the control 306 also returns the user to the scan settings screen 300A shown in FIG. 3A(a).
[0038] In a configuration in which the extension application 204 is associated, operating the control 302 displays a detailed settings screen (settings acceptance screen) 300C shown in FIG. 3A(c) (display control process). The detailed settings screen 300C is a screen displayed together with the scan settings screen 300A, but its display format is not particularly limited. For example, the detailed settings screen 300C may be displayed overlapping the scan settings screen 300A. The detailed settings screen 300C may also be displayed adjacent to the scan settings screen 300A, or the scan settings screen 300A may disappear before the detailed settings screen 300C is displayed. The detailed settings screen 300C has a function for accepting settings for skew correction processing. Similar to the detailed settings screen 300B, the detailed settings screen 300C includes controls 305 and 306. The detailed settings screen 300C also includes an additional control 307. The control 307 allows the user to select whether or not to execute skew correction processing in the scanning device 102. By operating control 307, list 308 is displayed. List 308 includes options "Yes (perform skew correction)," which indicates that the scanning device 102 will perform skew correction processing, and "No (do not perform skew correction)," which indicates that the scanning device 102 will not perform skew correction processing. Then, by operating control 306, the selection made by control 307 can be confirmed. For example, if "Yes" is selected by control 307 and the selection is confirmed, an instruction to perform skew correction processing is issued to the scanning device 102 in accordance with the document reading destination setting by control 305 (instruction step). The scanning device 102 can perform skew correction processing in accordance with this instruction. If "No" is selected by control 307 and the selection is confirmed, the instruction to perform skew correction processing is suppressed from being issued to the scanning device 102. For example, if the skew in the scanned image is not significant enough to bother the user, it is preferable to select "No" by control 307 in order to speed up processing, etc.
[0039] FIG. 3B is a diagram showing an example (variant) of a screen displayed on the display unit of the scanning system. Like the detailed setting screen 300C, the detailed setting screen 300C′ shown in FIG. 3B(a) includes controls 305 to 307. Furthermore, the detailed setting screen 300C′ includes an additional control 309. Operating control 309 with “No” selected in control 307 displays a preview image 300D shown in FIG. 3B(b). Preview image 300D includes preview image 310 and preview image 311. Preview image 310 is an image of the scanned image before a skew correction process is performed on the scanned image after the scanned image has been acquired. Preview image 311 allows a user to check, for example, what the preview image 310 will look like after the skew correction process. Furthermore, for example, if preview image 310 and preview image 311 can be selected on preview image 300D, the scanned image corresponding to the selected one can be saved.
[0040] Here, we will explain why the items included in the detailed setting screen 300B shown in FIG. 3A(b) are different from the items included in the detailed setting screen 300C shown in FIG. 3A(c). That is, we will explain why it is possible to switch between displaying the detailed setting screen 300B and displaying the detailed setting screen 300C. The detailed setting screens 300B and 300C are each generated based on scan function information (capability information). As described above, the general-purpose scan software 202 does not support skew correction processing settings. Therefore, the general-purpose scan software 202 alone cannot add a skew correction processing setting function to the scan function information. Furthermore, even if the scan function information originally included a skew correction processing setting function, the general-purpose scan software 202 cannot interpret the skew correction processing setting function included in the scan function information. Therefore, the skew correction processing setting cannot be displayed on the detailed setting screen. Therefore, the scan function extension unit 206 adds a skew correction processing setting function to the scan function information 203. Then, the scan setting screen expansion unit 205 refers to the capability information and displays the detailed setting screen 300C. This detailed setting screen 300C is a screen on which the tilt correction processing settings can be set. Note that the detailed setting screen 300C may also include additional setting items other than the tilt correction processing settings.
[0041] <Flowchart of the scan function expansion unit for editing scan function information> FIG. 4 is a flowchart showing the process by which the scan function extension unit edits scan function information. The program based on the flowchart shown in FIG. 4 is executed by the CPU 111 controlling the scan function extension unit 206. FIG. 5 is a diagram showing an example of a list of scan information. As shown in FIG. 4, in step S401, the scan function extension unit 206 acquires capability information from the scan device 102 (acquisition process). This acquisition process is performed prior to the display control process described above. The capability information includes attribute information indicating functions that can be specified by the scan device 102 and setting values related to the attribute information. Table 501 shown in FIG. 5(a) shows a list of capability information acquired from the scan device 102. As shown in Table 501, it is possible to acquire from the scan device 102, for example, functions such as setting a skew correction process and options that can be set for each function. For example, for the skew correction process setting function, the options include "Yes (execute skew correction process)" and "No (do not execute skew correction process)."
[0042] In step S402, the scan function extension unit 206 obtains scan functions supported by the extension application 204 from the shared information 208. The shared information 208 stores a list of scan functions supported by the extension application 204. Table 502 shown in FIG. 5(b) includes all scan functions that can be executed (supported) by the extension application 204 and their setting values. For example, the setting function for skew correction processing has options of "on" and "off." In addition, the scan functions that can be executed by the extension application 204 may be updated by updating the extension application 204, etc.
[0043] In step S403, the scan function extension unit 206 obtains the scan function information 203 created by the general-purpose scan software 202 from the OS. The scan function information 203 is created based on the capability information the general-purpose scan software 202 obtains from the scan device 102. The scan function information 203 created by the general-purpose scan software 202 includes only the scan functions that the general-purpose scan software 202 can execute, from the capability information obtained from the scan device 102. Table 503 shown in FIG. 5(c) includes all scan functions that the general-purpose scan software 202 can execute and their setting values. As shown in table 503, the scan functions that the general-purpose scan software 202 can execute do not include the function for setting the skew correction process. Therefore, the scan function information 203 does not include the setting for the skew correction process. The scan function extension unit 206 adds functions and options to the scan function information 203, allowing the extension application 204 to compensate for the lack of functionality in the general-purpose scan software 202. The scan function extension unit 206 can also delete unnecessary functions and options from the scan function information 203 created by the general-purpose scan software 202 .
[0044] Steps S404, S405, and S406 are processes that are repeatedly performed for the list of functions included in the capability information acquired from the scanning device 102 in step S401. In this embodiment, steps S404, S405, and S406 are repeatedly performed for all 13 options included in table 501.
[0045] In step S404, the scan function extension unit 206 determines whether the currently processed function or option exists in the scan function information 203 generated by the general-purpose scan software 202. If the result of the determination in step S404 is that the function or option exists in the scan function information 203, the process ends if the last item among the options is being processed. Alternatively, if the last item among the options is not being processed, the next item among the options is selected and step S404 is executed again. On the other hand, if the result of the determination in step S404 is that the currently processed function or option does not exist in the scan function information 203, the process proceeds to step S405. For example, in this embodiment, table 501 includes the reading destination "Platen," and table 503 also includes the reading destination "Platen." In this case, in step S404, it is determined that the currently processed function or option exists in the scan function information 203. In contrast, table 501 includes "Yes," but table 503 does not include "Yes." In this case, in step S404, it is determined that the currently processed function or option does not exist in the scan function information 203.
[0046] In step S405, the scan function extension unit 206 determines whether a currently processed function (option) exists among the functions (options) supported by the extension application 204. If it is determined in step S405 that a currently processed function exists, the process proceeds to step S406. On the other hand, if it is determined in step S405 that a currently processed function does not exist, the process ends if the last item among the options is being processed, as in the case where the determination in step S404 is "Yes." Alternatively, if the last item among the options is not being processed, the next item among the options is selected and step S404 is executed again. For example, in this embodiment, if the currently processed function is "Yes," that "Yes" also exists in table 502. Therefore, in step S405, it is determined that a currently processed function exists.
[0047] In step S406, the scan function extension unit 206 adds the currently processed function (option) to the scan function information 203. After step S406 is executed, the process ends if the last item among the options is being processed, just as if the answer was "Yes" in step S404. Alternatively, if the last item among the options is not being processed, the next item among the options is selected and step S404 is executed again.
[0048] As described above, the extension application 204 can add functions (options) that are not supported by the general-purpose scan software 202, are supported by the scan device 102, and are supported by the extension application 204 to the scan function information 203. Then, capability information is generated based on the scan function information 203 edited by this addition process. Furthermore, the scan setting screen extension unit 205 generates a display screen based on this capability information, thereby extending the functions that are not supported by the general-purpose scan software 202 and displaying the detailed setting screen 300C shown in FIG. 3A(c).
[0049] <Processing after the scan application accepts the scan settings> 6 is a sequence diagram showing the processing executed between the scan application, general-purpose scan software, extension application, and scan device after the scan application accepts scan settings. Processing by the scan application 201, general-purpose scan software 202, and extension application 204 is executed by the CPU 111 of the host computer 101. This processing program is stored in the external storage device 114. The CPU 111 then reads the processing program from the external storage device 114 to the RAM 113 and executes it. Processing by the scan device 102 is executed by the CPU 191 of the scan device 102. This processing program is stored in the external storage device 199. The CPU 191 then reads the processing program from the external storage device 199 to the RAM 193 and executes it. The software configuration of the scan system 1000 is the software configuration shown in FIG. 2(b).
[0050] 6, in step S601, the scan application 201 accepts scan settings from the user. The user can instruct the scan application 201 to set scan settings by operating the pointing device 117 or keyboard 118, for example.
[0051] In step S602, the scan application 201 displays the scan setting screen 300A shown in FIG. 3A(a) on the display unit 119.
[0052] In step S603, the scan application 201 accepts a user instruction for detailed settings. The user can instruct detailed settings by, for example, operating the pointing device 117 or the keyboard 118 to select a control 302 on the scan setting screen 300A.
[0053] In step S604, the scan application 201 requests the general-purpose scan software 202 to display the detailed settings.
[0054] In step S605, the general-purpose scan software 202 requests the extension application 204 to display the detailed settings.
[0055] In step S606, the scan setting screen extension unit 205 of the extension application 204 displays the detailed setting screen 300C shown in FIG. 3A(c) on the display unit 119 in response to the request in step S605. As described above, the scan function extension unit 206 adds a skew correction processing setting to the scan function information 203. The scan setting screen extension unit 205 can display the detailed setting screen 300C by referring to the capability information generated based on the scan function information 203 to which the skew correction processing setting has been added. Note that, for example, if there are setting items such as image resolution, these setting items may be displayed, suppressed from display, or grayed out as necessary.
[0056] In step S607, the scan setting screen expansion unit 205 accepts the user's detailed settings on the detailed setting screen 300C. As an example, it is assumed here that on the detailed setting screen 300C, the reading destination "feeder" is selected with the control 305, and the tilt correction process "on" is selected with the control 307 (see FIG. 3A(c)). In this setting state, the scan setting screen expansion unit 205 accepts that the user has operated the control 306 on the detailed setting screen 300C. As a result, the CPU 111 stores the setting state on the detailed setting screen 300C in the RAM 113.
[0057] In step S608, the scan setting screen expansion unit 205 accepts that the user has completed the detailed settings based on the operation of the control 306 in step S607. The user can instruct the user to complete the detailed settings by, for example, operating the pointing device 117 or the keyboard 118 to select the control 306. As a result, the setting status on the detailed settings screen 300C is written to the scan function information 203. Note that the information written to the scan function information 203 may also include, for example, information that has been suppressed from display or grayed out.
[0058] In step S609, the extension application 204 transmits detailed setting completion information indicating that the detailed setting in step S608 has been completed to the general-purpose scan software 202.
[0059] In step S610, the general-purpose scan software 202 receives the detailed setting completion information sent in step S609 from the extension application 204. Then, the general-purpose scan software 202 sends this detailed setting completion information to the scan application 201.
[0060] In step S611, the scan application 201 accepts a scan instruction from the user. The user can issue a scan instruction by, for example, operating the pointing device 117 or the keyboard 118 to select a control 303 on the scan setting screen 300A (see FIG. 3A(a)).
[0061] In step S612, the scan application 201 issues the scan instruction received in step S611 to the general-purpose scan software 202.
[0062] In step S613, the general-purpose scan software 202 receives the scan instruction issued in step S612. The general-purpose scan software 202 then issues this scan instruction to the extension application 204.
[0063] In step S614, the extension application 204 accepts the scan instruction issued in step S613. The extension application 204 then creates a scan instruction command based on the scan function information 203 into which the setting status on the advanced settings screen 300C has been written in step S608. This scan instruction command includes the setting information for the tilt correction process accepted on the advanced settings screen 300C (tilt correction process "performed"). In addition, there are cases where the information that has been suppressed or grayed out in step S608 has not been written in the scan function information 203. In this case, in step S614, the extension application 204 may add the information that has not been written in the scan function information 203 to the scan instruction command, or may use it as a default value.
[0064] In step S615, the extension application 204 sends the scan instruction command created in step S614 to the scanning device 102.
[0065] In step S616, the input / output interface 198 of the scanning device 102 receives the scan instruction command sent in step S615. The reading unit 195 of the scanning device 102 then interprets the scan instruction command and executes scanning under the conditions set on the detailed setting screen 300C. As a result, image data that has undergone skew correction processing is obtained as scanned image data (read image data).
[0066] In step S617, the input / output interface 198 of the scanning device 102 transmits the scanned image data obtained in step S616 to the extension application 204.
[0067] In step S618, the extension application 204 receives the scanned image data sent in step S617 and sends the scanned image data to the general-purpose scan software 202.
[0068] In step S619, the general-purpose scanning software 202 receives the scanned image data sent in step S618 and sends the scanned image data to the scanning application 201.
[0069] In step S620, the scan application 201 receives the scanned image data sent in step S619.
[0070] In step S621, the scan application 201 displays the scan image data received in step S620 on the display unit 119. As a result, the scan image data, i.e., the image data on which the skew correction process has been performed in step S616, is displayed on the display unit 119 as a preview image.
[0071] As described above, in the scanning system 1000, even if the general-purpose scanning software 202 does not support the skew correction setting, the extension application 204 can execute the skew correction setting. This allows the scanning device 102 to perform scanning under the skew correction setting, resulting in a scanned image with skew corrected. Note that in the description with reference to FIG. 6, the detailed settings screen 300C shown in FIG. 3A(c) is displayed assuming that the software configuration of the scanning system 1000 is the software configuration shown in FIG. 2(b). However, this is not limiting. For example, when a request to display detailed settings is made to the general-purpose scanning software 202 in step S604, the general-purpose scanning software 202 displays the detailed settings screen 300B shown in FIG. 3A(b). In this case, after operating the control 306 on the detailed settings screen 300B, the general-purpose scanning software 202 requests the extension application 204 to display an additional detailed settings screen. The extension application 204 may then display an additional detailed settings screen on which the skew correction setting can be configured.
[0072] Furthermore, the scan instruction in step S613 is sent from the general-purpose scan software 202 to the extension application 204, but is not limited to this. For example, a scan instruction may be sent from the scan application 201 to the extension application 204. A control for a scan instruction may be provided on the advanced settings screen 300C. In this case, a user operates the control for a scan instruction to send a scan instruction to the extension application 204. The scanned image data may be sent from the scanning device 102 to the scan application 201 via the extension application 204 without going through the general-purpose scan software 202. The scanned image data may also be sent directly from the scanning device 102 to the scan application 201. The scanning system 1000 may be configured to store the scanned image data in the external storage device 114 and transfer only information about the file path to the storage destination. When there are multiple scanned image data, the scanning system 1000 may send all scanned image data at once, or may send scanned image data as they are obtained.
[0073] Fig. 7 is a flowchart showing the processing executed by the extension application. A program based on the flowchart shown in Fig. 7 is stored in the external storage device 114. The CPU 111 can execute this program by reading it from the external storage device 114 to the RAM 113. As shown in Fig. 7, in step S701, the extension application 204 receives a request to display detailed settings from the general-purpose scan software 202 (see step S605).
[0074] In step S702, the scan setting screen extension unit 205 of the extension application 204 displays the detailed setting screen 300C shown in FIG. 3A(c) on the display unit 119 in response to the detailed setting display request received in step S701. As described above, a setting for tilt correction processing is added to the scan function information 203. The scan setting screen extension unit 205 can display the detailed setting screen 300C by referring to the capability information generated based on this scan function information 203.
[0075] In step S703, the scan setting screen expansion unit 205 determines whether or not detailed settings are made on the detailed setting screen 300C, i.e., whether or not a selection operation has been made on the control 305 or the control 307. If the determination in step S703 determines that detailed settings are made, the process proceeds to step S704. On the other hand, if the determination in step S703 determines that detailed settings are not made, the process proceeds to step S705.
[0076] In step S704, the scan setting screen expansion unit 205 stores (saves) the setting state (setting information) on the detailed setting screen 300C in the RAM 113. After step S704 is executed, the process proceeds to step S705.
[0077] In step S705, the scan setting screen expansion unit 205 determines whether an instruction to end the detailed settings has been given on the detailed setting screen 300C, i.e., whether an operation has been performed on the control 306. If it is determined in step S705 that an instruction to end the detailed settings has been given, the process proceeds to step S706. On the other hand, if it is determined in step S705 that an instruction to end the detailed settings has not been given, the process returns to step S703, and the subsequent steps are executed in sequence.
[0078] In step S706, the extension application 204 notifies the general-purpose scan software 202 that the detailed settings made in step S705 have been completed.
[0079] In step S707, the extension application 204 determines whether or not a scan instruction (see step S613) has been received from the general-purpose scan software 202. If it is determined in step S707 that a scan instruction has been received, the process proceeds to step S708. On the other hand, if it is determined in step S707 that a scan instruction has not been received, the process remains in step S707 and waits.
[0080] In step S708, the extension application 204 creates a scan instruction command based on the scan function information 203 in which the setting status on the detailed setting screen 300C is written. Another method for creating a scan instruction command is, for example, extending a standard protocol command. Another extension method is, for example, writing a dedicated command in an extension field of the standard protocol command. Other extension methods include adding a proprietary command to the end of the standard protocol command, or overwriting the standard protocol command with a proprietary command system by the extension application 204. When issuing an instruction from the extension application 204, the instruction and communication may be performed using a manufacturer's proprietary protocol, regardless of the standard protocol.
[0081] In step S709, the extension application 204 sends the scan instruction command created in step S708 to the scanning device 102.
[0082] In step S710, the extended application 204 determines whether or not all of the scanned image data (see step S617) has been received from the scanning device 102. If it is determined in step S710 that all of the scanned image data has been received, the process proceeds to step S711. On the other hand, if it is determined in step S710 that all of the scanned image data has not been received, the process remains in step S710 and waits.
[0083] In step S711, the extension application 204 sends all the scanned image data from the scanning device 102 to the general-purpose scanning software 202, and the process ends.
[0084] Fig. 8 is a flowchart showing the processing executed by the scanning device. A program based on the flowchart shown in Fig. 8 is stored in external storage device 199. CPU 191 can execute this program by reading it from external storage device 199 to RAM 192. As shown in Fig. 8, in step S801, CPU 191 accepts a scan instruction command from extension application 204 (see step S615).
[0085] In step S802, CPU 191 interprets the scan instruction command received in step S801. Then, CPU 191 converts the scan instruction command into a scan process by scanning device 102, that is, into a read setting that enables scanning under the setting conditions (skew correction process "performed") on detailed setting screen 300C.
[0086] In step S803, the CPU 191 determines the ASIC of the image processing unit 190 to be used to perform scanning in accordance with the setting (read setting) in step S802, and sets the ASIC.
[0087] In step S804, the CPU 191 transmits to the reading unit 195 a reading instruction according to the reading setting.
[0088] In step S805, the CPU 191 acquires the scanned image data from the reading unit 195.
[0089] In step S806, the CPU 191 controls the image processing unit 190 to execute image processing on the scanned image data acquired in step S805. In this embodiment, the image processing is, for example, tilt correction processing.
[0090] In step S807, the CPU 191 stores the scanned image data obtained in step S806 in the external storage device 199.
[0091] In step S808, CPU 191 determines whether scanning has been completed for all pages of the document to be read. If it is determined in step S808 that scanning has been completed, the process proceeds to step S809. On the other hand, if it is determined in step S808 that scanning has not been completed, the process returns to step S805, and the subsequent steps are executed in sequence.
[0092] In step S809, the CPU 191 controls the image processing unit 190 to convert the scanned image data stored in step S807 in accordance with the transmission format. In this embodiment, the transmission format is not included in the scan instruction command received in step S801. Therefore, the scanned image data is converted to, but not limited to, the default JPEG format of the scanning device 102.
[0093] In step S810, the CPU 191 controls the input / output interface 198 to transmit the scanned image data converted in step S809 to the extension application 204, and the process ends. While the present embodiment describes the case where an original is read using a feeder and the skew correction process is performed, it is also possible to read the original using a platen and perform the skew correction process. In this case, first, the original is placed on the glass platen 1903 and a pressure platen (not shown) is lowered. This fixes the original on the glass platen 1903. Next, the control 305 on the detailed setting screen 300C shown in FIG. 3A(c) is changed to "Platen," and the control 307 is set to "Yes," and scanning is performed. Furthermore, in the present embodiment, when there are multiple pieces of image data, all of the image data are received and then transmitted to the extension application 204. However, this is not limited to this. For example, each piece of image data may be received and then transmitted to the extension application 204.
[0094] <<Second embodiment>> Hereinafter, the second embodiment will be described with reference to FIG. 9, but the differences from the previous embodiment will be mainly described, and a description of the same points will be omitted.
[0095] <Processing after the scan application accepts the scan settings> FIG. 9 is a sequence diagram showing the processing executed between the scan application, the general-purpose scan software, the extension application, and the scan device after the scan application in the second embodiment accepts scan settings. The sequence diagram shown in FIG. 9 differs from the sequence diagram shown in FIG. 6 in that, after step S612, steps S901 to S905 are executed in sequence instead of steps S613 to S615. Furthermore, after step S616, step S906 is executed instead of steps S617 and S618. As shown in FIG. 9, in step S901, the general-purpose scan software 202 accepts the scan instruction issued in step S612. Then, the general-purpose scan software 202 creates a scan instruction command based on the scan function information 203 into which the settings on the advanced settings screen 300C are written in step S608. Note that this scan instruction command does not include functions not supported by the general-purpose scan software 202.
[0096] In step S902, the general-purpose scan software 202 sends the scan instruction command created in step S901 to the extension application 204.
[0097] In step S903, the extension application 204 receives the scan instruction command in step S902. The extension application 204 then adds instructions for functions not supported by the general-purpose scan software 202 to the scan instruction command or modifies existing instructions. This extends the function of the scan instruction command. Specifically, in step S901, the scan instruction command created by the general-purpose scan software 202 does not include settings for skew correction processing, so in step S903, settings for skew correction processing are added.
[0098] In step S904, the extension application 204 notifies the general-purpose scan software 202 that the function extension of the scan instruction command in step S903 has been completed. In addition, the extension application 204 transmits the scan instruction command whose function has been extended in step S903 to the general-purpose scan software 202.
[0099] In step S905, the general-purpose scanning software 202 receives the scan instruction command sent in step S904 and transmits the scan instruction command to the scanning device 102.
[0100] In step S906, the input / output interface 198 of the scanning device 102 transmits the scanned image data obtained in step S616 to the general-purpose scanning software 202. This allows the general-purpose scanning software 202 to receive the scanned image data.
[0101] As described above, in this embodiment, a scan instruction command in which the setting function for skew correction processing has been extended by the extension application 204 can be sent to the scanning device 102 via the general-purpose scan software 202. This allows scanning to be performed under the settings for skew correction processing.
[0102] <<Third Embodiment>> Hereinafter, the third embodiment will be described with reference to FIGS. 10 and 11, but the description will focus on the differences from the above-described embodiments, and a description of the same points will be omitted.
[0103] <Processing after the scan application accepts the scan settings> 10 is a sequence diagram showing the processing executed between the scan application, general-purpose scan software, extension application, and scan device after the scan application in the third embodiment accepts scan settings. The sequence diagram shown in FIG. 10 differs from the sequence diagram shown in FIG. 6 in that, after step S613 is executed, steps S1001 to S1005 are executed in order instead of steps S614 to S616. As shown in FIG. 10, in step S1001, the extension application 204 accepts the scan instruction issued in step S613. The extension application 204 then creates a standard scan instruction command in accordance with the standard protocol. Note that this standard scan instruction command does not include functions not supported by the standard protocol.
[0104] In step S1002, the extension application 204 generates an extension scan instruction command for a function that is supported only by the extension application 204.
[0105] In step S1003, the extension application 204 transmits the standard scan instruction command created in step S1001 to the scanning device 102.
[0106] In step S1004, the extension application 204 transmits the extended scan instruction command created in step S1002 to the scanning device 102.
[0107] In step S1005, the input / output interface 198 of the scanning device 102 receives the standard scan instruction command sent in step S1003 and the extended scan instruction command sent in step S1004. The reading unit 195 of the scanning device 102 then interprets the standard scan instruction command and the extended scan instruction command, respectively, and performs scanning. As a result, image data that has been subjected to skew correction processing is obtained as scanned image data.
[0108] As described above, in this embodiment, the setting function for the tilt correction process is not extended for the standard scan instruction command, and the setting function for the tilt correction process supported only by the extension application 204 can be handled by a separate scan instruction command. This allows scanning to be performed with the tilt correction process set.
[0109] Fig. 11 is a flowchart showing the processing executed by the extended application. The flowchart shown in Fig. 11 differs from the flowchart shown in Fig. 7 in that steps S1101 to S1104 are executed in order instead of steps S708 and S709. As shown in Fig. 11, in step S1101, the extended application 204 creates a standard scan instruction command in accordance with the standard protocol.
[0110] In step S1102, the extension application 204 creates an extension scan instruction command for a function that is not supported by the standard protocol and is supported only by the extension application 204.
[0111] In step S1103, the extension application 204 transmits the standard scan instruction command created in step S1101 to the scanning device 102.
[0112] In step S1104, the extension application 204 transmits the extended scan instruction command created in step S1102 to the scanning device 102. After step S1104 is executed, the process proceeds to step S710.
[0113] <<Fourth Embodiment>> The fourth embodiment will be described below with reference to Figures 12 to 14. The differences from the previous embodiments will be mainly described, and similar points will not be described again. In the first embodiment, the extension application 204, together with the general-purpose scanning software 202, sets the skew correction process. Then, the scanning device 102 is instructed to execute the skew correction process in accordance with this setting. This enables the scanning device 102 to execute the skew correction process. In this way, in the first embodiment, the extension application 204, together with the general-purpose scanning software 202, causes the scanning device 102 to execute the skew correction process.
[0114] However, some scanning devices 102 are unable to perform skew correction processing. In such cases, even if the extended application 204 instructs the scanning device 102 to perform skew correction processing, the scanning device 102 cannot perform the skew correction processing. Therefore, in this embodiment, a determination is made based on the capability information of the scanning device 102 as to whether the scanning device 102 is able to perform skew correction processing. If it is determined that the scanning device 102 is able to perform skew correction processing, the scanning device 102 is caused to perform the skew correction processing. On the other hand, if it is determined that the scanning device 102 is unable to perform skew correction processing, the extended application 204 performs the skew correction processing. This makes it possible to provide the user with skew correction processing even when the scanning device 102 is unable to perform skew correction processing.
[0115] <Flowchart of the scan function expansion unit for editing scan function information> FIG. 12 is a flowchart showing a process in which the scan function extension unit edits scan function information in the fourth embodiment. The program based on the flowchart shown in FIG. 12 is executed by the CPU 111 controlling the scan function extension unit 206. The flowchart shown in FIG. 12 is a flowchart in which steps S1301 and S1302 are added to the flowchart shown in FIG. 4. FIG. 13 is a diagram showing an example of a table listing the capability information of the scanning device. As shown in FIG. 12, when the repeated processing of steps S404 to S406 is completed, the processing proceeds to step S1301. Table 1401 shown in FIG. 13 lists the capability information of the scanning device 102. This table 1401 includes, as capability information, information on the scanning size, information on the scanning destination, information on resolution, and information on double-sided printing. However, unlike table 501 shown in FIG. 5(a), it does not include information on the skew correction process. Therefore, it is clear that the scanning device 102 is unable to perform the skew correction process. Therefore, the tilt correction function is not added to the scan function information 203 after the processing of steps S404 to S406 is completed.
[0116] 12, in step S1301, the scan function extension unit 206 determines whether the extension application 204 has a tilt correction function. If the result of the determination in step S1301 is that the extension application 204 has the tilt correction function, the process proceeds to step S1302. On the other hand, if the result of the determination in step S1301 is that the extension application 204 does not have the tilt correction function, the process ends. As described above, since the extension application 204 has the tilt correction function, the process proceeds to step S1302.
[0117] In step S1302, the scan function expansion unit 206 adds information relating to the tilt correction process in the table 501 shown in FIG.
[0118] As described above, the extension application 204 can add to the scan function information 203 a function that is not supported by the general-purpose scan software 202, is supported by the scan device 102, and is supported by the extension application 204. The extension application 204 then determines whether or not a skew correction function is available. If it is determined that the skew correction function is available, the skew correction function is added to the scan function information 203. As a result of this addition process, even if the scan device 102 cannot perform skew correction processing, capability information is generated based on the scan function information 203 to which the skew correction processing has been added. The extension application 204 can display the detailed setting screen 300C shown in FIG. 3(c) by generating a display screen based on this capability information.
[0119] <Processing after the scan application accepts the scan settings> Fig. 14 is a sequence diagram showing the processing executed between the scan application, general-purpose scan software, extension application, and scan device after the scan application accepts scan settings. The sequence diagram shown in Fig. 14 differs from the sequence diagram shown in Fig. 6 in that steps S1201 to S1204 are executed in order between steps S605 and S606. In addition, step S1205 is executed between steps S617 and S618. As shown in Fig. 14, in step S1201, the scan function extension unit 206 of the extension application 204 requests capability information from the scan device 102.
[0120] In step S1202, in response to the request for capability information in step S1201, the scanning device 102 transmits the capability information to the scanning function extension unit 206. As a result, the scanning function extension unit 206 acquires the capability information from the scanning device 102.
[0121] In step S1203, the scan function extension unit 206 acquires a list of scan functions supported by the extension application 204 from the shared information 208, and determines whether or not the list includes a tilt correction function.
[0122] In step S1204, the scan function extension unit 206 determines whether the scanning device 102 has a skew correction function based on the capability information acquired in step S1202. In this embodiment, the scanning device 102 does not have a skew correction function, so the determination result in step S1204 is that the scanning device 102 does not have the skew correction function. Note that if the determination result in step S1204 determines that the scanning device 102 has the skew correction function, execution of step S1205 is omitted. This is because the scanning device 102 is generally capable of performing skew correction processing faster than the image data editing unit 207. Specifically, this is because the scanning device 102 can process data faster than the magnification processing unit 904 using an ASIC (Application Specific Integrated Circuit).
[0123] In step S1205, the image data editing unit 207 of the extension application 204 executes the skew correction process on the image data received from the scanning device 102 in accordance with the skew correction process settings accepted on the detailed setting screen 300C (execution step). As a result, image data on which the skew correction process has been executed (corrected image data) is obtained, that is, generated. Note that, unlike step S616 in the first embodiment, the skew correction process is not executed in step S616 in this embodiment.
[0124] Then, in step S618 after executing step S1205, the extension application 204 transmits the image data obtained in step S1205, that is, the execution result in the execution step, to the general-purpose scan software 202 (transmission step).
[0125] As described above, in this embodiment, even if the scanning device 102 is unable to execute the tilt correction process, the extension application 204 can execute the tilt correction process.
[0126] <<Fifth Embodiment>> The fifth embodiment will be described below with reference to FIGS. 15 to 17. Differences from the above-described embodiments will be mainly described, and similar details will not be described again. Some image processing for image data is preferably performed before skew correction. Examples of such image processing include, but are not limited to, blank page skip processing. The "blank page skip processing" refers to processing that, when a blank document is included in a multi-page document, identifies the image data of the blank document in the full scan image data and removes the image data from the scanned image data. For example, suppose a document contains three pages, and images are formed on the first and third pages, but the second page is blank. In this case, the scanned image data includes the image data of the first and third pages, and excludes the image data of the blank document on the second page. Note that the blank page skip processing calculates histograms, variance values, and the like in specific regions of the image to identify blank documents. Therefore, if the tilt correction process is not performed, the document may be judged to be blank, including the area outside the document and the edges of the paper, which may result in an erroneous judgment.
[0127] <Relationship between extended application capability information and scanning device capability information> FIG. 15 is a diagram showing an example of a list of scan information in the fifth embodiment. Table 2001 shown in FIG. 15(a) includes all capability information executable by the extended application 204. In particular, in this embodiment, table 2001 includes a blank page skip function. Information 2003 also includes information 2003 indicating whether each function should be executed after the skew correction process is performed. In information 2003, the blank page skip function is marked with "O," indicating that the blank page skip function should be executed after the skew correction process is performed. Note that an "X" in information 2003 indicates that the function does not need to be executed after the skew correction process is performed. Table 2002 shown in FIG. 15(b) includes capability information for the scanning device 102. In particular, in this embodiment, table 2002 includes a blank page skip function, similar to table 2001.
[0128] <Detailed settings screen> FIG. 16 is a diagram showing an example of a screen displayed on the display unit of the scanning system. Similar to the detailed setting screen 300C, the detailed setting screen 2100 shown in FIG. 16 includes controls 305 to 307. The detailed setting screen 2100 also includes an additional control 2101. The control 2101 allows the user to select whether or not to execute the blank page skip process. Operating the control 2101 displays a list 2102. The list 2102 includes "Yes," indicating that the blank page skip process is to be executed, and "No," indicating that the blank page skip process is not to be executed. Operating the control 306 allows the user to confirm the selection in the control 2101 along with the selection in the control 307. For example, if "Yes" is selected in the control 2101 and the selection is confirmed, the blank page skip process is instructed. If "No" is selected in the control 2101 and the selection is confirmed, the instruction for the blank page skip process is suppressed. In this manner, in this embodiment, the blank page skip process can be set by the extension application 204.
[0129] <Processing after the scan application accepts the scan settings> FIG. 17 is a sequence diagram illustrating the processing executed between the scan application, general-purpose scan software, extension application, and scan device after the scan application accepts scan settings. The sequence diagram illustrated in FIG. 17 differs from the sequence diagram illustrated in FIG. 14 in that steps S1203 and S1204 are omitted. Also, step S1501 is executed instead of step S614, and step S1502 is executed instead of step S1205. As illustrated in FIG. 15, in step S1501, the extension application 204 creates a scan instruction command. This command is created based on the capability information from the scan device 102 acquired in step S1202 and the setting information written to the scan function information 203 in step S608. Specifically, when the extension application 204 executes skew correction processing and the function information 2003 is marked "○," no command is added to the scan instruction. This prevents the scan device 102 from executing image processing that assumes skew correction processing has already been performed.
[0130] In step S1502, the image data editing unit 207 of the extension application 204 performs, on the image data, a process that is not supported by the scanning device 102 and that is not included in the scan instruction command in step S1501. In this embodiment, first, a skew correction process is performed, and then a blank page skip process is performed.
[0131] As described above, in this embodiment, even if the scanning device 102 does not have a tilt correction function, not only can the tilt correction process be performed, but the process can also be performed taking into account the processing order with other functions. This prevents the execution of a process that assumes tilt correction before the tilt correction process, thereby providing appropriate processing results.
[0132] <<Sixth Embodiment>> A sixth embodiment will be described below with reference to Figures 18 and 19. Differences from the previous embodiments will be mainly described, and similar points will not be described. When the first tilt correction process is used as the tilt correction process, there is a risk that the correction will be insufficient when the first tilt correction process is performed, depending on various conditions such as the darkness and lightness of the image. For example, in the case of a document in which an image with a dark background is printed and edges are difficult to detect, there is a risk that the correction will be insufficient when the first tilt correction process is performed. In this embodiment, it will be described how such problems can be alleviated.
[0133] <Processing after the scan application accepts the scan settings> 18 is a sequence diagram showing the processing executed between the scan application, general-purpose scan software, extended application, and scan device after the scan application in the sixth embodiment accepts scan settings. The sequence diagram shown in FIG. 18 differs from the sequence diagram shown in FIG. 6 in that steps S1601 to S1604 are executed in order between steps S617 and S618. As shown in FIG. 18, in step S1601, the extended application 204 receives the image after the skew correction process that was transmitted in step S617. The extended application 204 then displays this preview image on the display unit 119.
[0134] In step S1602, the extension application 204 receives a request to display an additional setting screen.
[0135] In step S1603, the extension application 204 displays an additional setting screen on the display unit 119 in response to the additional setting screen display request in step S1602. On this additional setting screen, it is possible to set additional tilt correction processing. Hereinafter, this additional tilt correction processing may be referred to as a "second tilt correction processing."
[0136] In step S1604, the image data editing unit 207 of the extension application 204 performs additional tilt correction processing on the image data received in step S1601 based on the setting of the additional tilt correction processing in step S1603.
[0137] <Additional settings screen> FIG. 19 shows an example of a screen displayed on the display unit of the scanning system. Screen 2200A shown in FIG. 19(a) is a preview screen displayed in step S1601. Screen 2200B shown in FIG. 19(b) is an additional setting screen displayed in step S1603. This screen 2200B is used to set additional skew correction processing. As shown in FIG. 19(a), screen 2200A includes image 2201, control 2202, and control 2203. Image 2201 is an image received by the extended application 204. As mentioned above, for a document with a printed image on a dark background where edges are difficult to detect, the skew correction processing may not be sufficient. As a result, the image 2201 remains skewed. Control 2202 is a button for transitioning to screen 2200B. Operating control 2202 displays screen 2200B. Control 2203 is a button for exiting screen 2200A. By operating control 2203, screen 2200A can be terminated and step S618 is executed.
[0138] As shown in FIG. 19(b), screen 2200B includes controls 2204 to 2206. Control 2204 is an input section (input screen) that allows the user to input any numerical value representing the tilt to be corrected by the additional tilt correction process. The user can view the tilt of image 2201 on screen 2200A and input a numerical value into control 2204 that offsets the tilt angle. By operating control 2206 with a numerical value input into control 2204, the image data forming image 2201 is rotated by the numerical value input into control 2204 (second tilt correction process). This allows the second tilt correction process to correct any tilt that could not be corrected by the first tilt correction process. Control 2205 is a button for canceling the second tilt correction process. As described above, in this embodiment, if an image that has undergone the first tilt correction process is tilted, the second tilt correction process can be executed to further correct the tilt. This makes it possible to obtain an image with no tilt.
[0139] Although preferred embodiments of the present invention have been described above, the present invention is not limited to the above-described embodiments, and various modifications and variations are possible within the scope of the gist of the present invention. The present invention can also be realized by supplying a program that realizes one or more functions of the above-described embodiments to a system or device via a network or storage medium, and having one or more processors in the computer of the system or device read and execute the program. The present invention can also be realized by a circuit (e.g., an ASIC) that realizes one or more functions.
[0140] The disclosure of each embodiment includes the following programs, storage media, methods, and configurations. (Program 1) A program that supports a general-purpose program that can be used in common with image processing devices of multiple manufacturers that have a scanning function, On the computer, an extraction step of extracting feature amounts from the image acquired by the scanning function; a display control step of displaying a setting acceptance screen for accepting settings of a tilt correction process for correcting the tilt of the image based on the feature amount when the image is tilted; an instruction step of instructing the image processing device to perform the tilt correction process in accordance with the settings accepted on the setting acceptance screen. (Program 2) The program according to Program 1, wherein the image processing device is capable of executing the tilt correction process in accordance with the instruction in the instruction step. (Program 3) The program according to Program 1 or 2, characterized in that when the tilt correction process is a first tilt correction process, if the image on which the first tilt correction process has been performed has a tilt, the program causes the computer to execute a second tilt correction process to correct the tilt. (Program 4) The program according to Program 3, which causes the computer to execute a step of displaying an input screen for inputting the inclination to be corrected in the second inclination correction process as a numerical value. (Program 5) A program that supports a general-purpose program that can be used in common with image processing devices of multiple manufacturers that have a scanning function, On the computer, an extraction step of extracting feature amounts from the image acquired by the scanning function; a display control step of displaying a setting acceptance screen for accepting settings of a tilt correction process for correcting the tilt of the image based on the feature amount when the image is tilted; an execution step of executing the tilt correction process in accordance with the settings accepted on the setting acceptance screen; a transmitting step of transmitting the execution result in the executing step to the general-purpose program. (Program 6) In the execution step, a corrected image in which the tilt of the image is corrected is generated by executing the tilt correction process; The program according to program 5, wherein in the transmitting step, the corrected image is transmitted as an execution result in the executing step. (Program 7) The program according to any one of Programs 1 to 6, wherein whether or not the setting acceptance screen is displayed can be switched depending on the image processing device. (Program 8) The computer: an acquisition step of acquiring capability information relating to a capability of executing the scan function from the image processing device prior to the display control step; a determination step of determining whether or not the capability information acquired in the acquisition step includes information that enables display of the setting reception screen, The program described in program 7, characterized in that in the display control process, if it is determined as a result of the judgment in the judgment process that information that enables the display of the setting reception screen is included, the setting reception screen is displayed, and if it is determined that information that enables the display of the setting reception screen is not included, the setting reception screen is not displayed. (Program 9) The program according to any one of Programs 1 to 8, wherein the setting acceptance screen allows a user to select whether to execute the tilt correction process or not to execute the tilt correction process. (Program 10) The program according to any one of Programs 1 to 9, which causes the computer to display a preview image of the image before the tilt correction process is executed. (Program 11) The program according to any one of Programs 1 to 10, which causes the computer to display a preview image of the image on which the tilt correction processing has been performed. (Program 12) The program according to any one of Programs 1 to 11, wherein in the extraction step, an edge of a document from which the image is to be acquired by the scanning function is extracted as the feature amount. (Program 13) The program according to any one of Programs 1 to 12, characterized in that the program is configured to be able to instruct execution of a process that is premised on the execution of the tilt correction process prior to the execution of the tilt correction process. (Storage Medium 1) A storage medium having stored thereon one of the programs described in Programs 1 to 6. (Method 1) A method for controlling image processing devices having a scan function to support a general-purpose program that can be used in common with image processing devices from multiple manufacturers, comprising the steps of: an extraction step of extracting feature amounts from the image acquired by the scanning function; a display control step of displaying a setting acceptance screen for accepting settings of a tilt correction process for correcting the tilt of the image based on the feature amount when the image is tilted; and an instruction step of instructing the image processing device to perform the tilt correction process in accordance with the settings accepted on the setting acceptance screen. (Method 2) A method for controlling image processing devices having a scanning function to support a general-purpose program that can be used in common with image processing devices from multiple manufacturers, comprising the steps of: an extraction step of extracting feature amounts from the image acquired by the scanning function; a display control step of displaying a setting acceptance screen for accepting settings of a tilt correction process for correcting the tilt of the image based on the feature amount when the image is tilted; an execution step of executing the tilt correction process in accordance with the settings accepted on the setting acceptance screen; a transmitting step of transmitting an execution result from the executing step to the image processing device. (Configuration 1) An information processing device having a scanning function, communicably connected to image processing devices of a plurality of manufacturers, and capable of processing information between the image processing devices, a general-purpose program that can be used in common with the image processing devices of the plurality of manufacturers; a program that supports the general-purpose program, The program is configured to: an extraction step of extracting feature amounts from the image acquired by the scanning function; a display control step of displaying a setting acceptance screen for accepting settings of a tilt correction process for correcting the tilt of the image based on the feature amount when the image is tilted; an instruction step of instructing the image processing device to perform the tilt correction process in accordance with the settings accepted on the setting acceptance screen. (Configuration 2) An information processing device having a scanning function, communicably connected to image processing devices of a plurality of manufacturers, and capable of processing information between the image processing devices, a general-purpose program that can be used in common with the image processing devices of the plurality of manufacturers; a program that supports the general-purpose program, The program is configured to: an extraction step of extracting feature amounts from the image acquired by the scanning function; a display control step of displaying a setting acceptance screen for accepting settings of a tilt correction process for correcting the tilt of the image based on the feature amount when the image is tilted; an execution step of executing the tilt correction process in accordance with the settings accepted on the setting acceptance screen; a transmitting step of transmitting an execution result of the executing step to the image processing device. [Explanation of symbols]
[0141] 101 host computer 102 Scanning Device 204 Extended Applications 202 General-purpose scanning software 300C detailed setting screen 1000 Scan System
Claims
1. A program that supports a general-purpose program that can be used in common with image processing devices of multiple manufacturers that have a scanning function, On the computer, an extraction step of extracting feature amounts from the image acquired by the scanning function; a display control step of displaying a setting acceptance screen for accepting settings of a tilt correction process for correcting the tilt of the image based on the feature amount when the image is tilted; an instruction step of instructing the image processing device to perform the tilt correction process in accordance with the settings accepted on the setting acceptance screen.
2. 2. The program according to claim 1, wherein the image processing device is capable of executing the tilt correction process in accordance with the instruction in the instruction step.
3. 2. The program according to claim 1, wherein, when the tilt correction process is a first tilt correction process, if the image on which the first tilt correction process has been performed has a tilt, the program causes the computer to execute a second tilt correction process to correct the tilt.
4. 4. The program according to claim 3, further comprising a step of causing the computer to display an input screen for inputting the tilt to be corrected in the second tilt correction process as a numerical value.
5. A program that supports a general-purpose program that can be used in common with image processing devices of multiple manufacturers that have a scanning function, On the computer, an extraction step of extracting feature amounts from the image acquired by the scanning function; a display control step of displaying a setting acceptance screen for accepting settings of a tilt correction process for correcting the tilt of the image based on the feature amount when the image is tilted; an execution step of executing the tilt correction process in accordance with the settings accepted on the setting acceptance screen; a transmitting step of transmitting the execution result in the executing step to the general-purpose program.
6. In the execution step, a corrected image in which the tilt of the image is corrected is generated by executing the tilt correction process; 6. The program according to claim 5, wherein the transmission step transmits the corrected image as an execution result of the execution step.
7. 6. The program according to claim 1, wherein whether or not the setting acceptance screen is displayed can be switched depending on the image processing device.
8. The computer, an acquisition step of acquiring capability information relating to a capability of executing the scan function from the image processing device prior to the display control step; a determination step of determining whether or not the capability information acquired in the acquisition step includes information that enables display of the setting reception screen, The program described in claim 7, characterized in that in the display control process, if it is determined as a result of the judgment process that the information that enables the display of the setting reception screen is included, the setting reception screen is displayed, and if it is determined that the information that enables the display of the setting reception screen is not included, the setting reception screen is not displayed.
9. 6. The program according to claim 1, wherein the setting acceptance screen allows a user to select whether to execute the tilt correction process or not to execute the tilt correction process.
10. 6. The program according to claim 1, further comprising causing the computer to display a preview image of the image before the tilt correction process is executed.
11. 6. The program according to claim 1, further comprising causing the computer to display a preview image of the image on which the tilt correction process has been performed.
12. 6. The program according to claim 1, wherein the extracting step extracts, as the feature amount, an edge of a document from which the image is to be acquired by the scanning function.
13. 6. The program according to claim 1, wherein the program is configured to be capable of instructing execution of a process that is a prerequisite for the execution of the inclination correction process, prior to the execution of the inclination correction process.
14. A storage medium storing the program according to claim 1 or 5.
15. A method for controlling image processing devices having a scan function to support a general-purpose program that can be commonly used for image processing devices of multiple manufacturers, comprising: an extraction step of extracting feature amounts from the image acquired by the scanning function; a display control step of displaying a setting acceptance screen for accepting settings of a tilt correction process for correcting the tilt of the image based on the feature amount when the image is tilted; and an instruction step of instructing the image processing device to perform the tilt correction process in accordance with the settings accepted on the setting acceptance screen.
16. A method for controlling image processing devices having a scan function to support a general-purpose program that can be commonly used for image processing devices of multiple manufacturers, comprising: an extraction step of extracting feature amounts from the image acquired by the scanning function; a display control step of displaying a setting acceptance screen for accepting settings of a tilt correction process for correcting the tilt of the image based on the feature amount when the image is tilted; an execution step of executing the tilt correction process in accordance with the settings accepted on the setting acceptance screen; a transmitting step of transmitting an execution result from the executing step to the image processing device.
17. An information processing device having a scanning function, communicably connected to image processing devices of a plurality of manufacturers, and capable of processing information between the image processing devices, a general-purpose program that can be used in common with the image processing devices of the plurality of manufacturers; a program that supports the general-purpose program, The program is configured to: an extraction step of extracting feature amounts from the image acquired by the scanning function; a display control step of displaying a setting acceptance screen for accepting settings of a tilt correction process for correcting the tilt of the image based on the feature amount when the image is tilted; an instruction step of instructing the image processing device to perform the tilt correction process in accordance with the settings accepted on the setting acceptance screen.
18. An information processing device having a scanning function, communicably connected to image processing devices of a plurality of manufacturers, and capable of processing information between the image processing devices, a general-purpose program that can be used in common with the image processing devices of the plurality of manufacturers; a program that supports the general-purpose program, The program is configured to: an extraction step of extracting feature amounts from the image acquired by the scanning function; a display control step of displaying a setting acceptance screen for accepting settings of a tilt correction process for correcting the tilt of the image based on the feature amount when the image is tilted; an execution step of executing the tilt correction process in accordance with the settings accepted on the setting acceptance screen; a transmitting step of transmitting an execution result of the executing step to the image processing device.
Citation Information
Patent Citations
Server system and application
JP2021033526A