Systems and methods for segmenting an image

A method on a computing device for categorizing one or more blocks of an image is disclosed. The method includes computing a membership value of each of the one or more blocks for each of one or more categories based on a set of parameters associated with each of the one or more blocks. The one or more categories comprise at least an image category. Each of the one or more blocks is categorized in the one or more categories based on the membership value. A category of at least one block is modified to the image category based on a reference signal and the membership value such that the number of blocks categorized under the image category increases.

TECHNICAL FIELD

The presently disclosed embodiments are related, in general, to image processing. More particularly, the presently disclosed embodiments are related to systems and methods for segmenting an image.

BACKGROUND

An image corresponds to a pictorial representation of an object or a document. The image may be captured by utilizing one or more image capturing devices, such as a camera and/or a scanner. A typical image may include an image portion (e.g., pictures, watermarks, etc.) and/or a non-image portion (e.g., text). Usually, the image portion includes high graphic content that may contribute to a major chunk of storage space required by the image on a storage medium.

In certain scenarios, the image may be transmitted to one or more receivers over a network. Usually, prior to transmitting the image, one or more operations are performed on the image. The one or more operations may include, but are not limited to, reducing the size of the image, watermarking the image for security purpose, etc. Such operations on the image modify the characteristics of both the image portion and the non-image portion. As the non-image portion may include text in the image, operations performed on the image may affect the quality of the text present in the image that may compromise the overall essence of the image.

SUMMARY

According to embodiments illustrated herein there is provided a method implementable on a computing device for categorizing one or more blocks of an image. The method comprising computing a membership value of each of the one or more blocks for each of one or more categories based on a set of parameters associated with each of the one or more blocks. The one or more categories comprise at least an image category. Each of the one or more blocks is categorized in the one or more categories based on the membership value. A category of at least one block is modified to the image category based on a reference signal and the membership value such that the number of blocks categorized under the image category increases. The category is different from the image category.

According to embodiments illustrated herein there is provided a system of categorizing one or more blocks in an image. The system includes a fuzzification module configured to compute a membership value of each of the one or more blocks for each of one or more categories based on a set of parameters associated with each of the one or more blocks. The one or more categories comprise at least an image category. Further, the system includes an image-processing module configured to categorize each of the one or more blocks in the one or more categories based on the membership value. Further, the image-processing module is configured to modify a category of at least one block to the image category based on a reference signal and the membership value such that the number of blocks categorized under the image category increases. The category is different from the image category.

According to embodiments illustrated herein there is provided a computer program product for use with a computer to categorize one or more blocks of an image. The computer program product comprises a set of instructions executable by a processor in the computer. The set of instructions comprising program instruction means for computing a membership value of each of the one or more blocks for each of one or more categories based on a set of parameters associated with each of the one or more blocks. The one or more categories comprise at least an image category. Further, the set of instruction include a program instruction means for categorizing each of the one or more blocks in the one or more categories based on the membership value. Furthermore, the set of instructions include a program instruction means for modifying a category of at least one block to the image category based on a reference signal and the membership value such that the number of blocks categorized under the image category increases, wherein the category is different from the image category.

DETAILED DESCRIPTION

DEFINITIONS

An “image” refers to a collection of data, including image data in any format, retained in an electronic form. In an embodiment, the image may correspond to a pictorial representation of an object or a document.

A “block in image” corresponds to a portion in an image that has a predetermined size. Blocks in the image are obtained by segmenting the image using a pixel window of a predetermined size. For example, an 8×8 pixel window would segment the image in a plurality of 8×8 blocks.

The “Size of block” corresponds to a number of pixels in a block. For example, an 8×8 block would encompass 64 pixels.

A “membership function” refers to a set on the universe of X where μ:X→[0,1]. Each element of X is mapped to a value between 0 and 1. “μ” is a membership value or a degree of membership that quantifies the grade of membership of the element in X to the membership function.

