Automated contour detection methods, systems and processor-readable media

A method and system for identifying existence and occurrence of a contour. The contour presence can be identified by taking a second derivative of a color space (e.g., L*, a*, and b*) value of a rendered image derived utilizing an ICC profile that models behavior of a MFD as a smoothness metric. A moving average filter can be applied to minimize an extraneous peak and trough in the second derivative that can be contributed to noise. The contour can be detected if a filtered second derivative lies outside a given range. The location of the contour can be identified by matching up an input value with corresponding input value of the image. A probability of the contour being visible in a rendered output can be then determined by separately analyzing the color space values. The occurrence and location of contour can be displayed on a user interface to quickly and clearly identify the contour in the image without making physical prints and with minimal human interaction and expenditure.

TECHNICAL FIELD

Embodiments are generally related to rendering devices such as, printers, scanners, photocopy machines, and the like. Embodiments are additionally related to image-processing devices and techniques. Embodiments are also related to contour detection for use in rendering documents via rendering devices, such as, for example an MFD (Multi-Function Device).

BACKGROUND OF THE INVENTION

An MFD is a rendering device or office machine, which incorporates the functionality of multiple devices in a single apparatus or system, so as to offer a smaller footprint in a home or small business setting, or to provide centralized document management/distribution/production in the context of, for example, a large-office setting. A typical MFD provides a combination of some or all of the following capabilities: printer, scanner, photocopier, fax machine, e-mail capability, and so forth. Networked MFDs (Multi-Function Devices) can interact with an assemblage of varying rendering devices, client computers, servers, and other components that are connected to and communicate over a network.

Contours are visible, undesirable, sharp changes in the color of an image in an area that is otherwise characterized by a smooth, gradual, and consistent transition from one color to another. One of the most important aspects of color image quality is the identification and reduction of contours whenever possible. Conventional methods for contour identification require extensive rendering and human interaction to visually detect contours that may appear due to programming errors or MFD limitations. Such manual methods for contour identification are costly, time consuming and error prone.

Based on the foregoing, it is believed that a need exists for an improved method and system for identifying the existence and occurrence of contour, as will be described in greater detail herein.

BRIEF SUMMARY

It is, therefore, one aspect of the disclosed embodiments to provide for improved methods, systems and processor-readable media for managing a multi-function device (MFD), such as a printer, scanner, photocopy machine, fax machine, etc., or a combination thereof.

It is another aspect of the disclosed embodiments to provide for methods, systems and processor-readable media for identifying the existence and occurrence of contour.

It is further aspect of the disclosed embodiments to provide for methods, systems and processor-readable media for identifying a probability of contour visibility upon rendering.

The aforementioned aspects and other objectives and advantages can now be achieved as described herein. A method and system for identifying the existence and occurrence of a contour is disclosed herein. The contour presence can be identified by taking a second derivative of a color space (e.g., L*, a*, and b*) value of a rendered image derived utilizing an ICC profile that models behavior of a MFD as a smoothness metric. A moving average filter can be applied to minimize an extraneous peak and trough in the second derivative that can be contributed to noise. The contour can be detected if a filtered second derivative lies outside a given range. The location of the contour can be identified by matching up an input value (x value) with corresponding input value of the image. A probability of the contour being visible in a printed output can be then determined by separately analyzing the color space values. The occurrence and location of contour can be displayed on a user interface to quickly and clearly identify the contour in the image without making physical prints and with minimal human interaction and expenditure.

The color space values can be analyzed separately and if there is more than one extraneous filtered second derivative value within at least five input values, the probability of contour visibility upon rendering is high. If, after filtering, there is still a lone peak or trough in the second derivative probability of contour visibility upon rendering is average. If the limiting range of the second derivative is lowered then the probability of contour visibility is low. Such constraints can be set after carefully analyzing visual response data and comparing the data to a graph of the second derivative.

