scanner
The scanner autonomously corrects document skew within its limits and requests external assistance when needed, ensuring effective image correction by utilizing internal and external resources.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-08-23
- Publication Date
- 2026-03-06
AI Technical Summary
Conventional scanners face challenges in performing skew correction depending on the degree of skew and document state, requiring user attention to ensure correct placement, and may lack sufficient memory for large tilts.
A scanner that detects document inclination and performs skew correction itself if within a predetermined angle, requesting external device correction if beyond its capacity, utilizing a communication interface to access external devices with advanced tilt correction capabilities.
Ensures reliable skew correction by leveraging internal and external resources, increasing the likelihood of successful image correction and reducing memory overload risks.
Smart Images

Figure 2026038423000001_ABST
Abstract
Description
[Technical Field]
[0001] The technical field disclosed in this specification relates to a scanner that reads an image of an original and outputs scanned data. [Background technology]
[0002] Conventionally, there is known a scanner that reads an original, detects the tilt of the read image, and outputs scanned data with the tilt corrected. For example, Patent Document 1 discloses a flatbed scanner that reads an original placed on a platen glass, detects the tilt of the original from a reference line, and performs tilt correction on the scanned image. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Publication No. 2023-4903 Summary of the Invention [Problem to be solved by the invention]
[0004] The scanner's skew correction may not be possible depending on the degree of skew and the state of the document. It is a burden for users to have to pay attention to ensure that the document is in a state where skew correction is possible when placing the document on the platen, and there is room for improvement. [Means for solving the problem]
[0005] A scanner made to solve this problem is a scanner comprising a platen, a reading engine, a user interface, and a communication interface, and is capable of executing a scan process to scan a document placed on the platen and generate scan data based on the scan results, and is further configured as follows: when the scan process is executed in response to a predetermined scan instruction, the scanner executes a detection process to detect the inclination of the document with respect to a reference line of the platen based on the scan data generated by the scan process, and if the inclination of the document detected in the detection process is within a predetermined angle, performs inclination correction on the scan data and produces output based on the inclination-corrected scan data, and if the inclination of the document detected in the detection process is greater than the predetermined angle, sends the scan data to an external device via the communication interface to request inclination correction, and, in response to receiving the inclination-corrected scan data from the external device, produces output based on the received scan data.
[0006] The scanner disclosed in this specification scans a document placed on a platen, generates scan data, and detects the skew of the document. If the skew of the document is within a predetermined angle, the scanner performs skew correction itself. However, if the skew is greater than the predetermined angle, the scanner requests skew correction from an external device. If the skew of the document is greater than the predetermined angle, the scanner may be unable to perform skew correction itself due to insufficient memory required for correction, for example. In this case, the scanner requests skew correction from an external device. Once the scanner receives skew-corrected scan data from the external device, it can output data based on the skew-corrected scan data.
[0007] A scanner made to solve this problem is a scanner comprising a platen, a reading engine, a user interface, and a communication interface, and is capable of executing a scan process to scan a document placed on the platen and generate scan data based on the scan results, and the scanner may be further configured to: when the scan process is executed in response to a predetermined scan instruction, execute a detection process to detect the inclination of the document with respect to a reference line of the platen based on the scan data generated by the scan process, and if the inclination of the document is detected by the detection process, perform inclination correction on the scan data and output based on the inclination-corrected scan data, and if the inclination of the document cannot be detected by the detection process, send the scan data to an external device via the communication interface to request inclination correction, and, in response to receiving the inclination-corrected scan data from the external device, output based on the received scan data.
[0008] The scanner disclosed in this specification scans a document placed on a platen to generate scan data and executes a detection process to detect the skew of the document. If the detection process detects the skew of the document, the scanner performs skew correction on its own. However, if the skew of the document cannot be detected, the scanner requests an external device to perform skew correction. If the scanner cannot perform skew correction on its own, it requests the external device to perform skew correction. Therefore, if the scanner can obtain skew-corrected scan data from the external device, it can output data based on the skew-corrected scan data.
[0009] A control method for realizing the functions of the scanner, a computer program, and a computer-readable storage medium storing the computer program are also novel and useful. [Effects of the Invention]
[0010] The technology disclosed in this specification realizes a technology that increases the likelihood that skew correction will be performed on a scanned document image. [Brief explanation of the drawings]
[0011] [Figure 1] FIG. 1 is an explanatory diagram showing a schematic configuration of an MFP according to an embodiment of the present invention. [Figure 2] FIG. 2 is an explanatory diagram illustrating an example of the configuration of a reading engine. [Figure 3] 10 is a flowchart illustrating an example of a procedure for book copy execution processing. [Figure 4] FIG. 10 is an explanatory diagram showing an example of a book copy. [Figure 5] 10 is a flowchart illustrating an example of a procedure for tilt correction processing. [Figure 6] FIG. 10 is an explanatory diagram showing an example of edge image data. [Figure 7] FIG. 10 is an explanatory diagram showing an example of correction limit information. [Figure 8] 10 is a flowchart illustrating an example of a procedure for auto-crop processing. [Figure 9] FIG. 10 is an explanatory diagram showing an example of auto-cropping. [Figure 10] 10 is a flowchart illustrating an example of a procedure for tilt correction processing. DETAILED DESCRIPTION OF THE INVENTION
[0012] Hereinafter, an embodiment of a scanner will be described in detail with reference to the accompanying drawings. This specification discloses a multifunction peripheral (hereinafter referred to as "MFP") having various functions including an image reading function and a communication function.
[0013] As shown in Fig. 1, the MFP 1 of this embodiment includes a controller 10 including a CPU 11 and a memory 12. The MFP 1 also includes a user interface (hereinafter referred to as "user IF") 13, a communication interface (hereinafter referred to as "communication IF") 14, a print engine 15, and a reading engine 16, which are electrically connected to the controller 10. The MFP 1 is an example of a scanner. Note that the controller 10 in Fig. 1 is a general term for hardware and software used to control the MFP 1, and does not necessarily represent a single piece of hardware actually present in the MFP 1.
[0014] The CPU 11 of the MFP 1 executes various processes in accordance with programs read from the memory 12 and based on user operations. The memory 12 of the MFP 1 stores various programs and data, including an operating system (hereinafter referred to as "OS") 21 and a tilt correction program 22. The memory 12 is also used as a work area when various processes are executed. The buffer provided in the CPU 11 is also an example of the memory 12. Details of the programs and data will be described later.
[0015] Note that an example of memory 12 is not limited to a ROM, RAM, HDD, etc. built into MFP 1, but may also be a storage medium that is readable and writable by CPU 11. For example, an external memory such as a USB memory or HDD connected to MFP 1, or a memory or HDD provided in a device connected to MFP 1 via communication IF 14 are also examples of memory 12.
[0016] Computer-readable storage media are non-transitory media. In addition to the above examples, non-transitory media also include recording media such as CD-ROMs and DVD-ROMs. Non-transitory media are also tangible media. On the other hand, electrical signals carrying programs downloaded from servers on the Internet are computer-readable signal media, which is a type of computer-readable medium, but are not included in non-transitory computer-readable storage media.
[0017] The user IF 13 includes, for example, a touch panel. The touch panel includes hardware for displaying a screen for notifying the user of information and hardware for accepting operations by the user. The user IF 13 may include a combination of a display and hardware buttons.
[0018] The communication IF 14 includes hardware for communicating with external devices. The communication IF 14 includes functions compatible with communication standards such as Wi-Fi (registered trademark), Ethernet (registered trademark), and USB. The MFP 1 may be equipped with multiple communication IFs 14 compatible with multiple communication standards.
[0019] Print engine 15 includes a configuration for printing an image on a print medium such as a sheet. The image formation method of print engine 15 is, for example, an electrophotographic method or an inkjet method. MFP 1 of this embodiment may be equipped with print engine 15 capable of performing color printing using multiple colored materials, or may be equipped with print engine 15 that performs only monochrome printing using a single colored material.
[0020] 2, the reading engine 16 includes a transparent flatbed 161 and an image sensor 162 that can move in the sub-scanning direction along the underside of the flatbed 161. The flatbed 161 is an example of a document table. The image sensor 162 has reading elements arranged in the main scanning direction, which is a direction perpendicular to the sub-scanning direction, and can read an image of a document placed on the flatbed 161. The reading engine 16 can read a predetermined entire area R by reading an image with the image sensor 162 and moving the image sensor 162 in the sub-scanning direction in parallel.
[0021] The MFP1 can scan an image of an original document using the reading engine 16, generate scan data that is the scan result, and perform output based on the generated scan data. The MFP1 of this embodiment may be equipped with a reading engine 16 that can perform color reading, which reads an original document as a color image, or may be equipped with a reading engine 16 that can only perform monochrome reading. The MFP1 may also be equipped with a document feeder. In this case, the reading engine 16 can scan an original document placed on the document feeder and transported to the reading position.
[0022] The MFP1 can be connected to the MFP3 via the communication IF 14. The MFP3 is equipped with a tilt correction program 31 and has higher functionality than the MFP1 in terms of tilt correction processing for correcting the tilt of an image in image data. The MFP3 is an example of an external device and an example of another scanner. The tilt correction program 31 is a program for performing tilt correction processing using an algorithm similar to the tilt correction program 22 of the MFP1. The MFP3 is, for example, a device equipped with a larger memory than the MFP1.
[0023] Furthermore, MFP1 has access information 24 and can access server 200 via the Internet 100. Server 200 is likely to have more advanced tilt correction capabilities than MFP1. Server 200 is an example of an external device. Server 200 may be equipped with a trained model that has been trained in advance using various types of data. Server 200 may be a dedicated server provided by a vendor of MFP1 or the like, or may be a server of an AI provider, such as OpenAI, that is publicly available on the Internet 100.
[0024] Next, the procedure for scanning by the MFP1 will be described. The following processes basically refer to CPU processing in accordance with instructions written in a program. In other words, processes such as "judging," "extracting," "selecting," "calculating," "deciding," "identifying," "acquiring," "receiving," and "control" in the following description represent CPU processing. CPU processing also includes hardware control using an OS API. In this specification, the operation of each program will be described without mentioning the OS. In other words, in the following description, a statement to the effect that "Program B controls Hardware C" may also mean that "Program B controls Hardware C using the OS API." Furthermore, CPU processing in accordance with instructions written in a program may be described in abbreviated terms. For example, it may be described as "performed by the CPU." Furthermore, CPU processing in accordance with instructions written in a program may be described in abbreviated terms, such as "performed by Program A."
[0025] In this specification, the terms "notification," "alert," "notification," "reply," "response," and "answer" are used not only to mean the transmission of information to a person, but also to mean communication or exchange of information between devices or between components within a device. Note that the components within a device include software.
[0026] Note that "obtaining" is used as a concept that does not require a request. In other words, the process of receiving data without the CPU requesting it is also included in the concept of "the CPU obtaining data." Furthermore, "data" in this specification is represented as a bit string that can be read by a computer. Data with the same substantial meaning but different formats will be treated as the same data. The same applies to "information" in this specification. Furthermore, "requesting" and "instructing" are concepts that indicate outputting information indicating a request or an instruction to the other party. Furthermore, information indicating a request or an instruction will also be simply referred to as a "request" or "instruction."
[0027] Furthermore, the process by a CPU to determine whether information A indicates event B is sometimes conceptually described as "determining whether event B is true from information A." The process by a CPU to determine whether information A indicates event B or event C is sometimes conceptually described as "determining whether event B or event C is true from information A."
[0028] In addition, in this specification, a setting item may be simply referred to as a "setting." A setting value may be simply referred to as a "setting." A setting value may also be referred to as a "parameter." Furthermore, storing a setting value in a memory or the like may be simply referred to as a "setting." An operation for setting or an input for setting may be simply referred to as a "setting."
[0029] The procedure for the book copy execution process, which uses the MFP 1 to read a book document and create a copy, will be described with reference to the flowchart in Fig. 3. This book copy execution process is executed by the CPU 11 of the MFP 1 when the MFP 1 receives an instruction to execute a book copy.
[0030] In the book copy execution process, the CPU 11 drives the reading engine 16 to read the document on the flatbed 161 (S101). In S101, the CPU 11 causes the reading engine 16 to read images from the entire readable area R of the flatbed 161 (see FIG. 2).
[0031] Note that MFP 1 can accept a book copy instruction as an option for a copy instruction. For example, as shown in FIG. 4A, the user places book document G, which is a book with the pages to be copied open and face down, on flatbed 161 and inputs an instruction to execute book copy. The instruction to execute book copy is an example of a predetermined scan instruction.
[0032] Based on the result of one read, the CPU 11 generates main image data D1 and edge image data D2, for example, as shown in Fig. 4(B) (S102). Steps S101 and S102 are an example of a scan process.
[0033] The original image data D1 is scan data generated using scan parameters set by the user. The user can set scan parameters and print parameters, such as scan resolution, print resolution, document size, paper size, enlargement or reduction, color or monochrome copy, and number of copies, in association with an instruction for book copy. Based on the scan results of S101, the CPU 11 generates the original image data D1 corresponding to the scan parameters set by the user. For example, if the set parameters are for color copy, the CPU 11 generates color image data of the user-specified size at the user-specified scan resolution as the original image data D1. The original image data D1 is an example of first scan data.
[0034] The edge image data D2 is scan data generated using scan parameters that are specified in advance and stored in the memory 12. The edge image data D2 has a resolution of, for example, 300 dpi and is image data of the entire region R that represents a binary image binarized using a predetermined threshold value. The edge image data D2 is an example of second scan data. 300 dpi is an example of a specific resolution.
[0035] The CPU 11 executes skew correction processing using the generated main image data D1 and edge image data D2 (S111). A book document, which is the object to be read in book copy, is likely to become skewed depending on how the user holds it, and it is more difficult for the user to correct the skew than a sheet document. When an instruction to execute book copy is received, the MFP 1 executes skew correction even if an explicit instruction for skew correction is not received as a parameter. The procedure for the skew correction processing will be described with reference to the flowchart in FIG. 5. The skew correction processing is executed based on the skew correction program 22.
[0036] The CPU 11 attempts to detect four vertices corresponding to the four corners of the document based on the edge image data (S201). Then, the CPU 11 determines whether or not all four vertices have been detected and their coordinates have been acquired (S202). S202 is an example of the detection process.
[0037] Specifically, for example, when edge image data 50 including an image of an original document placed at an angle is generated as shown in FIG. 6, the CPU 11 attempts to acquire edge positions in order from the leading edge in the sub-scanning direction (the upper end in the figure) to the trailing edge in the sub-scanning direction (the lower end in the figure). When the CPU 11 detects one vertex 51 corresponding to an edge corner, it acquires its coordinates. Furthermore, the CPU 11 continues edge detection from the first detected vertex 51 toward the trailing edge in the sub-scanning direction, and when the next vertex 52 is detected, it acquires its coordinates. Note that if the CPU 11 cannot detect an edge corner within a predetermined range from the leading edge to the trailing edge in the sub-scanning direction, it determines that vertex detection has failed.
[0038] If the two vertices 51 and 52 on the leading edge side are successfully detected, the CPU 11 attempts to acquire edges in order from the trailing edge in the sub-scanning direction (the lower end in the drawing) to the leading edge side in the sub-scanning direction (the upper end in the drawing). If the CPU 11 detects two vertices 54 and 53 in the same way as on the leading edge side, it acquires their coordinates.
[0039] If it is determined that the coordinates of the four vertices have been acquired (S202: YES), the CPU 11 acquires the width and length of the document based on the acquired coordinates of the four vertices (S205). The book copy process assumes a rectangular document. For example, for edge image data 50 as shown in FIG. 6, the CPU 11 calculates the width and length of the document based on the acquired coordinates of the four vertices 51 to 54. The width of the document is calculated as the distance between the two vertices 51 and 52 at the leading edge in the sub-scanning direction, or the distance between the two vertices 53 and 54 at the trailing edge in the sub-scanning direction. The length of the document is calculated as the distance between the vertices 51 and 53 at the leading edge in the main scanning direction (left side in the figure) or the distance between the two vertices 52 and 54 at the trailing edge in the main scanning direction (right side in the figure). The width and length of the document may be based on the document size specified by the user in the book copy command.
[0040] Furthermore, CPU 11 attempts to acquire the inclination of the document and the amount of deviation in the main scanning direction and the sub-scanning direction based on the coordinates of the four vertices (S206). Then, CPU 11 determines whether the inclination of the document and the amount of deviation have been acquired (S207). S206 and S207 are an example of the detection process.
[0041] Based on the coordinates of the two leading edge vertices 51 and 52, the CPU 11 obtains the angle between the line connecting them and the reference line as the document tilt θ (see FIG. 6). Alternatively, based on the coordinates of the two trailing edge vertices 53 and 54, the CPU 11 may obtain the angle between the line connecting them and the reference line as the document tilt θ. The reference line is a line parallel to a line in the main scanning direction.
[0042] 6, the CPU 11 acquires the distance in the main scanning direction between vertices 51 and 53 on the leading side in the main scanning direction as the amount of deviation z1 in the main scanning direction. The CPU 11 may acquire the distance in the main scanning direction between vertices 52 and 54 on the trailing side in the main scanning direction as the amount of deviation z1 in the main scanning direction. The CPU 11 acquires the distance in the sub-scanning direction between vertices 51 and 52 on the leading side in the sub-scanning direction as the amount of deviation z2 in the sub-scanning direction. The CPU 11 may acquire the distance in the sub-scanning direction between vertices 53 and 54 on the trailing side in the sub-scanning direction as the amount of deviation z2 in the sub-scanning direction.
[0043] If it is determined that the inclination θ of the document has been acquired (S206: YES), the CPU 11 determines whether or not the inclination can be corrected on the device itself based on the document width and inclination acquired from the edge image data and the correction limit information 23 (see Figure 1) stored in the memory 12 (S211).
[0044] 7, the correction limit information 23 is information that stores the width of the document in association with the correction limit value at which skew correction can be performed by the MFP 1. The correction limit value stored in the correction limit information 23 includes, for example, a skew 231, a main scanning direction deviation amount 232, and a sub scanning direction deviation amount 233, as shown in FIG.
[0045] CPU 11 determines that tilt correction is possible on its own device if the tilt θ of the document acquired in S206 is within tilt 231 corresponding to the document width acquired in S205. For example, CPU 11 determines that tilt correction is possible on its own device if the document width is greater than B5 width and the document tilt θ is within 3 degrees. Tilt 231 is an example of a predetermined angle. B5 width is the length of the short side of the B5 size and is an example of a predetermined length.
[0046] If the tilt is within the correction limit and it is determined that tilt correction is possible on the device itself (S211: YES), the CPU 11 performs tilt correction on the main image data D1 using the tilt θ acquired based on the edge image data D2 (S212). As a result, for example, as shown in Fig. 4(C), image data based on parameters designated by the user and with tilt correction is generated.
[0047] The greater the inclination of the document, the greater the memory required for the inclination correction process. In other words, if the inclination of the document is great, there is a possibility that memory will run out during the inclination correction process. The MFP1 stores correction limit information 23, which includes the correction limit value at which inclination correction is possible, and performs in-device inclination correction when the inclination of the document is within the correction limit value, thereby reducing the possibility of running out of memory.
[0048] The correction limit value of the correction limit information 23 varies depending on the width of the document, for example, as shown in Fig. 7. Specifically, the smaller the document width, the larger the inclination 231 of the correction limit value of the correction limit information 23. For example, if the document width is larger than B5 width, the inclination 231 is 3 degrees, and if the document width is equal to or smaller than B5 width, the inclination 231 is 5 degrees, which is larger than 3 degrees. In this case, 5 degrees is an example of a first angle, and 3 degrees is an example of a second angle.
[0049] When the document width is small, the amount of memory required for skew correction processing is smaller than when the document width is large, even if the document skew is the same. In other words, when the document is small, the CPU 11 can appropriately perform skew correction even if the document skew is somewhat large, compared to when the document width is large. As shown in FIG. 7, the correction limit values indicated in the correction limit information 23 include a larger angle of skew 231 as the document width becomes smaller, thereby increasing the opportunities for skew correction to be performed by the MFP 1 itself. Note that the correction limit information 23 may store different skews 231 associated with the document length instead of the document width. Specifically, the MFP 1 may store correction limit information 23 that includes a smaller angle of skew 231 as the document length becomes longer.
[0050] In S211, the CPU 11 may determine that tilt correction is possible on its own device if the tilt θ is within the correction limit value, and further if the deviation amount z1 in the main scanning direction is within the correction limit value of the main scanning direction deviation amount 232, and the deviation amount z2 in the sub-scanning direction is within the correction limit value of the sub-scanning direction deviation amount 233. For example, the CPU 11 may determine that tilt correction is impossible on its own device if the deviation amount z1 in the main scanning direction is greater than 16 mm or the deviation amount z2 in the sub-scanning direction is greater than 11 mm.
[0051] On the other hand, if the coordinates of at least one of the four vertices cannot be detected (S202: NO), or if the skew of the document cannot be obtained (S207: NO), or if it is determined that the skew θ of the document is greater than the skew 231 included in the correction limit information 23 and cannot be corrected by the CPU 11 (S211: NO), the CPU 11 proceeds to S231. Then, the CPU 11 accesses the server 200 using the access information 24 (see FIG. 1) and transmits the original image data D1 (see FIG. 4B) generated in S102 of the book copy process (see FIG. 3) to the server 200 (S231). Note that the CPU 11 may also determine NO in S207 if it cannot obtain at least one of the deviation amounts in the main scanning direction and the sub-scanning direction.
[0052] In S231, the CPU 11 requests the server 200 to correct the tilt of the original image data D1 by transmitting at least the original image data D1 and an instruction to transmit the tilt-corrected original image data to the server 200. The server 200 may be able to perform tilt correction using an algorithm different from the algorithm of the MFP 1. For example, the server 200 may be provided with a trained model capable of performing tilt correction.
[0053] For example, a trained model on a server provided by an AI provider is likely to have been trained using big data, and is expected to be able to analyze image data and perform tilt correction with high accuracy. Server 200 may be provided with an API for causing the trained model to perform tilt correction processing on input image data and output the corrected image data. Alternatively, server 200 may be equipped with a chat function, and when a question is input to the chat function, it may be able to output image data that has been tilt-corrected by the trained model based on the input question to the device that input the question. For example, when such server 200 receives input image data, it is likely to analyze the image data, correct the tilt of the image contained in the image data, and output the corrected image data.
[0054] If the corners cannot be detected because the document is bent or torn, or because part of the document is placed so that it extends beyond the entire area R, the CPU 11 may not be able to detect the coordinates of the four vertices. If the coordinates of at least one vertex cannot be detected, the CPU 11 is likely to be unable to properly obtain the document width or skew. In such a case, the CPU 11 requests the server 200 to perform skew correction, and therefore is likely to be able to obtain skew-corrected image data.
[0055] If the CPU 11 has acquired the coordinates of the four vertices and the document tilt θ, it may also transmit this information to the server 200 in S231. In S231, the CPU 11 may further transmit edge image data D2 and information indicating that this edge image data D2 is the result of reading the same document as the main image data D1 to the server 200. If the document tilt θ and edge image data D2 are transmitted, the server 200 can use this information when correcting the tilt of the main image data D1, which may reduce the processing load and enable the tilt correction to be completed in a shorter time.
[0056] After sending the data in S231, the CPU 11 waits until it receives image data from the server 200 that requested the tilt correction (S232). If the CPU 11 does not receive image data from the server 200 even after a predetermined time has elapsed, the CPU 11 may execute the sending in S231 again or may determine that an error has occurred.
[0057] When image data is received from the server 200 (S232: YES), the CPU 11 displays a preview image on the user IF 13 based on the received image data (S233) and asks the user whether the image data is acceptable. The CPU 11 then determines whether an operation indicating OK has been received (S234). The tilt correction process performed by the server 200 is different from that performed by the MFP 1, and there is a possibility that the image data will not be as intended by the user. The MFP 1 displays the received image data for the user to confirm, thereby suppressing unnecessary output.
[0058] If it is determined that the accepted user operation is not an operation indicating OK (S234: NO), the CPU 11 executes the transmission of S231 again. Even if the same data is transmitted, the image data output from the server 200 may be different. If data different from the user's intention is received, retransmitting the data to the server 200 may result in the user's intention.
[0059] After the tilt correction on the own device in S212, or when it is determined that an operation indicating OK has been received as a result of the preview (S234: YES), the CPU 11 ends the tilt correction process and returns to the book copy execution process.
[0060] Returning to the description of the book copy execution process in Figure 3, CPU 11 determines whether the skew correction process was successful, i.e., whether image data with appropriately corrected skew has been acquired (S121). If it is determined that the skew correction was successful (S121: YES), CPU 11 drives print engine 15 and executes printing based on the corrected image data (see Figure 4(C)) using print parameters specified by the user (S122). Note that when an instruction to execute book copy is received, CPU 11 erases shadows from the center of the spread and the left and right edges of the skew-corrected image data, and executes printing by print engine 15.
[0061] If it is determined that the tilt correction was not successful (S121: NO), the CPU 11 drives the print engine 15 and executes printing using the print parameters specified by the user based on the main image data D1 (see FIG. 4(B)) generated in S102 (S123). In other words, if the tilt correction was not successful, the CPU 11 executes printing based on image data that has not been subjected to tilt correction. In this case, too, the CPU 11 may erase the shadow and execute printing. Note that if the tilt correction was not successful, the CPU 11 may inquire of the user as to whether or not to print, or may decide not to print.
[0062] After S122 or S123, the CPU 11 ends the book copy execution process. The CPU 11 can accept user operations, for example, by displaying a standby screen on the user IF 13. Note that the output mode of book copy is not limited to copying two facing pages together onto one sheet, but may also be copying each page onto a single sheet, or may be able to accept an instruction to print only one of the pages.
[0063] Next, the procedure for the autocrop process will be described with reference to the flowchart in Fig. 8. The autocrop process is executed by the CPU 11 of the MFP 1 when an instruction to execute autocrop is received. Autocrop is an instruction to output images of multiple documents included in the scan results as separate data. The MFP 1 can receive an instruction to execute autocrop as an option to a scan instruction. An instruction to execute autocrop is an example of a predetermined scan instruction.
[0064] The CPU 11 drives the reading engine 16 to read the document on the flatbed 161 for the entire region R (S301). For example, as shown in FIG. 9(A), the user places multiple small documents on the flatbed 161 and issues an instruction to execute auto-crop. Based on the results of one reading, the CPU 11 generates main image data D3 and edge image data D4, for example, as shown in FIG. 9(B) (S302). S301 and S302 are an example of scanning processing.
[0065] As in the case of book copying, the main image data D3 is scan data generated using scan parameters set by the user, and the edge image data D4 is scan data generated using scan parameters specified in advance. However, in the auto-crop process, since the size and number of documents and the layout of each document are unknown, the CPU 11 generates image data of the entire region R for both the main image data D3 and the edge image data D4. The entire region R is an example of a predetermined range.
[0066] The CPU 11 executes the skew correction process (see FIG. 5) based on the generated main image data D3 and edge image data D4 (S311). When issuing an auto-crop instruction, the user can place multiple small documents, such as business cards, receipts, and photographs, within a specified area of the flatbed 161. It is difficult for the user to arrange multiple documents without tilting them all. Furthermore, even if the user attempts to correct the skew of the documents, the documents are prone to tilt due to the wind pressure generated when the cover of the flatbed 161 presses down on each document, making the correction difficult. Therefore, when an instruction to execute auto-crop is received, the MFP 1 executes the skew correction even if an explicit instruction for skew correction is not received as a parameter.
[0067] The tilt correction process is the same as that for book copying. However, since the tilt correction process performed in the auto crop process involves multiple documents, CPU 11 acquires the coordinates of the four vertices corresponding to each of the multiple documents in S201, and acquires the tilt of each of the multiple documents in S206. In other words, CPU 11 detects the tilt of each of the multiple documents placed on flatbed 161 with respect to the reference line of flatbed 161.
[0068] If the skews of all documents are within the correction limit values stored in the correction limit information 23 (S211: YES), the CPU 11 performs cropping in addition to the skew correction performed by the CPU 11's own device in S212. The CPU 11 can perform skew correction and cropping in parallel.
[0069] If it is determined that the document includes documents whose inclination cannot be acquired (S202: NO or S207: NO), or if it is determined that the document includes documents whose inclination is greater than the correction limit (S211: NO), the CPU 11 transmits the main image data D3 and edge image data D4 to the server 200 (S231) and requests inclination correction and cropping. When requesting inclination correction from the server 200, the CPU 11 may, for example, first request cropping only, and then, upon receiving the cropped image data, transmit the image data and request inclination correction. Alternatively, the CPU 11 may divide the main image data and edge image data into areas including each document image, and perform inclination correction on the document image with a small inclination. Then, the CPU 11 may transmit only image data including documents with a large inclination to the server 200 and request inclination correction.
[0070] Returning to the description of the auto-crop process in FIG. 8 , after the skew correction process in S311 is completed, the CPU 11 determines whether skew correction has been successful for all documents (S321). If it is determined that cropping and skew correction have been successful for each document image (S321: YES), the CPU 11 saves each corrected image data based on parameters specified by the user (S322), as shown in FIG. 9C, for example. The CPU 11 outputs each skew-corrected image data to an output destination specified by the user in a file format specified by the user. Note that the MFP 1 can accept a selection of the output destination from, for example, the memory 12 of the MFP 1, a USB memory attached to the MFP 1, or an external device or external storage with which the MFP 1 can communicate. Note that the CPU 11 may also be able to display a preview of the corrected image data and accept user confirmation before S322.
[0071] If it is determined that tilt correction was not successful (S321: NO), the CPU 11 outputs the main image data acquired in S302 to the output destination specified by the user in the file format specified by the user (S323). The CPU 11 may notify the user IF 13 that cropping was not successful, or may inquire of the user as to whether or not to output the uncropped image data. After S322 or S323, the CPU 11 ends the auto-crop process.
[0072] The tilt correction process of the MFP1 may be a procedure that uses an MFP3 that is capable of executing tilt correction process with more advanced functionality than the MFP1, as shown in the flowchart of Fig. 10. The procedure of Fig. 10 adds a step that uses the MFP3 to the procedure of Fig. 5, and the same steps as in Fig. 5 are assigned the same reference numerals to simplify the explanation.
[0073] 10, CPU 11 detects the four vertices of the document (S201-S202), and acquires the width, length, inclination, and displacement of the document (S205-S207). If inclination correction can be performed on the device itself based on the acquired inclination of the document (S211: YES), CPU 11 performs inclination correction (S212).
[0074] If it is determined that tilt correction is not possible on the MFP itself (S211: NO), CPU 11 searches for connectable MFPs (S221). CPU 11 determines whether an MFP 3 with a tilt correction function superior to that of the MFP itself has been found. For example, for each connectable MFP, CPU 11 determines, based on its model information, whether the MFP is a model that is capable of tilt correction and has a larger memory than MFP 1.
[0075] If it is determined that the MFP 3 is connected (S221: YES), the CPU 11 transmits to the MFP 3 the original image data D1 (see FIG. 4B) generated in S102 of the book copy process (see FIG. 3), the coordinates of the four vertices (see FIG. 6) acquired in S201, and the document tilt θ acquired in S206 (S222). The CPU 11 performs tilt correction on the original image data D1 using the coordinates of the four vertices and the document tilt θ, and requests the MFP 3 to transmit the corrected original image data to the MFP 3.
[0076] Alternatively, the CPU 11 transmits the original image data D3 generated in S302 of the auto-crop process (see FIG. 8), the coordinates of the four vertices acquired in S201, and the document tilt θ acquired in S206 to the MFP 3 (S222), and requests tilt correction and cropping. The MFP 3 can perform tilt correction and cropping in parallel.
[0077] The MFP3 is equipped with a tilt correction program 31 and is capable of executing tilt correction processing. Furthermore, the MFP3 has a larger memory capacity than the MFP1, and is likely to be able to properly execute tilt correction even for large tilts. By requesting the MFP3, it is highly likely that properly corrected image data can be obtained even if the document is significantly tilted. Furthermore, the MFP1 does not perform tilt correction itself if the document tilt is greater than the correction limit value, thereby reducing the possibility of running out of memory during tilt correction processing.
[0078] Furthermore, when requesting tilt correction from the MFP3, the coordinates of the four vertices and the tilt of the document acquired by the MFP1 are transmitted to the MFP3, so the MFP3 does not need to detect these, thereby reducing the processing load on the MFP3.
[0079] After transmission in S222, the CPU 11 waits until it receives the corrected original image data from the MFP 3 that requested the tilt correction (S223). If the requested tilt correction is successful, the MFP 3 transmits the corrected original image data to the MFP 1. This allows the CPU 11 to receive the corrected original image data.
[0080] After the tilt correction in the own device in S212, or when it is determined that corrected image data has been received from the MFP 3 (S223: YES), the CPU 11 ends the tilt correction process and returns to the book copy execution process or the auto crop process.
[0081] On the other hand, if the MFP 3 cannot be found (S221: NO), the CPU 11 may proceed to S231 to send the main image data and edge image data to the server 200 and request tilt correction, just as it does when the four vertices cannot be detected (NO in S202) or when the tilt of the document cannot be acquired (NO in S207). Also, if the CPU 11 cannot receive image data from the MFP 3 even after a predetermined time has elapsed after S222, if the image data received from the MFP 3 is not an appropriate result, or if there is a response from the MFP 3 indicating that correction is not possible, an error may be detected, or the CPU 11 may proceed to S231 to request tilt correction from the server 200.
[0082] 10, if the four vertices cannot be detected (NO in S202) or if the tilt of the document cannot be obtained (NO in S207), the tilt correction is requested from the server 200 instead of the MFP 3. However, the request may be made to the MFP 3 in this case as well. In other words, even if the determination is NO in S202 or S207, the CPU 11 may proceed to S221. In this case, the CPU 11 may transmit the main image data D1 and the edge image data D2, or the main image data D3 and the edge image data D4, to the MFP 3, or may transmit all of the detected information.
[0083] However, if MFP3 is a device that uses the same algorithm as MFP1, it is highly likely that MFP3 will not be able to obtain the skew of the original for data for which MFP1 was unable to obtain the skew of the original. On the other hand, server 200 may be able to perform skew correction even if MFP1 is unable to obtain the skew of the original, but it may take a long time to respond. In other words, using MFP3 and server 200 separately, as in the procedure shown in Figure 10, is highly likely to produce more appropriate results.
[0084] Note that the MFP 1 can accept parameters that explicitly include information indicating that skew correction is to be performed in copy or scan instructions other than book copy or auto crop. The MFP 1 also executes skew correction processing when it receives a copy or scan instruction that includes a skew correction instruction. In this case, when the skew of the document is greater than the correction limit value or when the MFP 1 is unable to acquire the skew of the document, it may request skew correction from the MFP 3 or server 200 rather than performing the skew correction processing itself.
[0085] As described above in detail, when the tilt θ of a document is large, the MFP1 of the embodiment may not be able to perform tilt correction itself due to a lack of memory required for correction, etc. When the tilt θ of a document is large, the MFP1 of the embodiment requests the MFP3 or server 200 to perform tilt correction, and therefore has a high probability of acquiring image data that has been appropriately tilt-corrected by the MFP3 or server 200. Therefore, the MFP1 can reduce the possibility of running out of memory while performing tilt correction, and can be expected to output image data that has been appropriately tilt-corrected.
[0086] Furthermore, the MFP 1 of the embodiment performs tilt correction on its own if the tilt of the document is within the correction limit value. When requesting tilt correction from the MFP 3 or server 200, image data must be transmitted, which may take some time before output. However, because the MFP 1 performs the correction on its own if possible, output delays are reduced.
[0087] It should be noted that the embodiments are merely illustrative and do not limit the present invention in any way. Therefore, the technology disclosed in this specification can naturally be improved and modified in various ways without departing from the spirit and scope of the present invention. For example, the scanner may be any device having an image reading function, a communication function, and a tilt correction function, and may be a copier or a fax machine, not limited to the MFP1. Furthermore, the other scanner may be any device having a tilt correction function more advanced than the MFP1, and may be an information processing device such as a personal computer, not limited to the MFP3.
[0088] Furthermore, in the embodiment, edge image data and main image data are generated in a single scan (S102 of the book copy execution process, S302 of the auto crop process), but this is not limited to this. For example, the MFP1 may generate only the main image data and obtain the tilt of the document based on the main image data, or may perform two scans: reading the main image data and reading the edge image data. However, if edge image data and main image data are generated in a single scan, the processing load when obtaining the tilt of the document is reduced and the time required for scanning is shortened.
[0089] 5 or 10 in the embodiment, when a request for tilt correction is made to server 200, a preview display is performed based on the received image data (S233), but a preview display need not be performed. However, since the correction results of server 200 are difficult to predict, it is preferable to perform a preview display and inquire about the result to the user. Furthermore, MFP1 may also perform a preview display when requesting tilt correction from MFP3.
[0090] In the embodiment, after requesting server 200 to perform tilt correction, if the received image data is not appropriately corrected image data (NO in S234 of the tilt correction process), CPU 11 resends the data, but the tilt correction process may be terminated without resending the data. Also, if an appropriate correction result is not obtained even after sending image data to server 200 a predetermined number of times, CPU 11 may regard it as an error and terminate the tilt correction process.
[0091] 10 of the embodiment, when requesting tilt correction from MFP3, MFP1 transmits the original image data, the coordinates of the four vertices, and the tilt θ of the document to MFP3 (S222), but it may transmit the edge image data and the original image data, or may transmit only the original image data. Also, MFP3 executes tilt correction using the same algorithm as MFP1, but it may also perform processing using a different algorithm.
[0092] Furthermore, in the embodiment, if appropriate tilt correction cannot be performed, output is performed based on the image data (S123 of the book copy execution process, S323 of the auto-crop process), but the MFP1 may notify an error and not output, or may ask the user whether or not to output.
[0093] Furthermore, even if the skew θ of the document is within the correction limit, if the MFP 1 determines that the document shape is not rectangular, it may not perform skew correction itself and may request skew correction from the MFP 3 or server 200. For example, the CPU 11 may determine that the document shape is not rectangular if the width of the document at the leading edge differs significantly from the width of the document at the trailing edge in the sub-scanning direction. For example, the CPU 11 may also determine that the document shape is not rectangular if the length of the document at the left side differs significantly from the length of the document at the right side in the main scanning direction. For example, the CPU 11 may also request skew correction from the MFP 3 or server 200 if it is unable to detect the width or length of the document.
[0094] Furthermore, in any flowchart or sequence diagram disclosed in the embodiments, the execution order of multiple processes in any multiple steps can be changed or executed in parallel as desired, as long as no contradictions occur in the processing content.
[0095] The processes disclosed in the embodiments may be executed by hardware such as a single CPU, multiple CPUs, or ASIC, or a combination thereof. The processes disclosed in the embodiments may be realized in various ways, such as a recording medium on which a program for executing the processes is recorded, or a method. [Explanation of symbols]
[0096] 1 MFP 3 MFP 13 User Interface 14 Communication Interface 16 reading engines 161 Flatbed 200 servers
Claims
1. A manuscript table and A reading engine and A user interface; a communication interface; A scanner comprising: The scanner A scanning process is executed to scan an original placed on the platen and generate scan data based on the scan results. The scanner further comprises: When the scan process is executed in response to a predetermined scan instruction, a detection process for detecting an inclination of the document relative to a reference line of the document table based on the scan data generated by the scan process; If the tilt of the document detected in the detection process is within a predetermined angle, a tilt correction is performed on the scan data, and an output is performed based on the tilt-corrected scan data. If the tilt of the document detected in the detection process is greater than the predetermined angle, the scan data is sent to an external device via the communication interface to request tilt correction, and upon receiving the tilt-corrected scan data from the external device, an output is performed based on the received scan data. A scanner configured to:
2. 2. A scanner according to claim 1, The scanner When a book document is placed on the document table in an open state and the predetermined scan instruction is given, Executing the scanning process to scan the book document and generate scan data for two pages of the book document; Executing the detection process to detect the inclination of the book document with respect to a reference line of the document table based on the scan data generated by the scan process; If the tilt of the book document detected in the detection process is within the predetermined angle, tilt correction is performed on the scan data, and output is performed based on the tilt-corrected scan data. If the tilt of the book document detected in the detection process is greater than the predetermined angle, the scan data is sent to the external device via the communication interface to request tilt correction, and upon receiving the tilt-corrected scan data from the external device, output is performed based on the received scan data. A scanner configured to:
3. 2. A scanner according to claim 1, The scanner When at least one document is placed on the document table and the predetermined scan instruction is given, Executing the scanning process to scan a predetermined range of the platen and generate the scan data representing an image of the predetermined range including an image of at least one of the documents placed on the platen; executes a detection process for detecting an inclination of each of the documents placed on the document table with respect to a reference line of the document table based on the scan data generated by the scan process; If the inclinations of all the documents placed on the document table detected in the detection process are within the predetermined angle, a tilt correction is performed on the scan data, and an output is performed based on the tilt-corrected scan data. If the tilt of at least one of the documents placed on the document platen detected in the detection process is greater than the predetermined angle, the scan data is transmitted to the external device via the communication interface to request tilt correction, and upon receiving the tilt-corrected scan data from the external device, an output is performed based on the received scan data. A scanner configured to:
4. 4. A scanner according to claim 3, The scanner When at least one document is placed on the document table and the predetermined scan instruction is given, Executing the scanning process to scan a predetermined range of the platen and generate the scan data representing an image of the predetermined range including an image of at least one of the documents placed on the platen; executes a detection process for detecting an inclination of each of the documents placed on the document table with respect to a reference line of the document table based on the scan data generated by the scan process; If at least one of the inclinations of the documents placed on the document table detected in the detection process is greater than the predetermined angle, the scan data is transmitted to the external device via the communication interface to request that the external device correct the inclination and crop each document, and upon receiving the scan data after the inclination correction and the cropping of each document from the external device, an output is performed based on the received scan data. A scanner configured to:
5. A scanner according to any one of claims 1 to 3, The scanner When the scan process is executed in response to the predetermined scan instruction, performing the detection process based on the scan data generated by the scan process; If the tilt of the document detected in the detection process is greater than the predetermined angle, the generated scan data and the detected tilt of the document are sent to the external device via the communication interface to request tilt correction, and upon receiving the tilt-corrected scan data from the external device, output is performed based on the received scan data. A scanner configured to:
6. A scanner according to any one of claims 1 to 3, The scanner When the scan process is executed in response to the predetermined scan instruction, performing the detection process based on the scan data generated by the scan process; If the skew of the document cannot be detected in the detection process, the scan data is transmitted to the external device or another external device via the communication interface to request skew correction, and upon receiving the skew-corrected scan data from the requested external device, an output is performed based on the received scan data. A scanner configured to:
7. A scanner according to any one of claims 1 to 3, The scanner When the scan process is executed in response to the predetermined scan instruction, The detection process is executed based on the scan data generated by the scan process, and in the detection process, four vertices of the document are detected based on the scan data, and a skew of the document is detected based on the detected four vertices of the document; If the four vertices of the document cannot be detected in the detection process, the scan data is sent to the external device or another external device via the communication interface to request tilt correction, and upon receiving the tilt-corrected scan data from the requested external device, an output is performed based on the received scan data. A scanner configured to:
8. A scanner according to any one of claims 1 to 3, the predetermined angle includes a first angle and a second angle smaller than the first angle, The scanner When the scan process is executed in response to the predetermined scan instruction, Executing the detection process to detect the width and inclination of the document based on the scan data generated by the scan process; If the width of the document detected in the detection process is equal to or less than a predetermined length, If the skew of the document detected in the detection process is within the first angle, a skew correction is performed on the scan data, and an output is performed based on the scan data after the skew correction. If the skew of the document detected in the detection process is greater than the first angle, the scan data is transmitted to the external device via the communication interface to request skew correction, and upon receiving the skew-corrected scan data from the external device, an output is performed based on the received scan data. If the width of the document detected in the detection process is greater than the predetermined length, If the skew of the document detected in the detection process is within the second angle, a skew correction is performed on the scan data, and an output is performed based on the scan data after the skew correction. If the skew of the document detected in the detection process is greater than the second angle, the scan data is sent to the external device via the communication interface to request skew correction, and upon receiving the skew-corrected scan data from the external device, an output is performed based on the received scan data. A scanner configured to:
9. A scanner according to any one of claims 1 to 3, The scanner When the scan process is executed in response to the predetermined scan instruction, performing the detection process based on the scan data generated by the scan process; If the skew of the document detected in the detection process is greater than the predetermined angle, a search is made for another scanner having a higher skew correction function than the scanner itself via the communication interface, and if the other scanner is found, the scan data is sent to the other scanner as the external device via the communication interface to request skew correction, and upon receiving the skew-corrected scan data from the other scanner, output is performed based on the received scan data. A scanner configured to:
10. A scanner according to any one of claims 1 to 3, The scanner The server has access information for communicating with a server having higher tilt correction capabilities than the server itself, The scanner further comprises: When the scan process is executed in response to the predetermined scan instruction, performing the detection process based on the scan data generated by the scan process; If the tilt of the document detected in the detection process is greater than the predetermined angle, the access information is used to send the scan data to the server as the external device via the communication interface to request tilt correction, and upon receiving the tilt-corrected scan data from the server, output is performed based on the received scan data. A scanner configured to:
11. A scanner according to any one of claims 1 to 3, The scanner When the predetermined scan instruction is given, a scanning process is executed to scan a document placed on the document table and generate first scan data based on set scan parameters and second scan data based on pre-specified scan parameters, the second scan data being data representing a binary image at a specific resolution; Executing the detection process to detect the inclination of the document relative to the reference line of the document table based on the second scan data generated by the scan process; If the tilt of the document detected in the detection process is within the predetermined angle, a tilt correction is performed on the first scan data generated in the scan process, and an output is performed based on the first scan data after the tilt correction. If the tilt of the document detected in the detection process is greater than the predetermined angle, the first scan data is transmitted to the external device via the communication interface to request tilt correction, and upon receiving the tilt-corrected first scan data from the external device, an output is performed based on the received first scan data. A scanner configured to:
12. 12. A scanner according to claim 11, The scanner When the scan process is executed in response to the predetermined scan instruction, performing the detection process based on the second scan data generated in the scan process; If the skew of the document cannot be detected in the detection process, the first scan data and the second scan data are transmitted via the communication interface to the external device or an external device different from the external device to request skew correction, and upon receiving the skew-corrected first scan data from the external device, an output is performed based on the received first scan data. A scanner configured to:
13. A manuscript table and A reading engine and A user interface; a communication interface; A scanner comprising: The scanner A scanning process is executed to scan an original placed on the platen and generate scan data based on the scan results. The scanner further comprises: When the scan process is executed in response to a predetermined scan instruction, a detection process for detecting an inclination of the document relative to a reference line of the document table based on the scan data generated by the scan process; If the skew of the document is detected in the detection process, a skew correction is performed on the scan data, and an output is performed based on the scan data after the skew correction. If the skew of the document cannot be detected in the detection process, the scan data is sent to an external device via the communication interface to request skew correction, and upon receiving the skew-corrected scan data from the external device, an output is performed based on the received scan data. A scanner configured to:
Citation Information
Patent Citations
Image reading device
JP2023004903A