A “pixel” refers to an element of data that may be provided in any format, color space, or compression state that is associated with or readily convertible into data that can be associated with a small area or spot in an image that is printed or displayed. In an embodiment, a pixel is represented by bits where the number of bits in a pixel is indicative of the information associated with the pixel.

A “compression ratio” refers to a ratio of a size of the original image to a size of the compressed image. For example, when a 2 MB image is compressed to an image having 1 MB size, the compression is 2.

A “Watermark” refers to a design, text or a graphical image that is embedded in a document. In an embodiment, a watermark in a document may be utilized for tracing copyright infringements and authentication.

A “set of parameters” refers to features associated with a block of an image. In an embodiment, the features may include, but are not limited to, color variance, edge strength, and high frequency to low frequency ratio.

A “Multi Function Device” (MFD) refers to a device that can perform multiple functions. Examples of the functions may include, but are not limited to, printing, scanning, copying, faxing, emailing, and the like. In an embodiment, the MFD includes a scanner and a printer for scanning and printing one or more documents respectively. In an embodiment, the MFD has communication capabilities that enable the MFD to send/receive data and messages in accordance with one or more communication protocols such as, but not limited to, FTP, WebDAV, E-Mail, SMB, NFS, and TWAIN.

A “printer” refers to any apparatus, such as a digital copier, bookmaking machine, facsimile machine, multi-function machine (performs scanning, emailing), and the like, which performs a print (original and/or duplicate) outputting function for any purpose in response to digital data sent thereto.

A “print” refers to an image on a medium (such as paper), that is capable of being read directly through human eyes, perhaps with magnification. According to this disclosure, handwritten or partially handwritten image on a medium is considered as an original print. In an embodiment, a duplicate print corresponds to an exact replica of the original print derived by scanning, printing, or both.

FIG. 1is a block diagram illustrating a system environment100in which various embodiments can be implemented. The system environment100includes a computing device102, a network104, a database server106, and an MFD108.

In an embodiment, the computing device102receives a first image from at least one of the database server106or the MFD108. In an embodiment, the computing device102instructs the MFD108to scan a document to generate the first image. Thereafter, the MFD108transmits the first image to the computing device102. In an alternate embodiment, the computing device102generates one or more queries to extract the first image from the database server106. In an embodiment, the computing device102automatically generates the one or more queries to extract the first image. The computing device102segments the first image in one or more blocks. Thereafter, the computing device102categorizes each of the one or more blocks in one or more categories. In an embodiment, the one or more categories include an image category and a non-image category. Further, the computing device102modifies a category of at least one block (categorized in non-image category) to the image category. In an embodiment, the computing device102modifies the category based on a user input. The categorization of the one or more blocks is described later in conjunction withFIG. 4. Some of the examples of the computing device102include a personal computer, a laptop, a PDA, a mobile device, a tablet, or any device that has the capability to receive and process images.

The network104corresponds to a medium through which content and messages flow between various devices of the system environment100(e.g. the computing device102, database server106, and the MFD108). Examples of the network104may include, but are not limited to, a Wireless Fidelity (WI-FI™) network, a Wireless Area Network (WAN), a Local Area Network (LAN) or a Metropolitan Area Network (MAN). Various devices in the system environment100can connect to the network104in accordance with the various wired and wireless communication protocols such as Transmission Control Protocol and Internet Protocol (TCP/IP), User Datagram Protocol (UDP), and 2G, 3G, or 4G communication protocols.

The database server106is configured to store one or more images. In an embodiment, the database server106may receive a query from the computing device102and/or the MFD108to extract the one or more images. The database server106may be realized through various technologies, such as, but not limited to, MICROSOFT™ SQL server, ORACLE™, and My SQL. In an embodiment, the computing device102and the MFD108may connect to the database server106using one or more protocols such as, but not limited to, ODBC protocol and JDBC protocol.

In an embodiment, the MFD108scans, copies, and prints the one or more images based on the instructions received from the computing device102. In an embodiment, the MFD108transmits the first image to the computing device102. In another embodiment, the MFD108stores the first image in the database server106. In an embodiment, the MFD108stores the scanned image in a local memory of the MFD108.

