# Patent

## Title
Dynamic waveform region enhancement

## Abstract

A system and method includes reception of a color image comprising a plurality of color pixels, conversion of the color image to a monochromatic image comprising a plurality of monochromatic pixels, performance of M erosion operations on the monochromatic image to generate an eroded monochromatic image, where M is equal to or greater than one, performance of N dilation operations on the eroded monochromatic image to generate a mask image, where N is equal to or greater than one, identification of one or more regions of the mask image based on the mask image, and modification of regions of the color image corresponding to the identified regions of the mask image.

## Background
CROSS REFERENCE TO RELATED APPLICATIONS
This application is a Continuation in Part Application of U.S. patent application Ser. No. 14/050,402, filed Oct. 10, 2013, and also claims benefit to and priority of, U.S. Provisional Patent Application Ser. No. 61/711,862, filed Oct. 10, 2012, and U.S. Provisional Patent Application Ser. No. 61/711,859, filed Oct. 10, 2012, the contents of which are hereby incorporated by reference in their entirety for all purposes.


BACKGROUND
1. Field
The embodiments described below relate to image signal processing and, more specifically, to efficient detection and/or enhancement of certain image regions.
2. Description
Conventional medical imaging systems capture Electro-Physiological (EP) signals and display the EP signals on system monitors. FIG. 1 includes image 100 of a displayed EP signal. Image 100 includes waveform region 110, information area 120 and control buttons 130. Image 100 is generated based on a received digital video signal and is made up of image pixels. Each image pixel is associated with a color value (e.g., an 8-bit value for each of Red, Green and Blue components).
To ensure conformance between image 100 and the monitor on which it will be displayed, the received digital video signal is scaled prior to display of image 100. Scaling (e.g., using a bi-cubic scaling algorithm) reduces the brightness of the EP signals within waveform region 110 because the scaling operation incorporates adjacent dark pixels into the computation of the scaled waveform pixels. More specifically, the brightness of the waveform pixels is reduced because the black background of waveform region 110 is provided weight in the computation of the scaled waveform pixels.
Accordingly, conventional systems for scaling EP signals result in dark and difficult-to-see signals. Enhancement functions are known, but such functions produce distortion within the non-waveform regions of the resulting image.



BRIEF DESCRIPTION OF THE DRAWINGS
The patent or application filed contains at least one drawing executed in color. Copies of this patent or patent application publication with color drawing(s) will be provided by the Office upon request and payment of the necessary fee.
The construction and usage of embodiments will become readily apparent from consideration of the following specification as illustrated in the accompanying drawings, in which like reference numerals designate like parts, and wherein:
FIG. 1 illustrates an image of an EP video signal;
FIG. 2 is a block diagram of a system according to some embodiments;
FIG. 3 is a flow diagram of a process to determine regions of interest according to some embodiments;
FIG. 4 depicts a mask image according to some embodiments;
FIG. 5 is a flow diagram of a process to enhance image pixels according to some embodiments;
FIG. 6 is an image of a waveform region;
FIG. 7 is an image of an enhanced waveform region according to some embodiments;
FIG. 8 is a functional block diagram of an implementation according to some embodiments; and
FIG. 9 is a block diagram of a system according to some embodiments.