A sweep can be selected to analyze and a destination profile to render the image by a user on the user interface. The rendered image and a bar emanating from the highest probability contours at an appropriate input value can be displayed on the user interface in order to enable quick toggling between the destination profile and the sweep. The user can also select a detailed graph to display, including the original color space values, a first derivative, the second derivative, and the filtered second derivative for closer analysis. The system mathematically identifies inconsistencies within an image that occur as contours and minimize excessive rendering and time spent on contour detection.

DETAILED DESCRIPTION

Referring toFIG. 1, an example data-processing system100is shown, which can be configured to include one or more networked devices, such as networked device140, coupled to a data-processing apparatus110through a network135. One or more embodiments can be implemented in the context of, for example, data-processing system100. In some embodiments, networked device140may be implemented as a rendering device such as a printer, scanner, copy machine, etc. In other embodiments, networked device140may be an MFD, a file server and/or a print server, depending upon design considerations. The data-processing apparatus110may be, for example, a personal computer or other computing device, and can includes central processor120, a display device115, a keyboard131, and a pointing device130(e.g., mouse, track ball, pen device, or the like).

Note that as utilized herein, the term “networked device” may refer to an apparatus or system such as a printer, scanner, fax machine, copy machine, etc., and/or a combination thereof (e.g., an MFD). Preferably, networked device140is an MFD140capable of multiple rendering functions such as printing, copying, scanning, faxing, etc. In some embodiments, the MFD140may be implemented with a single rendering function. In other embodiments, the MFD140can be configured to provide multiple rendering functions, such as scanning, faxing, printing and copying. Electronic buttons145or a control panel containing such buttons can be disposed on the MFD140to control various operations of the MFD140.

The data-processing apparatus110can be coupled to the MFD140(and other rendering devices) through a computer network135(which is analogous to the computer network210shown inFIG. 2). Network135(and similarly network210) may employ any network topology, transmission medium, or network protocol. The network135or210may include connections, such as wire, wireless communication links, or fiber optic cables. In the depicted example, network135is the Internet representing a worldwide collection of networks and gateways that use the Transmission Control Protocol/Internet Protocol (TCP/IP) suite of protocols to communicate with one another. At the heart of the Internet is a backbone of high-speed data communication lines between major nodes or host computers, consisting of thousands of commercial, government, educational and other computer systems that route data and messages. The network135can further communicate with a database185.

The networked MFD140includes a user interface145, such as a panel menu. The panel menu may be used to select features and enter other data in the device140. Such interfaces may include, for example, touch screens having touch activated keys for navigating through an option menu or the like. A driver program, for example, can be installed on the data-processing apparatus110and can reside on the host device's hard drive150. The driver program may be activated through an application interface so that a user may generate a rendering job with the driver for processing by the MFD140.

The data-processing apparatus110may be, in some embodiments, a wireless devices, such as a laptop computer, pad computing device or even a Smartphone. For purposes of this example, however, it can be assumed that data-processing apparatus110is a desktop computer and/or a server. In the example shown inFIG. 1, data-processing apparatus100includes a GUI125for communicating rendering features for processing, for example, the rendering job to a user325and accepting the user's325selection of available rendering features. The user interface125displays information and receives data through device display and/or the keyboard/mouse combination. The interface125, also serves to display results, whereupon the user325may supply additional inputs or terminate a given session. The data-processing apparatus110can be, for example, any computing device capable of being integrated within a network, such as a PDA, personal computer, cellular telephone, point-of-sale terminal, server, etc.

The input device of the networked device140, for example, may be a local user interface125, such as a touch-screen display or separate keypad and display or a memory fob or the like as discussed above. Alternatively or additionally, the input device may be a wireless port that receives a wireless signal containing constraint data from a portable device. The wireless signal may be an infrared or electromagnetic signal. A system administrator may input constraint data through the local user interface125by manipulating the touch screen, keypad, or communicating via wireless messages through the wireless port. The administrator's portable device that communicates wirelessly can be, for example, a personal digital assistant (PDA), wireless computing device, or the like, as noted above.