FIG. 2is a block diagram of the system200for categorizing one or more blocks in an image in accordance with at least one embodiment. The system200is described in conjunction withFIG. 1.

The system200includes a processor202, an input device204, a display206, a transceiver208, and a memory214. In an embodiment, the system200may correspond to the computing device102(refer toFIG. 1) and/or the MFD108. In a scenario where the system200corresponds to the MFD108, the system200would further include a printer210and a scanner212. For the purpose of ongoing description, the system200has been considered as the computing device102. However, the scope of the disclosed embodiments should not be limited to the system200as being the computing device102. The system200can also be realized as the MFD108.

The processor202is coupled to the input device204, the display206, the transceiver208, and the memory214. The processor202executes a set of instructions stored in the memory214. The processor202can be realized through a number of processor technologies known in the art. Examples of the processor202may include, but are not limited to, X86 processor, RISC processor, ASIC processor, CISC processor, ARM processor, or any other processor.

The input device204receives an input from a user of the system200. In an embodiment, a user input may correspond to one or more queries to extract one or more images from the database server106. In an alternate embodiment, the user input may correspond to one or more instruction to operate the MFD108, the printer210, and/or the scanner212. In yet another embodiment, the user input may correspond to a reference signal. Examples of the input device204include, but are not limited to, a mouse, a keyboard, a touch panel, a track-pad, a touch screen, or any other device that has the capability of receiving the user input.

The display206displays a user interface to a user of the system200. The display206can be realized through several known technologies, such as, a Cathode Ray Tube (CRT) based display, a Liquid Crystal Display (LCD), a Light Emitting Diode (LED)-based display, an Organic LED display technology, and a Retina Display technology. Further, the display206can be a touch screen that receives the user input.

The transceiver208transmits and receives messages and data to/from various components of the system environment100(e.g. the MFD108and the database server106). Examples of the transceiver208may include, but are not limited to, an antenna, an Ethernet port, a USB port or any other port that can be configured to receive and transmit data from external sources. The transceiver208transmits and receives data/messages in accordance with the various communication protocols, such as, TCP/IP, UDP, and 2G, 3G, or 4G communication protocols.

In an embodiment, the printer210prints the images scanned by the scanner212. In another embodiment, the printer210prints the images received from the database server106. In an embodiment, the printer210may utilize one or more printing technologies, such as, but are not limited to, laser printing, thermal printing, dot matrix printing, and ink-jet printing, to print the images.

In an embodiment, the scanner212is an optical device that scans a document to obtain an image of the document. In an embodiment, the scanner212may utilize various image capturing techniques such as, but are not limited to, a charge-coupled device (CCD) and a Contact Image Sensor (CIS), to scan the document. In an embodiment, the scanner212implements a linear scanning technique. In another embodiment, the scanner212implements a two-dimensional scanning technique.

The memory214stores a set of instructions and data. Some of the commonly known memory implementations include, but are not limited to, a random access memory (RAM), a read only memory (ROM), a hard disk drive (HDD), and a secure digital (SD) card. Further, the memory214includes a program module216and a program data218. The program module216includes a set of instructions that is executable by the processor202to perform specific operations. The program module216further includes a communication manager220, a user interface manager222, an image processing module224, a fuzzification module226, a comparison module228, and a watermarking module230. It is apparent to a person having ordinary skills in the art that the set of instructions stored in the memory214enables the hardware of the system200to perform the predetermined operation.

The program data218includes a fuzzy membership data232, a fuzzy value data234, an image data236, a compression ratio data238, a GUI data240, reference data242, and sample data244.

In an embodiment, the communication manager220receives the first image from the database server106through the transceiver208. In an alternate embodiment, the communication manager220receives the first image from the MFD108. The communication manager220stores the first image as the image data236. Similarly, the communication manager220receives a second image from the database server106and/or the MFD108. The communication manager220includes various protocol stacks such as, but not limited to, TCP/IP, UDP, and 2G, 3G, or 4G communication protocols. The communication manager220transmits and receives the messages/data (e.g., images) through the transceiver208in accordance with such protocol stacks.