DETAILED DESCRIPTION
The following description is provided to enable any person in the art to make and use the described embodiments and sets forth the best mode contemplated for carrying out the described embodiments. Various modifications, however, will remain readily apparent to those in the art.
FIG. 2 illustrates system 200 according to some embodiments. System 200 may comprise elements of an image processing unit, other elements of which are omitted from FIG. 2 for clarity. System 200 may be implemented within an angiography imaging system for displaying angiographic signals and data, or within any other type of imaging system for displaying any other type of images that is or becomes known. The elements of system 200 may be implemented using any combination of hardware and/or software, and may be physically located in one or more separate physical units.
Generally, system 200 receives a first video signal comprised of first image pixels, generates a second video signal comprised of second image pixels, and displays the second video signal. The first video signal may be a scaled version of another video signal, but embodiments are not limited thereto.
More particularly, region detector 210 determines one or more regions of interest within the first video signal. These regions may be those regions which include thin colored lines (e.g., waveforms) on a black background. Image enhancer 220 identifies pixels of the first video signal which lie within the regions of interest and enhances those pixels as will be described below. The second video signal, which includes the enhanced pixels as well as non-enhanced pixels of the first video signal, is then displayed by display 230.
FIG. 3 is a flow diagram of process 300 according to some embodiments. Process 300 and the other processes described herein may be performed using any suitable combination of hardware, software or manual means. Software embodying these processes may be stored by any non-transitory tangible medium, including a fixed disk, a floppy disk, a CD, a DVD, a Flash drive, or a magnetic tape. For example, any element of FIG. 2 may comprise one or more processors executing software program code to cause performance of process 300.
Initially, a color image including a plurality of color pixels is received at S305. According to some embodiments, the color image is embodied within a color video signal. The color image may include a color waveform on a black background, along with variously-colored user interface elements (e.g., buttons, sliders, etc.) and text information. As described above, the color image may comprise a user interface for displaying EP signals. Moreover, as also described above, the color image may comprise a scaled color image. Embodiments are not limited to any particular type of color image, or to a scaled color image.
Next, at S310, the color image is converted to a monochromatic image which includes a plurality of monochromatic pixels. Any system for conversion to monochrome may be employed at S310. In one example, all pixels having an intensity value less than a threshold are converted to black pixels, and all pixels having an intensity value greater than or equal to the threshold are converted to white pixels.
It will be assumed, for purposes of example, that color image 100 is received by region detector 210 at S305. Region detector 210 may then convert each color pixel of color image 100 to one of two colors at S310. According to some embodiments, the two colors are black and white. To save memory, each of these colors may be represented by a 1-bit value. Therefore, in some embodiments of S310, a monochromatic image is created in which each pixel is represented by ‘0’ or ‘1’.
A plurality of successive erosion operations are performed on the monochromatic image at S315 to generate an eroded monochromatic image. Generally, an erosion operation may thin image objects and remove narrow objects from an image. According to some embodiments of the erosion operation, the value of each monochromatic pixel is set to the minimum value of all pixels in its neighborhood. Therefore, a given pixel is set to ‘0’ if any pixel in its neighborhood has a value of ‘0’. The “neighborhood’ may be defined to only include immediately-adjacent (i.e., “touching” pixels), or otherwise defined by a user.
After performing the erosion operation once, the erosion operation is performed again on the resulting eroded image. This process may be repeated several more times, with the number of iterations being user-defined.
Next, at S320, a plurality of successive dilation operations are performed on the eroded monochromatic image to generate a mask image. The dilation operation may comprise an operation which builds up image objects. According to some embodiments of the dilation operation, the value of each monochromatic pixel is set to the maximum value of all pixels in its neighborhood. Therefore, a given pixel is set to ‘1’ if any pixel in its neighborhood has a value of ‘1’. The “neighborhood’ may be user-defined, and the definition may differ from the definition used in the erosion operation.
After performing the dilation operation once, the operation is performed again on the resulting dilated image. This process may be repeated several more times, with the number of iterations being user-defined. According to some embodiments, the number of dilation operations performed at S320 is equal to the number of erosion operations performed at S315. In some embodiments, only one erosion operation is performed at S315 and only one dilation operation is performed at S320.
The image resulting from S320 is referred to herein as a mask image. FIG. 4 illustrates mask image 400 which, according to some embodiments, is generated at S320 based on color image 100 received at S305. Notably, waveform region 110 is a solid black region, while text within information area 120 and graphic details of control buttons 130 are surrounded by white areas.
One or more regions of the mask image are identified at S325. S325 may comprise performing edge detection on mask image 400 to identify the edges of solid black areas within image 400. S325 may employ any edge detection algorithms that are or become known. Moreover, various thresholds used by such algorithms may be user-defined. According to some embodiments, S325 generates coordinate pairs associated with each detected region of interest. For example, S325 may generate coordinate pairs corresponding to each point along the perimeter of the black area of waveform region 110, as well as coordinate pairs corresponding to the perimeters of the other black regions.
At S330, regions of the color image received at S305 are modified. The modified regions correspond to the identified regions of the mask image. With respect to system 200, image enhancer 220 may modify the pixels of the first video signal at S330 based on information regarding the regions of interest received from region detector 210. Embodiments may implement any process for image modification at S330.
Process 500 of FIG. 5 is one example of image modification which may be employed at S330 according to some embodiments. Process 500 will be described as if performed by image enhancer 220 of the present example. However, processes 300 and 500 are mutually-exclusive in that systems may employ one without the other.
A color pixel of a color image is received at S505, and, at S510, it is determined whether the color pixel is in a region of interest. The determination at S510 depends upon the manner in which the region of interest is defined. Using the example described above, S510 may comprise determining whether the coordinates of the color pixel lie within the perimeter of an identified region of interest, as defined by coordinate pairs provided by region detector 210.
In a more particular example, the received color pixel may be associated with a particular row of the color image. Region detector 210 may provide the coordinate pairs of the edges of each region of interest lying in that particular row. Accordingly, S510 simply comprises a determination of whether the X (i.e., column)-coordinate of the color pixel lies within the X-coordinates of the edges of any region of interest in that row.
If it is determined that the color pixel is not in a region of interest, the color pixel is output to the modified image, unchanged, at S515. Therefore, the corresponding pixel of the final modified image will be identical to the color pixel of the original color image.
On the other hand, flow proceeds from S515 to S520 if the color pixel is determined to lie within a region of interest. At S520 it is determined whether the pixel is gray. According to some embodiments, a gray pixel is a pixel which is associated with substantially equal R, G and B values. The identification of gray pixels is intended to identify gray lines of a graticule in the waveform region. Accordingly, the determination at S520 may be tuned to identify a particular range of gray pixels associated with an expected graticule color. This consideration may be ignored in some embodiments, with flow proceeding directly to S525 from S510.
If the color pixel is not determined to be gray, it is determined whether an intensity of the color pixel is greater than a threshold at S525. The threshold may be user-defined, and is intended to delineate between colored waveform pixels and black background pixels. Accordingly, if the intensity is not greater than the threshold, the pixel is set to black at S530. If the intensity is greater than the threshold, a gain is applied to the pixel at S535.
The gain applied at S535 is intended to enhance the visibility of the pixel. According to some embodiments of S535, a gain factor is applied equally to each color component of the pixel and, saturate each color if the resulting color is greater than the brightest value of the color system. Any other algorithm for increasing pixel visibility may be employed at S530.
The changed pixel is output to the modified image at S555. Therefore, the changed pixel replaces the color pixel of the original color image in the final modified image. Flow then proceeds to S560 to determine whether the color image includes more pixels and, if so returns to S505 and continues as described above.
Returning to S520, flow proceeds to S540 if it is determined that the received color pixel is gray. If the intensity of the gray pixel is greater than a threshold, the pixel is set to a predetermined gray color at S545. If not, the pixel is set to black at S550. The threshold employed at S540 may be user-defined and is likely different from the threshold employed at S525. As mentioned above, s540 is intended to distinguish graticule pixels from background pixels.
Flow continues from S545 or S550 to S555 to output the changed pixel to the final modified image. The above process continues until it is determined at S560 that no more pixels remain to be processed, at which point process 500 terminates.
FIG. 6 illustrates a portion of a color image which may be processed according to process 500. As shown, the waveform lines are rather faint. FIG. 7 illustrates the FIG. 6 image after it has been modified image according to some embodiments of process 500. The waveform lines, as well as the graticule lines, of the FIG. 7 image are substantially more visible than the corresponding lines of FIG. 6.
FIG. 8 is a detailed block diagram of system 800 according to some embodiments. System 800 may comprise an implementation of system 200 of FIG. 2, and may perform one or both of processes 300 and 500 in some embodiments.
System 800 includes region detector 810, image enhancer 820 and video scaler 830. Video scaler 830 receives a video signal, scales the signal, and provides the scaled signal to region detector 810 and to image enhancer 820. Region detector 810 uses B/W converter 811 to convert the image to monochrome, and filters 812 and 813 to perform three successive erosion operations and dilation operations, respectively, on the monochromatic image.
Line buffers 814, coordinate counters 815 and kernel compare element 816 are used to determine edges within the monochromatic image, on a line-by-line basis. Coordinate pairs of these edges are pushed from FIFO 817 to color level enhancement module 822 of image enhancer 820.
Color level enhancement module 822 also operates on a line-by-line basis, in conjunction with line buffers 824. As described with respect to process 500, color level enhancement module 822 may receive a color pixel of a given row from line buffers 824, determine that the color pixel lies within a region of interest based on the coordinate pairs received from FIFO 817, and perform image enhancement on the color pixel.
FIG. 9 is a block diagram of apparatus 900 according to some embodiments. Apparatus 900 may comprise a general-purpose computing apparatus and may execute program code to perform any of the functions described herein. Apparatus 900 may comprise an implementation of system 200 and/or system 800 according to some embodiments. Apparatus 900 may include other unshown elements.
Apparatus 900 includes processor 910 operatively coupled to communication device 920, data storage device 930, one or more input devices 940, one or more output devices 950 and memory 960. Communication device 920 may facilitate communication with external devices, such as a reporting client, or a data storage device. Input device(s) 940 may comprise, for example, a keyboard, a keypad, a mouse or other pointing device, a microphone, knob or a switch, an infra-red (IR) port, a docking station, and/or a touch screen. Input device(s) 940 may be used, for example, to enter information into apparatus 900. Output device(s) 950 may comprise, for example, a display (e.g., a display screen) such as display 230, a speaker, and/or a printer.
Data storage device 930 may comprise any appropriate persistent storage device, including combinations of magnetic storage devices (e.g., magnetic tape, hard disk drives and flash memory), optical storage devices, Read Only Memory (ROM) devices, etc., while memory 960 may comprise Random Access Memory (RAM).
Detection and enhancement module 932 may comprise program code executed by processor 910 to cause apparatus 900 to perform any one or more of the processes described herein. Embodiments are not limited to execution of these processes by a single apparatus. Data storage device 930 may also store data and other program code for providing additional functionality and/or which are necessary for operation of apparatus 900, such as device drivers, operating system files, etc.
The foregoing diagrams represent logical architectures for describing processes according to some embodiments, and actual implementations may include more or different components arranged in other manners. Other topologies may be used in conjunction with other embodiments. Moreover, each component or device described herein may be implemented by any number of devices in communication via any number of other public and/or private networks. Two or more of such computing devices may be located remote from one another and may communicate with one another via any known manner of network(s) and/or a dedicated connection. Each component or device may comprise any number of hardware and/or software elements suitable to provide the functions described herein as well as any other functions. For example, any computing device used in an implementation of a system according to some embodiments may include a processor to execute program code such that the computing device operates as described herein.
All systems and processes discussed herein may be embodied in program code stored on one or more non-transitory computer-readable media. Such media may include, for example, a floppy disk, a CD-ROM, a DVD-ROM, a Flash drive, magnetic tape, and solid state Random Access Memory (RAM) or Read Only Memory (ROM) storage units. Embodiments are therefore not limited to any specific combination of hardware and software.
Those in the art will appreciate that various adaptations and modifications of the above-described embodiments can be configured without departing from the scope and spirit of the claims. Therefore, it is to be understood that the claims may be practiced other than as specifically described herein.