The following description is presented with respect to embodiments of the disclosed embodiments, which can be embodied in the context of the data-processing apparatus110and the networked device140depicted inFIG. 1. The disclosed embodiments, however, is not limited to any particular application or any particular environment. Instead, those skilled in the art will find that the system and methods of the disclosed embodiments may be advantageously applied to a variety of system and application software, including database management systems, word processors, and the like. Moreover, the present invention may be embodied on a variety of different platforms, including Macintosh, UNIX, LINUX, and the like. Therefore, the description of the exemplary embodiments, which follows, is for purposes of illustration and not considered a limitation.

FIG. 2illustrates a graphical representation of an image processing system200having a contour detection module152associated with a network210, in accordance with the disclosed embodiments. The image processing system200generally includes a network infrastructure210associated with one or more networked MFDs140,142and144, data-processing system110, a mobile communication device220and a server230. Data-processing apparatus110depicted inFIG. 1can be, for example, a server230. Other devices such as, for example, desktops, network devices, palmtops, mobile phones, etc may also be included in the network210, as service providers. The MFDs140,142and144can be located remotely with respect to each other, or alternatively, they may be located locally with respect to each other.

The typical MFD140may act as a combination of a printer, scanner, photocopier, fax and e-mail. While three MFDs140,142and144are shown by way of example, it is to be appreciated that any number of MFDs may be linked to the network210, such as, four, six or more rendering devices. In general, the MFDs140,142and144can be employed to perform a rendering output function (e.g., printing, scanning, copying, faxing, etc.) within a networked environment. Note that MFDs140,142and144are generally analogous to one another. The contour detection module152detects the existence and occurrence of a contour375in an image365.

Note that as utilized herein, the term “module” may refer to a physical hardware component and/or to a software module. In the computer programming arts, such a software “module” may be implemented as a collection of routines and data structures that performs particular tasks or implements a particular abstract data type. Modules of this type are generally composed of two parts. First, a software module may list the constants, data types, variable, routines, and so forth that can be accessed by other modules or routines. Second, a software module may be configured as an implementation, which can be private (i.e., accessible only to the module), and which contains the source code that actually implements the routines or subroutines upon which the module is based.

Therefore, when referring to a “module” herein, the inventors are generally referring to such software modules or implementations thereof. The methodology described herein can be implemented as a series of such modules or as a single software module. Such modules can be utilized separately or together to form a program product that can be implemented through signal-bearing media, including transmission media and recordable media. The present invention is capable of being distributed as a program product in a variety of forms, which apply equally regardless of the particular type of signal-bearing media utilized to carry out the distribution.

Examples of signal-bearing media can include, for example, recordable-type media, such as floppy disks, hard disk drives, CD ROMs, CD-Rs, etc., and transmission media, such as digital and/or analog communication links. Examples of transmission media can also include devices such as modems, which permit information to be transmitted over standard telephone lines and/or the more advanced digital communications lines.

FIG. 3illustrates a block diagram of a contour identification system300, in accordance with a preferred embodiment. Contours are salient coarse edges that belong to objects and region boundaries in an image. The contour identification system300generally includes an image processing unit310configures with the automated contour detection module152. The image processing unit310is preferably a small, handheld computer device or palmtop computer as depicted inFIG. 1that provides portability and is adapted for easy mounting. The contour detection module152can be configured to include a contour presence identifying unit320, a contour location identifying unit350and a contour visible probability determining unit360. The contour identification system300further includes a user interface370and the MFD140connected via the network210.

Note that the network210may employ any network topology, transmission medium, or network protocol. The network210may include connections, such as wire, wireless communication links, or fiber optic cables. Network210can also be an Internet representing a worldwide collection of networks and gateways that use the Transmission Control Protocol/Internet Protocol (TCP/IP) suite of protocols to communicate with one another. At the heart of the Internet is a backbone of high-speed data communication lines between major nodes or host computers, consisting of thousands of commercial, government, educational and other computer systems that route data and messages.