The user interface manager222extracts data from GUI data240to display a GUI on the display206. Further, the user interface manager222receives a user input through the input device204. In a scenario, where the display206is a touch screen, the user interface manager222receives the user input through the display206. In an embodiment, the user input corresponds to a reference signal that is indicative of a set point. The user interface manager222stores the reference signal as the reference data242. The GUI and the reference signal will be explained later in conjunction withFIG. 3. In an embodiment, the user interface manager222includes one or more drivers to operate the input device204.

The image processing module224segments the first image in one or more blocks using a predefined pixel window. Further, the image processing module224categorizes each of the one or more blocks in one or more categories based on a set of parameters associated with each of the one or more blocks. In an embodiment, the one or more categories include an image category and a non-image category. The categorization of the one or more blocks is described later in conjunction withFIG. 4. A person having ordinary skills in the art would understand that scope of the disclosure should not limit to having the image category and the non-image category. In an embodiment, the one or more categories may include a graphics category. Further, the image processing module224groups the blocks that are categorized under the same category and are in vicinity of each other to form one or more clusters. Post the categorization, the image processing module224modifies the category of at least one block, categorized in the non-image category, to the image category based on the reference signal. In an embodiment, the image processing module224compresses the image by compressing the one or more blocks to achieve a first compression ratio. The image processing module224stores the first compression ratio as the compression ratio data238. In an embodiment, the image processing module224utilizes one or more image processing techniques, such as, but are not limited to, image subtraction, segmentation, image clustering, Discrete Cosine transform (DCT), and image compression to process the first image.

The fuzzification module226defines a membership function for each of the one or more categories. Further, the fuzzification module226determines a membership value of each of the one or more blocks for the one or more categories based on the set of parameters associated with the one or more blocks. Determination of membership values is described later in conjunction withFIG. 5. The image processing module224categorizes the one or more blocks based on the membership values. The fuzzification module226utilizes one or more techniques such as, but is not limited to, hard C-means, fuzzy C-means, and neural network to define the membership functions and to determine the membership values.

The comparison module228extracts the first compression ratio from the compression ratio data238. Further, the comparison module228extracts the reference signal from the reference data242. In an embodiment, the reference signal is indicative of a reference compression ratio. Thereafter, the comparison module228compares the first compression ratio with the reference compression ratio to determine whether the desired compression ratio has been achieved. The image processing module224modifies the category of the at least one block based on the comparison. In an alternate embodiment, the comparison module228compares the size of the blocks categorized under the image category with the size of the second image to generate the comparison data244. In an embodiment, the comparison module228compares the size of the second image with size of the one or more clusters containing blocks categorized in the image category.

The watermarking module230embeds the second image on the blocks categorized under the image category. In an embodiment, the watermarking module230embeds the second image on at least one of the clusters containing blocks categorized in the image category. In an embodiment, the watermarking module230embeds the second image on the blocks categorized under the image category, if the size of the at least one cluster is more than the size of the second image. The embedding of the image is described later in conjunction withFIG. 8.

FIG. 3is the GUI300facilitating viewing of the first image and the compressed first image simultaneously in accordance with at least one embodiment. The GUI300is described in conjunction withFIG. 2.

In an embodiment, the user interface manager222utilizes GUI data240to display the GUI300. The GUI300includes a first area302, a second area304, a slide bar306, a slide button308, and a first push button310and a second push button312.

The first area302is configured to display the first image to a user. The user may slide the slide button308along the slide bar306to select desired compression ratio. In an embodiment, the slide bar306is a scale that displays one or more desired compression ratio ranging from 1 to 10. The second area304displays the compressed first image. In an embodiment, the compressed first image is displayed in the second area304in real time based on the compression ratio selected from the slide bar306. In an alternate embodiment, a third push button (not shown) is provided, where the compressed first image is displayed on the second area304when the third push button is pressed. The user may use the first push button310to browse and select the first image from the one or more images stored in the database server106. The second push button312is used for saving the compressed first image.