## Claims

1. A method comprising:
receiving a color image comprising a plurality of color pixels;
converting the color image to a monochromatic image comprising a plurality of monochromatic pixels;
performing M erosion operations on the monochromatic image to generate an eroded monochromatic image, where M is equal to or greater than one;
performing N dilation operations on the eroded monochromatic image to generate a mask image, where N is equal to or greater than one;
identifying one or more regions of the mask image based on the mask image; and
modifying regions of the color image corresponding to the identified regions of the mask image.

2. A method according to claim 1, where M is equal to N.

3. A method according to claim 1, where each of the plurality of monochromatic pixels is associated with a 1-bit value.

4. A method according to claim 1, wherein identifying one or more regions of the mask image based on the mask image comprises:
detecting edges within the mask image.

5. A method according to claim 4, wherein identifying one or more regions of the mask image based on the mask image further comprises:
for each of the one or more regions, identifying coordinate pairs defining the edges of the region.

6. A method according to claim 1, further comprising:
downscaling an input image to generate the color image.

7. A method according to claim 1, wherein modifying regions of the color image corresponding to the identified regions of the mask image comprises:
determining whether a color pixel of the color image is within one of the one or more regions;
if it is determined that the color pixel of the color image is within one of the one or more regions, determining whether the color pixel is gray;
if it is determined that the color pixel is gray, determining whether an intensity of the color pixel is greater than a first threshold;
if it is determined that the intensity of the color pixel is greater than the first threshold, apply a gain to the color pixel; and
if it is determined that the intensity of the color pixel is not greater than the first threshold, change the color pixel to a black pixel.