The contour presence identifying unit320identifies presence of the contour375by taking a second derivative330of a color space (e.g., L*, a*, and b*) value of a rendered image390derived utilizing an ICC profile that models behavior of the MFD140as a smoothness metric. In color management, an ICC profile is a set of data that characterizes a color input or output device, or a color space, according to standards promulgated by the International Color Consortium (ICC). Profiles describe the color attributes of a particular device or viewing requirement by defining a mapping between the device source or target color space and a profile connection space (PCS). This PCS is either CIELAB (L*a*b*) or CIEXYZ. Mappings may be specified using tables, to which interpolation is applied, or through a series of parameters for transformations.

A Lab color space is a color-opponent space with dimension L for lightness and a and b for the color-opponent dimensions, based on nonlinearly compressed CIE XYZ color space coordinates. The CIE coordinates are based on a cube root transformation of the color data. For example, any color can be represented utilizing 3-dimensional L*, a*, and b* coordinates. In a gradual, uniform transition from one color to another, the line through Lab space connecting the two colors is a straight line. The following conversions can be performed on an RGB sweep380utilizing a modified version of an existing MatLab script as shown below:
RGB→L*,a*,b*
RGB→cmyk (using an ICC profile that models the measured output of the MFD)→L*, a*, b*

The system300measures consistency within an image365instead of the consistency between two images. The first derivative illustrates how rapidly the transition from one color to another occurs, but the second derivative330illustrates how smoothly that transition occurs. Theoretically, since the original L*, a*, and b* values are straight lines, the second derivative330is a constant line, y=0, where the x variable represents the input value and the y variable represents the second derivative330.

The contour presence identifying unit320includes a moving average filter340to minimize extraneous peaks and troughs in the second derivative330that is contributed to noise. A filtered second derivative335possesses a limited range that if exceeded, indicates the visibility of contour375. Through observation and comparison, it is experimentally determined that the limiting range is from −0.125 to 0.125. The contour location identifying unit350identifies the contour375by matching up the input value (x value) with the corresponding input value of the image365.

The contour visible probability determining unit360determines probability of the contour375being visible in the rendered output390by separately analyzing the color space values. If there is more than one extraneous filtered second derivative value335within at least five input values, the probability of contour visibility upon rendering is high. If, after filtering, there is still a lone peak or trough in the second derivative335probability of contour visibility upon rendering is average. If the limiting range of the second derivative335is lowered then the probability of contour visibility is low. Otherwise, there is essentially no chance of seeing the contour375in the image365. Such constraints can be set after carefully analyzing visual response data and comparing the data to a graph395of the second derivative330.

The user interface370generally includes the sweep380that can be selected to analyze and a destination profile385to render the image365by the user325. The user interface370further includes the rendered image390and a bar emanating from the highest probability contours at an appropriate input value in order to enable quick toggling between the destination profile385and the sweep380. The user325can also select the detailed graph395to display, including the original color space values, a first derivative, the second derivative330, and the filtered second derivative335for closer analysis. The occurrence and location of contour375can be displayed on the user interface370to quickly and clearly identify the contour375in the image365without making physical prints and with minimal human interaction and expenditure.

FIG. 4illustrates a high level flow chart of operations illustrating logical operational steps of a method400for identifying the existence and occurrence of contour375, in accordance with an alternative embodiment. Note that inFIGS. 1-4, identical or similar blocks are generally indicated by identical reference numerals. The presence of the contour375can be identified by taking the second derivative330of L*, a*, and b* values of the rendered image390that can be derived utilizing the ICC profile that models behavior of the MFD140as a smoothness metric, as described at block410.

The moving average filter340can be applied to minimize an extraneous peak and trough in the second derivative330that can be contributed to noise, as shown at block420. The contour375can be detected at location where the metric lies outside a given range, as mentioned at block430. The location of the contour375can be identified by matching up the input value (x value) with the corresponding input value of the image365, as depicted at block440. The probability of the contour375being visible in the printed output390can be then determined, as shown at block450. The occurrence and location of contour375can be displayed on the user interface370to quickly and clearly identify the contour375in the image365without making physical prints and with minimal human interaction and expenditure, as indicated at block460. The system300mathematically identifies inconsistencies within the image365that occur as contour375and minimize excessive rendering and time spent on contour detection.