A person having ordinary skill in the art would understand that the scope of the disclosure is not limited to the GUI300illustrated inFIG. 3. The GUI300can be modified based on the user's requirements. For example, the slide bar306can be modified to select the required size of the image. In an alternate embodiment, the slide bar306can be modified to select a percentage indicating a percentage by which the first image has to be compressed. In an alternate embodiment, the GUI300may include an input box (not shown) to input the required compression ratio or the required size of the first image.

FIG. 4is a flowchart400illustrating a method for categorizing the one or more blocks of an image in accordance with at least one embodiment. The flowchart400is described in conjunction withFIG. 1,FIG. 2, andFIG. 3.

At step402, the first image is segmented in one or more blocks. In an embodiment, the image processing module224segments the first image. Prior to the segmentation, the system200obtains the first image from the database server106. In an alternate embodiment, the system200instructs the MFD108to scan a document to generate the first image. Thereafter, the communication manager220receives the first image (i.e., a scanned copy of the document) from the MFD108. The communication manager220stores the first image as the image data236. In an embodiment, the first image includes a text portion and an image portion. The image processing module224extracts the first image from the image data236. Thereafter, the image processing module224utilizes a predefined pixel window to segment the first image in the one or more blocks. For example, the first image has a resolution of 800×600 pixels. The image processing module224utilizes a 8×8 pixel window to segment the first image into the one or more blocks, each having a size of 8×8 pixels.

At step404, a fuzzy membership function is defined for each of the one or more categories in which the one or more blocks have to be categorized. In an embodiment, the fuzzification module226defines the fuzzy membership function for each of the one or more categories. In an embodiment, the one or more categories include an image category and a non-image category. In order to define the fuzzy membership function, the fuzzification module226extracts a sample image data from the sample data244. In an embodiment, the sample image data includes one or more image blocks that are pre-categorized in the image category and the non-image category. The fuzzification module226analyzes the set of parameters associated with each of the pre-categorized one or more image blocks in the sample data244to identify a threshold value of the set of parameters. In an embodiment, the threshold value indicates transition between the membership functions for the non-image category and the image category.

For example, the sample data244includes 10 image blocks of which 6 image blocks are pre-categorized in the image category and 4 image blocks are pre-categorized under the non-image category. The edge strength for the 10 image blocks varies from 0 to 1. The fuzzification module226computes an entropy of the edge strength for the 4 image blocks (categorized under the non-image category) and the 6 image blocks (categorized under the image category). Thereafter, the fuzzification module226determines edge strength of an image block from the 10 image blocks that has minimum entropy. In an embodiment, the edge strength of the image block having minimum entropy is the threshold value.

A person having ordinary skill in the art would understand that the scope of the disclosure is not limited to defining the membership function based on the entropy of the set of parameters. In an embodiment, the fuzzification module226may utilize one or more techniques such as, but are not limited to, genetic algorithms, neural network, and inductive reasoning to define the membership function.

At step406, membership value for each of the one or more blocks is determined based on the set of parameters associated with the one or more blocks. In an embodiment, the fuzzification module226computes the membership value for each of the one or more blocks. The fuzzification module226stores the membership values as the fuzzification value data234. The computation of the membership function is described later in conjunction withFIG. 5.

At step408, the one or more blocks are categorized in the one or more categories based on the membership value associated with the one or more blocks. In an embodiment, the image processing module224categorizes the one or more blocks. In order to categorize a block, the image processing module224extracts the membership values of the block for the image category and the non-image category from the fuzzification value data234. Based on the membership value, the block is categorized in the image category or the non-image category. For example, the block has a membership value of 0.7 for the non-image category and 0.3 for the image category. The image processing module224will categorize the block in the image category. After the categorization of the one or more blocks, the image processing module224groups the blocks that are categorized in the same category and are in the vicinity of each other to generate the one or more clusters. For example, the image category includes a 20 blocks. Out of the 20 blocks, the 12 blocks are in the vicinity of each other. The image processing module224would group the 12 blocks to generate a cluster. In an embodiment, the image processing module224will create a boundary encompassing the 12 blocks in the first image. The categorization of the image blocks is described later in conjunction withFIG. 6.