8. A method according to claim 7, wherein identifying one or more regions of the mask image based on the mask image comprises:
for each row of each of the one or more regions, identifying a coordinate pair defining a boundary of a region, and
wherein determining whether the color pixel of the color image is within one of the one or more regions comprises:
determining whether the color pixel is located between a coordinate pair defining a boundary of a region within the row of the color pixel.

9. A method according to claim 8, wherein modifying regions of the color image corresponding to the identified regions of the mask image further comprises:
if it is determined that the color pixel is not gray, determining whether an intensity of the color pixel is greater than a second threshold;
if it is determined that the intensity of the color pixel is greater than the second threshold, changing the color pixel to a black pixel; and
if it is determined that the intensity of the color pixel is not greater than the second threshold, changing the color pixel to a gray pixel.

10. A method according to claim 7, wherein modifying regions of the color image corresponding to the identified regions of the mask image further comprises:
if it is determined that the color pixel is not gray, determining whether an intensity of the color pixel is greater than a second threshold;
if it is determined that the intensity of the color pixel is greater than the second threshold, changing the color pixel to a black pixel; and
if it is determined that the intensity of the color pixel is not greater than the second threshold, changing the color pixel to a gray pixel.

11. A system comprising:
an image processing unit to:
receive a color image comprising a plurality of color pixels;
convert the color image to a monochromatic image comprising a plurality of monochromatic pixels;
perform M erosion operations on the monochromatic image to generate an eroded monochromatic image, where M is equal to or greater than one;
perform N dilation operations on the eroded monochromatic image to generate a mask image, where N is equal to or greater than one;
identify one or more regions of the mask image based on the mask image; and
modify regions of the color image corresponding to the identified regions of the mask image.

