This application claims priority from European Application No. 15307100.6, entitled “Methods and Systems For Image Processing Of Digital Images,” filed on Dec. 22, 2015, the contents of which are hereby incorporated by reference in its entirety.
The present disclosure generally relates to methods and systems for image processing and, more particularly, to methods and systems that apply image processing to local regions of an image.
Some types of image processing are applied locally, e.g., applied to separate regions of an image. For example, a declipping process may be applied only to clipped pixels in an image, e.g., overexposed pixels. Local image processing techniques typically determine regions of the image to be processed, and then image processing is performed on each region separately. For example, a declipping process may first determine which regions of an image include overexposed pixels, and then may apply a declipping process to each overexposed region. Processing separate regions of an image can provide advantages, e.g., efficiency by avoiding unnecessary processing, localized effects, etc.
However, in many cases it may be helpful for regions of an image to be grouped together, and for the image processing to take into account the different groups. Described herein are various systems and methods for grouping image regions using distances between morphological skeletons of the image regions, and performing image processing based on the groups.
In various embodiments, an image can be obtained, and multiple image regions of the image can be determined. For example, the image regions can be determined by identifying overexposed regions of the image. A morphological skeleton can be determined for each of the image regions. Distances between image regions can be determined based on the morphological skeletons. For example, a shortest distance between image regions can be determined based on distances between endpoints of the morphological skeletons of the regions. Multiple groups of two or more of the image regions can be determined based on the distances. For example, image regions that are closer together than a certain distance value can be grouped together. The image can then be processed based on the groups. For example, declipping can be performed based on the different groups of image regions, which can be overexposed regions of the image.
It should be understood that the drawings are for purposes of illustrating the concepts of the disclosure and are not necessarily the only possible configurations for illustrating the disclosure.
Some types of image processing are global, i.e., applied equally to all pixels in an image. For example, a global blur filter can apply the same amount of blur to an entire image. On the other hand, some types of image processing are local. For example, a declipping process may be applied only to clipped pixels in an image, e.g., overexposed pixels. Local image processing techniques typically determine regions of the image to be processed, and then image processing is performed on each region separately. For example, a declipping process may first determine which regions of an image include overexposed pixels, and then may apply a declipping process to each overexposed region.
Processing separate regions of an image can provide advantages, e.g., efficiency by avoiding unnecessary processing, localized effects, etc. However, in many cases it may be helpful for regions to be grouped together, and for the image processing to take into account the different groups of regions. For example, an image may include different objects with different hues, saturations, textures, etc. If the image was captured under bright lighting, several of the objects might have been overexposed, and each of these objects may have multiple patches of overexposure, e.g., several bright spots, such as reflections. Grouping together all of the overexposed regions of a particular object may provide advantages to a declipping process. For example, a declipping process may be able to process each group more coherently, that is, regions that belong to the same object can be processed so that they have the same look. In this way, for example, all of the overexposed regions of a first object in an image can be declipped by the same amount to give a more coherent appearance. Likewise, all of the overexposed regions of a second object in the image can be declipped by the same amount, and this amount may be different than the amount of declipping for the first region.
Distance is one factor that can be used to determine whether two regions should be grouped together. For example, regions that are close to each other may be more likely to belong to the same object or type of object. Described herein are various systems and methods for grouping image regions based on distances between the regions' morphological skeletons. In this way, for example, various local image processing techniques may take into account different groups of image regions to produce more coherent image processing of the image regions.
Using morphological skeletons (e.g., medial axis representations) to determine a distance between regions can, for example, provide accurate results at a reduced computational cost, particularly in cases involving complex region shapes, such as irregular shapes, concave surfaces, shapes with holes, etc. For example, as one skilled in the art will appreciate after reading the present disclosure, morphological skeletons can determine more accurate distances than methods that approximate the shape of the object by simply using rectangles or circles as bounding boxes. Likewise, it will be appreciated that morphological skeletons can determine distances at much less computational cost than, for example, brute force methods that compare every point on the perimeter of one region with each point on the perimeter of another region.
Although declipping processes are used as examples below, one skilled in the art will readily understand that other types of image processing can be implemented using the principles described herein. One skilled in the art will readily understand that other types of image processing can benefit from grouping regions as well. For example, any type of image processing that uses a trial and error method may be more efficient by using the results of one region as the starting values for another region in the same group.
The techniques described herein may be implemented in any kind of device that can perform image processing, such as a personal computer executing image processing software, an image collection device, e.g., a camera, video camera, etc., that includes image processing functionality, a smart phone, a tablet computer, etc. For example,
Optical elements 104 may be connected to the bus 116 to allow optical elements 104 to be controlled by processor 114. For example, processor 114 may adjust the focus, the f-stop, or other properties of optical elements 104 through bus 116.
Processor 114 may be controlled by image collection and processing programs contained in a read only memory (ROM) 120 that can be accessible from bus 116. The programs do not have to be in a ROM, but may be contained in any type of long-term memory, such as a disk drive, a flash card, or an electrically erasable programmable read only memory (EEPROM), among others. Generally, the programs in ROM 120 may include image processing procedures discussed with respect to
The digital image may be stored before or after processing in a separate digital image storage 122, such as a digital video tape, a recordable optical disk, a hard drive, and the like. Digital image storage 122 may also be combined with the program storage. For example, a disk drive may be used both to store both programs and digital images.
The images may be displayed on a display unit 124 that can be connected to bus 116. Controls 126 can also be connected to bus 116 to control the collection and processing of the images by processor 114. Such controls 126 may include keypads, selection knobs, and separate buttons for functions such as zooming, focusing, starting the collection of images, etc.
Images may be transferred from image collection device 100 through a network interface controller (NIC) 128 that can be connected to bus 116. NIC 128 can be connected to an external local area network (LAN) 130, which may be used to transfer the images to an external device 132 located on LAN 130.
The arrangement of the functional blocks presented above is only one possible arrangement, and any number of other arrangements may be used. For example, NIC 128 may be directly coupled to an area of RAM 118 to allow direct memory access, or DMA, transfers to occur directly to and from RAM 118 of the digital collection device. This may accelerate data transfers when a large amount of data is involved, such as in a high definition digital video camera. Further, in other arrangements controls 126 and display 128 may be combined into a single unit. In yet other combinations, display 128 may be directly connected to detector controller 112 to off-load the display function from processor 114.
Referring to
Regions of the image can be determined (202). For example, image 300 can be processed to determine regions in which the pixel values are clipped, e.g., regions that are overexposed.
A morphological skeleton can be determined (203) for each region. For example,
Distances between the morphological skeletons can be determined (204). For example, the endpoints of the morphological skeletons can be used to determine the distances, as described in more detail below with respect to
For the sake of clarity, only a few of the distances between endpoints are illustrated.
The image regions can be grouped (205) based on the distances. For example, the shortest distance between each pair of clipped regions can be compared to a distance value, such as a threshold distance, and the pair of clipped regions can be grouped together if the shortest distance between them is less than the distance value. In
In various embodiments, grouping can also be based on additional factors other than distance between morphological skeletons. For example, the average color of an image region can be compared with the average color of another region to determine whether a difference in average color is within an average color difference value, such as a threshold average color difference. This factor can be used together with the shortest distance between the two regions described above. For example, the regions can be grouped together only if the difference in average color is within the average color difference value and the shortest distance is within the distance value.
The image can be processed (206) based on the groups. For example, declipping can be performed on each group separately, rather than on each region separately. In this way, for example, the declipping of the clipped regions 301 may be more focused on the underlying objects that encompass the clipped regions.
One skilled in the art will understand that other points on the morphological skeletons can be used in various embodiments. For example, points could be placed on a morphological skeleton at regular intervals for use in the distance determinations. This can increase the accuracy of the distance determinations at the expense of increasing the number of determinations.
Apparatus 1100 can include a processor 1110 for executing the computer-executable programs that perform various techniques described above. The programs may be stored in a memory 1120, which may also store image data. A bus 1130 can connect processor 1110 and memory 1120 to each other and to other components of apparatus 1100. In some embodiments, apparatus 1100 may include multiple processors or processors with multiple processing cores, which may execute various parts of programs in parallel.
A mass storage device 1140 can be connected to bus 1130 via a disk controller 1150. Mass storage device 1140 may contain image or video data, as well as an operating system, other programs, other data, etc. Disk controller 1150 may operate according to Serial Advanced Technology Advancement (SATA), Small Computer System Interface (SCSI), or other standards, and may provide connection to multiple mass storage devices.
A video display 1160 can be connected to bus 1130 via a video controller 1170. Video controller 1170 may provide its own memory and graphics-processing capability for use in implementing or accelerating certain aspects of the image region grouping processes, as well as for providing the functions of image and UI display.
An input device 1180 can be connected to bus 1130 via an input/output (I/O) controller 1190. I/O controller 1190 may utilize one or more of USB, IEEE 1394a, or other standards. Multiple input devices may be connected, such as keyboards, mice, and trackpads. Image and video capture devices may also be connected to the system through I/O controller 1190 or additional I/O controllers implementing other I/O standards. Networking functionality may be provided by I/O controller 1190 or a separate I/O controller.
It will be recognized by one skilled in the art that various aspects of the methods of the present disclosure may be executed in parallel on multiple systems to provide faster processing. For instance, in the case of processing a video file, frames may be divided among tens or hundreds of computing systems to provide parallel processing. Particular components, such as video display 1160, may be omitted in some systems in some operating environments. Furthermore, multiple systems may utilize shared storage accessed via an I/O bus or via a network.
It will be further recognized by one skilled in the art that apparatus 1100 may be implemented within an image capture device such as a digital still camera or digital video camera. Various techniques disclosed herein may be implemented by apparatus 1100 at the time of image capture to group image regions.
It should also be appreciated that although various examples of various embodiments have been shown and described in detail herein, those skilled in the art can readily devise other varied embodiments that still remain within the scope of this disclosure.
All examples and conditional language recited herein are intended for instructional purposes to aid the reader in understanding the principles of the disclosure and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions.
Moreover, all statements herein reciting principles, aspects, and embodiments of the disclosure, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future, i.e., any elements developed that perform the same function, regardless of structure.
Thus, for example, it will be appreciated by those skilled in the art that the block diagrams presented herein represent conceptual views of illustrative circuitry, electrical components, optical components, etc., embodying the principles of the disclosure. Similarly, it will be appreciated that any flow charts, flow diagrams, state transition diagrams, pseudocode, and the like represent various processes which may be substantially represented in computer readable media and so executed by a computer or processor, whether or not such computer or processor is explicitly shown.
The functions of the various elements shown in the figures may be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software. When provided by a processor, the functions may be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which may be shared. Moreover, explicit use of the term “processor” or “controller” should not be construed to refer exclusively to hardware capable of executing software, and may implicitly include, without limitation, digital signal processor (“DSP”) hardware, read only memory (“ROM”) for storing software, random access memory (“RAM”), and nonvolatile storage.
Other hardware, conventional and/or custom, may also be included. Similarly, any switches shown in the figures are conceptual only. Their function may be carried out through the operation of program logic, through dedicated logic, through the interaction of program control and dedicated logic, or even manually, the particular technique being selectable by the implementer as more specifically understood from the context.
It is noted that the use of “and/or” and “at least one of”, for example, in the cases of “A and/or B” and “at least one of A and B”, is intended to encompass the selection of the first listed option (A) only, or the selection of the second listed option (B) only, or the selection of both options (A and B). As a further example, in the cases of “A, B, and/or C” and “at least one of A, B, and C”, such phrasing is intended to encompass the selection of the first listed option (A) only, or the selection of the second listed option (B) only, or the selection of the third listed option (C) only, or the selection of the first and the second listed options (A and B) only, or the selection of the first and third listed options (A and C) only, or the selection of the second and third listed options (B and C) only, or the selection of all three options (A and B and C). This may be extended for as many items as listed.
In the claims hereof, any element expressed as a means for performing a specified function is intended to encompass any way of performing that function including, for example, a combination of circuit elements that performs that function, software in any form, including, therefore, firmware, microcode or the like, combined with appropriate circuitry for executing that software to perform the function, etc. The disclosure as defined by such claims resides in the fact that the functionalities provided by the various recited means are combined and brought together in the manner which the claims call for. It is thus regarded that any means that can provide those functionalities are equivalent to those shown herein.
Number | Date | Country | Kind |
---|---|---|---|
15307100.6 | Dec 2015 | EP | regional |