At step410, the category of at least one block, categorized under the non-image category, is modified to the image category. In an embodiment, the image processing module224modifies the category of the at least one block based on the membership value associated with the at least one block. For example, a block, categorized under the non-image category, has a membership value of 0.6 in the non-image category and 0.4 in the image category. In an embodiment, the image processing module224will modify the category of the block from the non-image category to the image category. In an embodiment, the category of the blocks, having membership values in the range of 0.50-0.65 in the non-image category and the membership values in the range of 0.35-0.50 in the image category, is modified. The modifying of the category is described later in conjunction withFIG. 6.

FIG. 5is a graphical representation500of the membership functions for the one or more categories in accordance with the at least one embodiment. The graphical representation500is described in conjunction withFIG. 4.

The graphical representation500includes a first curve506indicating a first membership function for the non-image category and a second curve508indicating a second membership function for the image category. The first curve506and the second curve508are plotted against values of the set of parameters (depicted by504) and membership value (depicted by502).

For example, an image block has a set of parameters as depicted by510, the image block will have a membership value of 0.6 in the first membership function (i.e., the non-image category). Similarly, for an image block that has a set of parameters as depicted by514will have a membership value of 0.8 in the second membership function (i.e., the image category). For the image block, that has a set of parameter as depicted512will have a membership value of 0.55 and 0.45 in the first membership function and the second membership function, respectively.

FIG. 6is a series of snapshots600of an electronic document illustrating the categorization of the one or more blocks in accordance with at least one embodiment.FIG. 6is described in conjunction withFIG. 4.

The series of snapshots600includes an electronic document602containing a text portion (depicted by606) and an image portion (depicted by604). Firstly, the image processing module224segments the image in one or more blocks as described in step402. For each of the one or more blocks, the fuzzification module226determines a membership values based on a set of parameters associated with each of the one or more blocks (described in step406). In an embodiment, the membership value for the blocks encompassing the text portion606will be different from the membership value for the blocks encompassing the image portion604. In an embodiment, the blocks encompassing the image portion604will have high membership values for the second membership function (i.e., membership function of the image category). Similarly, the blocks encompassing the text portion606will have high membership value for the first membership function (i.e., membership function of the non-image category).

Based on the membership values, the image processing module224categorizes each of the one or more blocks in the image category and the non-image category (described in step408). Further, the image processing module224groups the blocks that are categorized in the same category and are in vicinity of each other to generate a cluster. The boundary608encompasses the blocks categorized under the image category and the boundary610encompasses the blocks categorized under the non-image category.

For the blocks that have been categorized under the non-image category and that have membership values close to the image category are moved to the image category. For example, a block categorized in non-image category has a membership values of 0.55 and 0.45 in the first membership function (depicted by the first curve506) and the second membership function (depicted by the first curve508), respectively. The category of such blocks is modified to the image category to increase the total number of blocks in the image category. The boundary608is modified to include such blocks that were previously categorized under the non-image category (depicted by shaded region612).

FIG. 7is a flowchart700illustrating a method for compressing an image in accordance with at least one embodiment. The flowchart700is described in conjunction withFIG. 1,FIG. 2,FIG. 3,FIG. 4,FIG. 5, andFIG. 6.

At step402, the first image is segmented into the one or more blocks. Prior to segmenting the first image, the system200receives the first image from the MFD108and/or the database server106. The user interface manager222displays the first image in the first area302of the GUI300.

Steps404-408are performed as described in conjunction with the flowchart400.