Based on the foregoing, it can be appreciated that a number of embodiments, preferred and alternative, are disclosed herein. For example, in one embodiment, a method for identifying the existence and occurrence of contour375, can be implemented. Such a method can include the steps or logical operations of, for example, identifying the occurrence of the contour375by taking a second derivative (e.g., see block330ofFIG. 3) of a color space value associated with the image365derived via a color management profile that models the behavior of a multi-function device (e.g., MFD140, MFD142, MFD144, etc) as a smoothness metric; identifying the location of the contour375by matching the input value to a corresponding input value of the image365to thereafter determine the probability of the contour375being visible in a rendered output thereof by separately analyzing the color space value; and presenting the occurrence and the location of the contour375to assist in quickly and clearly identifying the contour375in the image365without rendering a physical print thereof and with minimal human interaction and expenditure.

In another embodiment, the color space value can comprise L*, a*, and b* values. In yet another embodiment, steps or logical operations can be implemented for applying the moving average filter or module320to minimize extraneous peaks and troughs in the second derivative330that contributes to noise; and thereafter detecting the contour375if the filtered second derivative335lies outside a particular range of values.

In still another embodiment, the probability of the contour visibility upon rendering is high if the extraneous filtered second derivative value(s)335exists within at least five input values. In addition, or in another embodiment, the probability of the contour visibility upon rendering is average if after filtering the extraneous peak(s) and/or trough(s) exist in the second derivative330. In addition, or in another embodiment, the probability of the contour visibility upon rendering is low if the particular range of values with respect to the second derivative330is low.

In still another embodiment, steps or logical operations can be implemented for selecting a sweep380to analyze and a destination profile395to render the image365; displaying the rendered image and a graphical bar emanating from a highest probability contour at an appropriate input value in order to enable quick toggling between the destination profile395and the sweep380. In other embodiments, steps or logical operations can be implemented for selecting a detailed graph to display including the original color space value, a first derivative, the second derivative330, and the filtered second derivative335for closer analysis; and designating a constraint after analyzing a visual response data and comparing the data to a graph of the second derivative330.

In another embodiment, a system can be implemented for identifying an existence and an occurrence of a contour. Such system can include, for example, processor (e.g., processor120), a data bus coupled to the processor (computer110, hard disk drive150, etc., internally include data base); and a computer-usable medium (e.g., image processing unit310constitutes a computer-usable medium) embodying computer program code, the computer-usable medium being coupled to the data bus. The computer program code can include, for example, instructions executable by the processor and configured for: identifying an occurrence of a contour by taking a second derivative of a color space value associated with an image derived via a color management profile that models a behavior of a multi-function device as a smoothness metric; identifying a location of the contour by matching an input value to a corresponding input value of the image to thereafter determine a probability of the contour being visible in a rendered output thereof by separately analyzing the color space value; and presenting the occurrence and the location of the contour to assist in quickly and clearly identifying the contour in the image without rendering a physical print thereof and with minimal human interaction and expenditure.

In still another embodiment, a processor-readable medium (e.g., data-processing system100, hard disk drive150, etc) storing computer code representing instructions to cause a process for identifying an existence and an occurrence of a contour, can be implemented. Such computer code can be configured to include code to, for example, identify an occurrence of a contour by taking a second derivative of a color space value associated with an image derived via a color management profile that models a behavior of a multi-function device as a smoothness metric; identify a location of the contour by matching an input value to a corresponding input value of the image to thereafter determine a probability of the contour being visible in a rendered output thereof by separately analyzing the color space value; and present the occurrence and the location of the contour to assist in quickly and clearly identifying the contour in the image without rendering a physical print thereof and with minimal human interaction and expenditure.