12. A system according to claim 11, where M is equal to N.

13. A system according to claim 11, where each of the plurality of monochromatic pixels is associated with a 1-bit value.

14. A system according to claim 11, wherein identification of one or more regions of the mask image based on the mask image comprises:
detection of edges within the mask image.

15. A system according to claim 14, wherein identification of one or more regions of the mask image based on the mask image further comprises:
for each of the one or more regions, identification of coordinate pairs defining the edges of the region.

16. A system according to claim 11, the image processing unit further to:
downscale an input image to generate the color image.

17. A system according to claim 11, wherein modification of regions of the color image corresponding to the identified regions of the mask image comprises:
determination of whether a color pixel of the color image is within one of the one or more regions;
if it is determined that the color pixel of the color image is within one of the one or more regions, determination of whether the color pixel is gray;
if it is determined that the color pixel is gray, determination of whether an intensity of the color pixel is greater than a first threshold;
if it is determined that the intensity of the color pixel is greater than the first threshold, application of a gain to the color pixel; and
if it is determined that the intensity of the color pixel is not greater than the first threshold, changing of the color pixel to a black pixel.

18. A system according to claim 17, wherein identification of one or more regions of the mask image based on the mask image comprises:
for each row of each of the one or more regions, identification of a coordinate pair defining a boundary of a region, and
wherein determination of whether the color pixel of the color image is within one of the one or more regions comprises:
determination of whether the color pixel is located between a coordinate pair defining a boundary of a region within the row of the color pixel.

19. A system according to claim 18, wherein modification of regions of the color image corresponding to the identified regions of the mask image further comprises:
if it is determined that the color pixel is not gray, determination of whether an intensity of the color pixel is greater than a second threshold;
if it is determined that the intensity of the color pixel is greater than the second threshold, changing of the color pixel to a black pixel; and
if it is determined that the intensity of the color pixel is not greater than the second threshold, changing of the color pixel to a gray pixel.

20. A system according to claim 17, wherein modification of regions of the color image corresponding to the identified regions of the mask image further comprises:
if it is determined that the color pixel is not gray, determination of whether an intensity of the color pixel is greater than a second threshold;
if it is determined that the intensity of the color pixel is greater than the second threshold, changing of the color pixel to a black pixel; and
if it is determined that the intensity of the color pixel is not greater than the second threshold, changing of the color pixel to a gray pixel.