At step702, the first image is compressed. In an embodiment, the image processing module224compresses the first image. The image processing module224compresses the blocks categorized under the image category separately from the blocks categorized under the non-image category. In an embodiment, the image processing module224utilizes a lossy compression technique to compress the block categorized under the image category. Further, the image processing module224utilizes a lossless compression technique to compress the blocks categorized under the non-image category. The image processing module224compresses the first image to achieve the first compression ratio.

At step704, a check is performed whether a desired compression ratio has been achieved. In an embodiment, the comparison module228performs the check. Prior to the check, the user interface manager222receives the user input indicative of a reference signal or the desired compression ratio. In an embodiment, the user of the system200selects the desired compression ratio by moving the slide button308on the slide bar306to the desired location. In an embodiment, the position of the slide button308on the slide bar306is indicative of the desired compression ratio. The user interface manager222stores the desired compression ratio as the reference data242. The comparison module228extracts the desired compression ratio from the reference data242. Thereafter, the comparison module228compares the first compression ratio with the desired compression ratio.

If at step704it is determined that the first compression ratio is not equal to the desired compression ratio, step410is performed. At step410, the category of the blocks, categorized under the non-image category, is modified to the image category (described in conjunction with the flowchart400). In an embodiment, the number of blocks for which the category has to be modified is determined based on a difference between the first compression ratio and the desired compression ratio. The difference is looked up in an index or a look-up table to determine the number of blocks for which the category has to be modified. Following is an example look-up table:

TABLE 1A look-up table to determine numberof blocks based on the difference.Difference between the firstcompression ratio and thedesired compression ratioNumber of blocks0.1100.550110022002.5250

Thereafter, step702is repeated until the first compression ratio is equal to the desired compression ratio.

A person having ordinary skills in the art would understand that the scope of the disclosure should not be limited to determining the number of blocks based on the look-up table. In an embodiment, the number of blocks is determined based on a relative occupancy of the blocks in the image category to that of the blocks in the non-image category.

If at step704it is determined that the first compression ratio is equal to the desired compression ratio, the compressed first image is outputted. In an embodiment, the user interface manager222outputs the compressed first image through the GUI300. In an embodiment, the compressed first image is displayed in the second area304of the GUI300.

Modifying the category of the blocks categorized in the non-image category to the image category increases the total number of the blocks categorized in the image category. As total number of blocks in the image category increases, number of blocks on which lossy compression technique can be used also increases. High compression ratio can be achieved.

FIG. 8is a flowchart800illustrating a method for embedding a second image in a first image in accordance with at least one embodiment. In an embodiment, the second image is a watermark image.

At step802, the system200receives the second image from the database server106and/or the MFD108. In an embodiment, the system200receives the second image in a similar manner as the first image is received.

At step804, a check is performed whether a size of blocks categorized under the image category is greater than the size of the second image. In an embodiment, the comparison module228performs the check.

In an embodiment, the comparison module228instructs the image processing module224to determine a discrete cosine transform (DCT) of the blocks categorized in the image category. Thereafter, the comparison module228determines a space in each of the blocks (in the image category) that lies in mid-frequency DCT coefficient range. The comparison module228compares the space with the size of the second image (in terms of bits).

At step410, the category of the blocks, categorized under the non-image category, is modified to the image category (described in conjunction with the flowchart400). Thereafter, the step804is repeated until the size of the blocks in the image category becomes greater than the size of the second image.

If at step804it is determined that, the size of the blocks categorized under the image category is greater than the size of the second image, step806is performed. At step806, the second image is embedded onto the blocks categorized under the image category. In an embodiment, the watermarking module230embeds the second image on the blocks categorized under the image category.

The disclosed embodiments encompass numerous advantages. A membership value of each of the one or more blocks for the one or more categories is computed. Based on the membership value the one or more blocks are categorized. Further, the based on the membership value, the category of a block can be modified. For example, the blocks from the non-image category are moved to the image category. Thus, total number of blocks categorized under the image category increases. As a lossy compression technique is used for compressing the box in the image category, higher compression ratio can be achieved. Additionally, the increase in number of blocks in the image category allows bigger images or watermarks to be embedded in the image.

