Apparatus and method for pre-processing an image with an element of interest - Patents.com
The method preprocesses images by selecting color planes, calculating histograms, and setting thresholds to enhance embedded elements, addressing computational challenges in decoding cluttered images and reducing resource demands, enabling efficient extraction of embedded elements.
Patent Information
- Application Number
- JP2022521188
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-10-11
- Filing Date
- 2020-10-08
- Publication Date
- 2024-12-27
- Estimated Expiration
- 2040-10-08
AI Technical Summary
Existing image processing systems face challenges in efficiently decoding embedded elements, particularly in cluttered images, due to high computational resource demands, which is exacerbated in battery-powered devices and video streams, leading to processing time constraints.
A method and system that preprocesses images by selecting a color plane, calculating histograms, identifying ranges of interest, and determining thresholds based on known color intensities to generate output images that enhance embedded elements and suppress other elements, reducing computational resources needed for decoding.
The method allows for faster and more efficient extraction of embedded elements by minimizing processing time and resource consumption, making it suitable for battery-powered devices and real-time video processing.
Smart Images

Figure 0007607648000001 
Figure 0007607648000002 
Figure 0007607648000003
Abstract
Description
[Technical field]
[0001] The present disclosure relates to pre-processing of an image having an element of interest. Summary of the Invention
[0002] At least some embodiments of the present disclosure are directed to a method for processing an input image having embedded elements, the method including the steps of: calculating, by a processor, one or more histograms of the input image, where each of the one or more histograms is calculated on a color plane in a color space; selecting a color plane in the color space; identifying a range of interest in one of the one or more histograms, where one of the one or more histograms is calculated on the selected color plane; determining, by the processor, a threshold based on the range of interest; and processing, by the processor, the input image using the threshold to generate an output image, where the range of interest is identified based at least in part on known color intensities of the embedded elements.
[0003] At least some embodiments of the present disclosure are directed to a device comprising a processor; and a memory device coupled to the processor and having a program stored for execution by the processor to perform operations including: calculating one or more histograms of an input image, where each of the one or more histograms is calculated on a color plane in a color space; selecting a color plane in the color space; identifying a range of interest in one of the one or more histograms, where one of the one or more histograms is calculated on the selected color plane; determining a threshold based on the range of interest; and processing the input image using the threshold to generate an output image, where the range of interest is identified based at least in part on known color intensities of the embedding elements. [Brief description of the drawings]
[0004] The accompanying drawings, which are incorporated in and constitute a part of this specification, and together with the description, serve to explain the advantages and principles of the present invention.
[0005] [Figure 1] FIG. 1 shows a system diagram of an example image pre-processing system.
[0006] [Figure 2A] FIG. 1 is an example of a flow diagram of an image pre-processing system.
[0007] [Figure 2B] FIG. 2 is another example of a flow diagram of an image pre-processing system.
[0008] [Figure 2C-1] FIG. 1 illustrates a flow diagram of an example image pre-processing system. [Figure 2C-2] FIG. 1 illustrates a flow diagram of an example image pre-processing system.
[0009] [Figure 3A] 1 illustrates an exemplary process of an image pre-processing system. [Figure 3B] 1 illustrates an exemplary process of an image pre-processing system. [Figure 3C] 1 illustrates an exemplary process of an image pre-processing system. [Figure 3D] 1 illustrates an exemplary process of an image pre-processing system. [Figure 3E] 1 illustrates an exemplary process of an image pre-processing system. [Figure 3F] 1 illustrates an exemplary process of an image pre-processing system. [Figure 3G] 1 illustrates an exemplary process of an image pre-processing system. [Figure 3H] 1 illustrates an exemplary process of an image pre-processing system. [Figure 3I] 1 illustrates an exemplary process of an image pre-processing system.
[0010] [Figure 4A] 4A, 4D, and 4G each show an example of an image pre-processing system for pre-processing an image with an element of interest, where each is a single plane image of a workspace photograph. [Figure 4B] 4A, 4D, and 4G each show an example of an image pre-processing system for pre-processing an image with an element of interest, where each is a single plane image of a workspace photograph. [Figure 4C] 4A, 4D, and 4G each show an example of an image pre-processing system for pre-processing an image with an element of interest, where each is a single plane image of a workspace photograph. [Figure 4D] 4A, 4D, and 4G each show an example of an image pre-processing system for pre-processing an image with an element of interest, where each is a single plane image of a workspace photograph. [Figure 4E] 4A, 4D, and 4G each show an example of an image pre-processing system for pre-processing an image with an element of interest, where each is a single plane image of a workspace photograph. [Figure 4F] 4A, 4D, and 4G each show an example of an image pre-processing system for pre-processing an image with an element of interest, where each is a single plane image of a workspace photograph. [Figure 4G] 4A, 4D, and 4G each show an example of an image pre-processing system for pre-processing an image with an element of interest, where each is a single plane image of a workspace photograph. [Figure 4H] 4A, 4D, and 4G each show an example of an image pre-processing system for pre-processing an image with an element of interest, where each is a single plane image of a workspace photograph. [Figure 4I] 4A, 4D, and 4G each show an example of an image pre-processing system for pre-processing an image with an element of interest, where each is a single plane image of a workspace photograph.
[0011] In the drawings, like reference numbers refer to like elements. The above-identified drawings, which may not be drawn to scale, clearly illustrate various embodiments of the present disclosure, however, other embodiments are also contemplated, as noted in the Detailed Description. In all cases, the disclosure describes the disclosure disclosed herein by representing exemplary embodiments, and not by express limitation. It should be understood that numerous other modifications and embodiments may be devised by those skilled in the art that are within the scope and spirit of the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0012] Single and multi-dimensional codes embedded in tags are ubiquitous throughout the world. Applications in retail, shipping, and identification are ubiquitous. The hardware and software required to decode tags ranges from custom equipment (e.g., POS laser scanners) to smartphones with built-in cameras. The image processing software required to decode tags must perform a variety of tasks, including: 1) single or multiple tag identification in a potentially cluttered image, 2) tag orientation (e.g., rotation and translation), and 3) embedded code decoding and error detection / correction.
[0013] The more cluttered a given image is, the more computational resources are needed to process the image. In many cases (e.g., for portable battery-powered devices), computing resources are limited, making processing time a major issue. This issue is compounded when dealing with video streams, where processing time is constrained by frame rate or computing resources are performing multiple simultaneous tasks (e.g., image processing and rendering). Some embodiments of the present disclosure describe systems and methods for processing images with embedded elements to generate an output image, such that the embedded elements in the output image can be extracted with less time and computing resource consumption. Some embodiments of the present disclosure describe methods for pre-processing images that include single or multi-dimensional coding elements (e.g., 2D codes) so that the elements can be decoded faster and more efficiently by decoding software. In some embodiments, the method includes the steps of selecting color channels from an input, which may be a sequence of images or a still image, having one or more embedded elements; processing the color channels of the input to generate data distribution information and separate the embedded element(s) from other elements of the input; determining a threshold based on the processed data; and generating an output image based on the threshold. In some embodiments, the method includes the steps of separating an image into its N constituent colors, selecting one of the N colors, processing that color composition to maximize the embedding element(s) and minimize all other elements, and then generating an output image that is provided to image processing software, e.g., decoding software, for extracting information from the embedded element(s).
[0014] The functions, algorithms, and methodologies described herein may be implemented in software in one embodiment. The software may consist of computer-executable instructions stored on a computer-readable medium or computer-readable storage device, such as one or more non-transitory memories or other types of hardware-based storage devices, either locally or on a network. Furthermore, such functions correspond to modules or processors, which may be software, hardware, firmware, or any combination thereof. Functions may be performed in one or more modules or processors as desired, and the described embodiments are merely examples. The software may be executed on a digital signal processor, ASIC, microprocessor, or other type of processor operating on a computer system, such as a personal computer, server, or other computer system, turning such a computer system into a specially programmed machine.
[0015] In some cases, the embedded element is a one-dimensional or two-dimensional element with a distinguishable symbolic meaning. In some cases, the embedded element is a graphic element. In some embodiments, the embedded element is a code, which may be a one-dimensional or multi-dimensional code. In some cases, the embedded element is an obscure code. An obscure code refers to a code that is not normally visible to the human eye, but may be rendered visible to the human eye or readable by special equipment using special equipment. Examples of obscure codes are codes that are visible at wavelengths that are not visible to the human eye, e.g., infrared codes, ultraviolet codes, or codes that rely on the manipulation of light polarization.
[0016] 1 shows a system diagram of an example image pre-processing system 100. In the illustrated example, system 100 includes image data 110, including embedded elements 112 and other elements 114, an image capture device 130, and a computing device 120, as well as an optional illumination device 140. Image pre-processing system 100 provides output images to image processing software 150 for further processing, such as, for example, code extraction, decoding, etc.
[0017] In some embodiments, the image capture device 130 is a camera or other component configured to capture image data, e.g., a video stream, sequential images, or still images. In some examples, the image capture device 130 may be a camera of a mobile device. In some cases, the image capture device 130 may comprise other components capable of capturing image data, such as a video recorder, an infrared camera, a CCD (charge-coupled device) or CMOS array, a laser scanner, etc. Additionally, the captured image data 110 may include at least one image, a video, a sequence of images (i.e., multiple images taken within a period of time and / or in a certain order), a collection of images, etc., and the term input image is used herein to refer to various exemplary types of image data.
[0018] In some embodiments, lighting device 140 (e.g., a camera flash unit) can emit two or more simultaneous wavelengths and is controllable by computing device 120 and / or imaging capture device 130. In some cases, lighting device 140 can output wavelengths visible to the human eye and wavelengths invisible to the human eye (e.g., infrared or ultraviolet), provided that imaging capture device 130 is sensitive to the selected wavelengths.
[0019] In some embodiments, at least one of the embedding element 112 and / or the other elements 114 has known image attributes, which enables the computing device 120 to select a pre-processing approach based on the known image attributes. Image attributes refer to attributes that are discernible in an image, such as color intensity, texture, etc.
[0020] Computing device 120 may be any device, server, or appliance having computing power, including, but not limited to, a circuit, computer, processor, processing unit, mobile device, microprocessor, tablet computer, etc. In some cases, computing device 120 may be implemented on a shared computing device. Alternatively, components of computing device 120 may be implemented on multiple computing devices. In some implementations, various modules and components of computing device 120 may be implemented as software, hardware, firmware, or combinations thereof.
[0021] In some embodiments, the pre-processing system 100 is designed to pre-process images to generate output images for standard decoding software of single and multi-dimensional coded images (e.g., QR codes) that utilize high visibility materials, especially those tags with retro-reflective materials illuminated by the illumination device 140. Some embodiments of the present disclosure can be used in conjunction with software decoding on resource-limited hardware, such as a smartphone or embedded system with an embedded or connected color camera / imager equipped with a multi-wavelength (e.g., white or RGB light) illumination source. In some cases, the pre-processing system 100 can reduce clutter in the captured image by enhancing the embedded element(s) of interest in the image and suppressing other elements, including the background. In some cases, the pre-processing system 100 is optimized for speed rather than object identification, which makes it useful to scan video streams, sequential images (e.g., ticket scanning), or panoramic static images (e.g., tags on a wall).
[0022] FIG. 2A is an example of a flow diagram of an image pre-processing system. In some cases, the sequence of steps in the flow diagram may not have a precise order. The image pre-processing system first receives an input image (step 210A), which may be a video stream, a sequence of images, or a still image. In some cases, the input image is captured by an image capture device. In some cases, the pre-processing system generates single-plane images (step 215A), each single-plane image corresponding to a color plane in the color space of the input image. Applicable color spaces include, but are not limited to, RGB (red, green, and blue), LAB (e.g., Hunter1948L, a, b color space, CIE1976 (L*, a*, b*) color space), CMYK (cyan, magenta, yellow, and key color (black)), HSV (hue, saturation, and value), HSL (hue, saturation, lightness), HSI (hue, saturation, and intensity), sRGB (standard red, green, and blue) color space. In one example, a single plane image is generated by utilizing a Bayer filter on an input image such that each pixel is composed of a combination of three primary color (e.g., red, green, and blue) subpixels, and a color plane is composed of subpixels of the same color across a rectangular array of pixels.
[0023] For a specific color plane, a new image called P-Image is generated using the color plane data. In one example, the P-Image then contains only the selected color plane data such that the P-Image is one-third the size of the original input image within a color space that has three color planes. As another example, the P-Image can be constructed by replicating the selected color plane data within the remaining color planes such that the P-Image size is equal to the original image size. As an example of an input image within the RGB color space, if the red plane is selected, the corresponding red data is input into the green and blue planes. The P-Image will have an image resolution that is one-third of the original image. As another example of constructing the P-Image, functions F1(selected plane) and F2(selected plane) are applied to the selected single plane image data to generate the data for the remaining color planes, and the P-Image size is equal to the original image size. Examples of functions can be, but are not limited to, linear functions (e.g., Fn(pixel)=K*pixel) or non-linear functions (e.g., Fn(pixel)=If(pixel=<K)Then pixel=0Else pixel=1).
[0024] After the P-Image is generated, it is converted to a grayscale image, for example, to simplify calculations and reduce the amount of time and / or computing resources. The P-Image can be converted to grayscale in several ways. i. If the P-Image uses only the selected single plane data, it is already multi-bit grayscale, ii. If the P-Image is in an RGB format with the selected plane data, it can be converted to a grayscale format by applying a conversion function GS(R, G, B) to generate a grayscale image. Some exemplary functions include, but are not limited to, each pixel having values of R within the red channel, G within the green channel, and B within the blue channel as follows. GS(R,G,B)=[max(R,G,B)+min(R,G,B)] / 2 (1) GS(R,G,B)=(R+G+B) / 3 (2) GS(R,G,B)=0.21*R+0.72*G+0.07*B (3)
[0025] The P-Image can also be converted to 1-bit grayscale by thresholding, where the grayscale pixel values are 1 or 0 depending on whether the P-Image pixel value is greater than a predefined threshold. In cases where multi-bit data is desired, the thresholded pixels can be assigned the values 0 or [(2^Res)-1], where Res is the pixel resolution in bits. For example, if Res=8 bits, the values are 0 to 255.
[0026] The system then calculates one or more histograms of the input image, each histogram corresponding to a single plane of the image (220A). In some embodiments, the system selects a color plane in the color space of the input image (step 225A). In some cases, the color plane is selected based on the embedded element of interest captured in the input image and / or other elements captured in the input image. In some cases, the color plane is selected based on known color characteristics of the embedded element of interest captured in the input image and / or known color characteristics of other elements captured in the input image. For example, for an input image in RGB color space with a monitor in the background, a green plane or a red plane would be selected. In some cases, the color plane can be selected based on knowledge of the image capture device, the lighting device, the embedded element of interest, and image background information, or optionally may be selected by applying a function (e.g., image mean or standard deviation) to the single plane image data to calculate the best candidate. Possible selection criteria may include, but are not limited to, data distribution (i.e., histogram), image noise, image contrast, image statistics, and dynamic range.
[0027] In some cases, step 220A is performed before step 225A. In some cases, step 225A is performed before step 220A. The system then identifies (step 230A) multiple peak values or ranges of interest in one of one or more histograms, where one histogram corresponds to the selected color plane. In some cases, the histogram is filtered to remove high frequency noise. In some cases, convolution matrix filtering is used to smooth the high frequency noise. In one example, the kernel (K) of the filter is a 3×3 matrix K[0:2,0:2], where K[1,1]=0 and K[x<>1,y<>1]=1, which results in simplified calculations when applying the filter. In the above example, the kernel is selected for speed rather than fidelity. Other filters and kernels for filtering can be used. In some cases, the system selects the range of interest in the histogram of the selected color plane based on known color intensities of the embedding elements and / or other elements of the input image. In some cases, the system selects two or more peak values in the histogram by determining local maxima, which will be explained in more detail below.
[0028] The system determines a threshold value based on a number of peak values or values in the range of interest (240A). In some examples, the embedded elements are elements with high color intensity. For example, the embedded elements are retroreflective tags. High intensity elements are often the brightest objects in the input image, e.g., elements with pixel values close to the maximum pixel image value. In some embodiments, the threshold value is calculated as a function of the number of peak values. In some cases, the threshold value is calculated as a function of histogram values in the range of interest.
[0029] The system further processes the input image using the threshold to generate an output image (250A). After setting the Threshold Value, a threshold image file T-Image[N,M]=Threshold(L-Image[N,M],Threshold-Value) is generated. The threshold image file T-Image[N,M] can be passed to other image processing software, e.g., decoding software.
[0030] FIG. 2B is another example of a flow diagram of an image pre-processing system. First, the system illuminates the tag, an example of an element of interest, with a selected color (step 210B). In some cases, the selected color is a primary color. The system captures a single-plane image (step 215B). In some cases, the system may illuminate the tag with another color(s) and capture another single-plane image(s). The system calculates one or more histograms of the input image(s) (step 220B). The other steps are the same as those in FIG. 2A.
[0031] 2C-1 and 2C-2 show a flow diagram of an example of an image pre-processing system. Some of the steps are optional, and some steps may be arranged in a different order. In this example, the system captures or receives an image (step 210C). Then, the system separates the image into M constituent planar images (step 215C). For example, the system separates an RGB image into a red plane image, a green plane image, and a blue plane image. The system generates a histogram of each planar image (step 220C), and then selects a plane P by applying the selection criteria described herein (step 225C). The system determines whether a filter needs to be applied (step 230C), either by evaluating the histogram of the planar image P and / or by the configuration parameters, and if yes, applies a noise filter (235C). Furthermore, the system constructs a peak array [1:N] from the local peak values of the histogram P (240C), and calculates a threshold value TB as a function of the peak array [1:N] (step 245C).
[0032] The system evaluates whether the output image should be a binary image (step 250C), and if yes, sets Min_value=0 and Max_value=1 (step 251C), and if no, sets Min_value=0 and Max_value=Image_max, where Image_max=2^R-1 for an image with R-bit pixels (step 252C). The system constructs a thresholded image T by thresholding all pixels of plane P such that if Pixel<=TV, then Pixel=Min_Value, otherwise Pixel=Max_Value (step 255C). The system receives input as to whether the output image should be a single-plane image (step 260C). The input may depend on the image processing software for receiving the output image. If the output image is not a single-plane image, the system may calculate all image planes [1:M] as a function of plane T (step 265C) and create an output Image-T based on all planes (step 285C). If the output image is a single plane, then output Image-T=PlaneT (step 270C). Optionally, the system formats Image-T for decoding software or other processing software (step 275C). Furthermore, the system transmits or provides Image-T to the decoding software or other processing software (step 280C).
[0033] 3A-3I illustrate one exemplary process of an image pre-processing system. FIG. 3A illustrates an example histogram of an RGB image (top of figure) that is separated into its three constituent color planes (red, green, and blue shown from left to right at the bottom). In each color plane, a range of interest (ROI) is outlined that corresponds to the likely value range of the element of interest. In some cases, the ROI is defined as a percentage of the maximum pixel value, e.g., the top 25% of the range of values (75% of the maximum value relative to the maximum value). The ROIs of each color plane are examined and, depending on the characteristics, one or two planes are selected. In the example of FIG. 3A, the blue plane ROI is not a good candidate because it is uniformly populated with many samples. In an example where the element of interest is the brightest object in the image, the red plane has a very large peak at the bottom end of the ROI that may make it more difficult to find the element of interest. The green plane is the best candidate in this example because it is more sparsely populated with less high frequency noise.
[0034] Once the plane is selected, the system can make a selection as to whether the plane data or the histogram data require filtering. Figure 3B shows a green plane histogram selected from the example RGB image of Figure 3A. Figure 3D shows an unfiltered histogram, Figure 3E shows a histogram filtered with a low pass filter (LPF), and Figure 3F shows a histogram generated from the green plane data filtered by the LPF. In this example, filtering the plane data does not improve the resulting histogram, but filtering the histogram data reduces some noise, especially in the ROI.
[0035] 3B shows an example green plane histogram from FIG. 3A with the ROI delimited by a dotted line. As previously mentioned, the ROI is the range of values most likely to contain the element of interest image data. Although thresholded images are easier to decode, a method that can produce acceptable results, is computationally fast, and does not require thresholding, is to establish a cutoff value that corresponds to the lowest value within the ROI and use that cutoff value to transform the green plane pixel data according to the following rules: If(CPix[X,Y] <Cutoff) Then TPix[X,Y]=0 Else TPix[X,Y]=CPix[X,Y] where CPix[X,Y] is the pixel value from a selected plane (e.g., green plane) and TPix[X,Y] is the pixel value for the plane that is sent to image processing software, e.g., decoding software. A histogram of an exemplary transformed green plane is shown at the bottom of FIG. 3C.
[0036] For cases where thresholding is desired, Figures 3G-3I show three examples of how the threshold value ("Threshold Value") can be calculated. Figure 3G shows the ROI of the example green plane of Figure 3A. In this histogram, the mean value of the ROI is calculated in the usual way. The mean value is subtracted from the maximum value, called "Max", in the histogram (i.e., [2^Resolution-1], where Resolution is the pixel resolution in bits). This difference is divided by 2 and then added to the Mean value to get the Threshold Value as follows: Threshold Value=(Max-Mean) / 2+Mean (6)
[0037] Figure 3H shows the example green plane ROI of Figure 3A. In this histogram, the mean is again calculated for the ROI along with the standard deviation called "SD". The Threshold Value is calculated as follows: Threshold Value=Mean+N*SD (7) Here, N is a number from 1 to 2.
[0038] FIG. 3I shows the example green plane ROI of FIG. 3A. In this histogram, vertical lines indicating peaks have been added to the histogram. In this example, inspection of the peaks shows that they are clustered (shown as circles) around three values, whereas in other cases the peaks may be more distinct. To calculate the Threshold Value in this case, we calculate the difference between the first peak minimum edge (or center in the case of unclustering), Pk1, and the second peak maximum edge (or center in the case of unclustering), Pk2, and label the difference as G. The Threshold Value is calculated as follows: G=Pk1-Pk2 Threshold Value=Pk2+M*G (8) Here, M is a number between 0.25 and 0.75, and Pk1>Pk2.
[0039] Once the selected plane(s) have been processed (eg, thresholded or transformed), the output image is assembled as described above and then passed to software or a processing unit for further processing.
[0040] 4A-4I show an example of an image pre-processing system that pre-processes an image with an element of interest 400. The system calculates a histogram for each color plane image (as shown in FIG. 4A, FIG. 4D, and FIG. 4G), which is shown in FIG. 4B, FIG. 4E, and FIG. 4H. The system selects the red plane image because of its relatively smooth data distribution and the large difference between the white peak (data clustered at about 255) and the dark peak (about 75-115). By inspecting the color plane images, the system finds that the blue plane has objects (e.g., a monitor screen) with higher luminance than the red and green planes. This is underscored in the histogram, where the blue histogram shows much more density in the right-most quadrant of the histogram (i.e., the highest luminance values). The green and red histograms are approximately equal in fourth quadrant density.
[0041] The system selects a threshold using one of the embodiments described above and generates a threshold image as shown in Figures 4C, 4F, and 4I where the element of interest 400 is enlarged. The system evaluates the threshold color planes and shows that it can easily separate the elements of interest in the red and green planes, but not in the blue plane, even if all three planes produce a readable tag image. The thresholded green plane has (slightly) fewer artifacts than the red plane, but the red plane would be a better choice for thresholding because the first peak from the histogram maximum (right end of the red histogram) is better defined in the green plane and easier for software to locate (e.g., using derivatives to locate the local maxima and minima).
[0042] The present invention should not be considered limited to the particular examples and embodiments set forth above, since such embodiments have been described in detail to facilitate exposition of the various aspects of the invention, but rather, the present invention should be understood to extend to all aspects of the invention, including various modifications, equivalent processes, and alternative devices, falling within the spirit and scope of the invention as defined by the appended claims and their equivalents. In addition to the respective embodiments, the following aspects are noted. (Appendix 1) 1. A method for processing an input image having embedded elements, comprising the steps of: calculating, by a processor, one or more histograms of the input image, each of the one or more histograms being calculated on a color plane in a color space; and selecting a color plane within the color space; identifying a range of interest in one of the one or more histograms, the one of the one or more histograms being calculated on the selected color plane; and determining, by the processor, a threshold value based on the range of interest; processing, by the processor, the input image using the threshold value to generate an output image; Including, The method, wherein the area of interest is identified based at least in part on known color intensities of the embedding elements. (Appendix 2) 2. The method of claim 1, wherein the input image is a sequence of images or a still image. (Appendix 3) 2. The method of claim 1, wherein the one of the one or more histograms is selected based on known color characteristics of the embedding elements. (Appendix 4) 2. The method of claim 1, wherein the one of the one or more histograms is selected based on known color characteristics of elements in the image that are different from the embedded element. (Appendix 5) extracting, by a processor, the embedded components from the output image; 2. The method of claim 1, further comprising: (Appendix 6) interpreting coded information from the embedded element, the embedded element comprising a code; 2. The method of claim 1, further comprising: (Appendix 7) 7. The method of claim 6, wherein the code is a two-dimensional code. (Appendix 8) 7. The method of claim 6, wherein the code is a one-dimensional code. (Appendix 9) filtering the one of the one or more histograms with a filter prior to identifying the range of interest; 2. The method of claim 1, further comprising: (Appendix 10) 10. The method of claim 9, wherein the filter comprises a low pass filter. (Appendix 11) 11. The method of claim 10, wherein the kernel of the low pass filter is a 3x3 matrix K[0:2,0:2], where K[1,1] = 0 and K[x<>1,y<>1] = 1. (Appendix 12) 2. The method of claim 1, wherein the output image is a binary image based on the threshold, and a pixel in the output image has a maximum value if the pixel has a color intensity value greater than the threshold, and a pixel in the output image has a minimum value if the pixel has a color intensity value less than or equal to the threshold. (Appendix 13) 13. The method of claim 12, wherein the maximum value is calculated as 2^r-1, where r is a pixel resolution of the image, and the minimum value is 0. (Appendix 14) 2. The method of claim 1, wherein the threshold is a function of histogram values within the range of interest. (Appendix 15) 2. The method of claim 1, wherein the known color intensity of the embedding element is proximate to a highest peak value in the one of the one or more histograms. (Appendix 16) A device, comprising: A processor; a memory device coupled to the processor and configured to store a program for execution by the processor to perform operations, the operations comprising: calculating one or more histograms of the input image, each of the one or more histograms being calculated on a color plane in a color space; and selecting a color plane within the color space; identifying a range of interest in one of the one or more histograms, the one of the one or more histograms being calculated on the selected color plane; and determining a threshold based on the range of interest; and processing the input image using the threshold to generate an output image. The device, wherein the area of interest is identified based at least in part on known color intensities of the embedding elements. (Appendix 17) 17. The device of claim 16, wherein the input image is a sequence of images or a still image. (Appendix 18) 17. The device of claim 16, wherein the one of the one or more histograms is selected based on known color characteristics of the embedding element. (Appendix 19) 17. The device of claim 16, wherein the one of the one or more histograms is selected based on known color characteristics of elements in the image that are different from the embedded element. (Appendix 20) filtering the one of the one or more histograms with a filter prior to identifying the range of interest; 17. The device of claim 16, further comprising:
Claims
1. 1. A method for processing an input image having embedded elements, comprising the steps of: calculating, by a processor, one or more histograms of the input image, each of the one or more histograms being calculated on a color plane in a color space; and selecting a color plane within the color space; identifying a range of interest in one of the one or more histograms, the one of the one or more histograms being calculated on the selected color plane; and determining, by the processor, a threshold value based on the range of interest; processing, by the processor, the input image using the threshold value to generate an output image; Including, The method, wherein the area of interest is identified based at least in part on known color intensities of the embedding elements.
2. The method of claim 1 , wherein the input image is a sequence of images or a still image.
3. extracting, by a processor, the embedded components from the output image; The method of claim 1 or 2, further comprising:
4. interpreting coded information from the embedded element, the embedded element comprising a code; The method of any one of claims 1 to 3, further comprising:
5. The method of claim 4 , wherein the code is a two-dimensional code.
6. The method of claim 4 , wherein the code is a one-dimensional code.
7. filtering the one of the one or more histograms with a filter prior to identifying the range of interest; The method of any one of claims 1 to 6, further comprising:
8. The method of claim 7 , wherein the filter comprises a low pass filter.
9. 9. The method of claim 8, wherein the kernel of the low pass filter is a 3x3 matrix K[0:2,0:2], where K[1,1]=0 and K[x<>1,y<>1]=1.
10. 10. The method of claim 1, wherein the output image is a binary image based on the threshold, and a pixel in the output image has a maximum value if the pixel has a color intensity value greater than the threshold, and a pixel in the output image has a minimum value if the pixel has a color intensity value less than or equal to the threshold.
11. The method of any one of claims 1 to 10, wherein the threshold is a function of histogram values within the range of interest.
12. The method of any one of claims 1 to 11, wherein the known color intensity of the embedding element is proximate to a highest peak value in the one of the one or more histograms.
Citation Information
Patent Citations
Method and device for extracting specified image area
JP1997044670A
System and method for detecting the authenticity of products
US20180349695A1
Enhanced images associated with display devices
US9706102B1