The computer system comprises a computer, an input device, a display unit and the Internet. The computer further comprises a microprocessor. The microprocessor is connected to a communication bus. The computer also includes a memory. The memory may be Random Access Memory (RAM) or Read Only Memory (ROM). The computer system further comprises a storage device, which may be a hard-disk drive or a removable storage drive, such as, a floppy-disk drive, optical-disk drive, and the like. The storage device may also be a means for loading computer programs or other instructions into the computer system. The computer system also includes a communication unit. The communication unit allows the computer to connect to other databases and the Internet through an input/output (I/O) interface, allowing the transfer as well as reception of data from other sources. The communication unit may include a modem, an Ethernet card, or other similar devices, which enable the computer system to connect to databases and networks, such as, LAN, MAN, WAN, and the Internet. The computer system facilitates input from a user through input devices accessible to the system through an I/O interface.

In order to process input data, the computer system executes a set of instructions that are stored in one or more storage elements. The storage elements may also hold data or other information, as desired. The storage element may be in the form of an information source or a physical memory element present in the processing machine.

The programmable or computer-readable instructions may include various commands that instruct the processing machine to perform specific tasks, such as steps that constitute the method of the disclosure. The systems and methods described can also be implemented using only software programming or using only hardware or by a varying combination of the two techniques. The disclosure is independent of the programming language and the operating system used in the computers. The instructions for the disclosure can be written in all programming languages including, but not limited to, ‘C’, ‘C++’, ‘Visual C++’ and ‘Visual Basic’. Further, the software may be in the form of a collection of separate programs, a program module containing a larger program or a portion of a program module, as discussed in the ongoing description. The software may also include modular programming in the form of object-oriented programming. The processing of input data by the processing machine may be in response to user commands, the results of previous processing, or from a request made by another processing machine. The disclosure can also be implemented in all operating systems and platforms including, but not limited to, ‘Unix’, ‘DOS’, ‘Android’, ‘Symbian’, and ‘Linux’.

The programmable instructions can be stored and transmitted on a computer-readable medium. The disclosure can also be embodied in a computer program product comprising a computer-readable medium, or with any product capable of implementing the above methods and systems, or the numerous possible variations thereof.

Various embodiments of the systems and methods for segmenting an image have been disclosed. However, it should be apparent to those skilled in the art that modifications in addition to those described, are possible without departing from the inventive concepts herein. The embodiments, therefore, are not restrictive, except in the spirit of the disclosure. Moreover, in interpreting the disclosure, all terms should be understood in the broadest possible manner consistent with the context. In particular, the terms “comprises” and “comprising” should be interpreted as referring to elements, components, or steps, in a non-exclusive manner, indicating that the referenced elements, components, or steps may be present, or utilized, or combined with other elements, components, or steps that are not expressly referenced.

A person having ordinary skills in the art will appreciate that the system, modules, and sub-modules have been illustrated and explained to serve as examples and should not be considered limiting in any manner. It will be further appreciated that the variants of the above disclosed system elements, or modules and other features and functions, or alternatives thereof, may be combined to create other different systems or applications.

Those skilled in the art will appreciate that any of the aforementioned steps and/or system modules may be suitably replaced, reordered, or removed, and additional steps and/or system modules may be inserted, depending on the needs of a particular application. In addition, the systems of the aforementioned embodiments may be implemented using a wide variety of suitable processes and system modules and is not limited to any particular computer hardware, software, middleware, firmware, microcode, or the like.

The claims can encompass embodiments for hardware, software, or a combination thereof.

It will be appreciated that variants of the above disclosed, and other features and functions or alternatives thereof, may be combined into many other different systems or applications. Presently unforeseen or unanticipated alternatives, modifications, variations, or improvements therein may be subsequently made by those skilled in the art, which are also intended to be encompassed by the following claims.