Noise reduction and feature enhancement for thermal imaging cameras
By introducing noise reduction and feature enhancement filters into the signal processing chain of the thermal imager, the problem of insufficient image clarity of the thermal imager is solved, and the image clarity and object recognition ability are improved while high temperature resolution. Effect.
Patent Information
- Application Number
- CN202380048644.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-08-30
- Filing Date
- 2023-06-19
- Publication Date
- 2025-02-14
AI Technical Summary
While existing thermal imagers provide high temperature resolution, the image clarity is insufficient, especially in low visibility environments, making it difficult to effectively identify objects.
By introducing noise reduction filters and feature enhancement filters into the signal processing chain, combined with weight lookup tables and gain lookup tables, reduce noise and enhance image contrast, thereby improving image clarity.
It achieves improving the clarity and object recognition capabilities of thermal image camera images without sacrificing temperature details, providing a more easily recognizable display image while maintaining high-resolution temperature information.
Smart Images

Figure CN119452670A_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims the benefit of U.S. Provisional Application Serial No. 63 / 373,984 filed on August 30, 2022, U.S. Provisional Application Serial No. 63 / 369,747 filed on July 28, 2022, and U.S. Provisional Application Serial No. 63 / 366,687 filed on June 20, 2022, all of which are incorporated herein by reference in their entirety. Technical Field
[0003] The present disclosure relates generally to thermal cameras, and more particularly to thermal cameras for use in applications requiring image clarity. Background Art
[0004] The increasing availability of high performance, low cost uncooled thermal imaging devices, such as those based on bolometer focal plane arrays (FPA), has enabled the design and production of mass-produced thermal imaging cameras. In applications such as firefighting and other reduced visibility situations, it would be beneficial for thermal imaging camera modules for such uses to have an operating mode that enhances image clarity. Summary of the invention
[0005] The devices and methods of the present disclosure each have several innovative aspects, no single one of which is solely responsible for its desirable attributes. Without limiting the scope as expressed by the claims which follow, their more prominent features will now be discussed briefly.
[0006] Thermal imagers, particularly less complex, inexpensive designs, may offer high temperature resolution at the expense of a less clear displayed image. For many low visibility uses, such as firefighting, it may be advantageous to sacrifice some temperature detail for clarity and object identification. It may be beneficial to apply filters in series to reduce visible noise and reconstruct feature contrast without sacrificing the actual detailed temperature information available in the captured scene, in order to provide the user with a displayed image that allows for easy object identification, while still providing the raw data to a thermography module to maintain high resolution of temperature information when desired. In addition, more efficient and more useful edge highlighting techniques are disclosed. For low contrast or very low contrast scenes, such as a smoke-filled room, other specific filters and equalization methods may be applied.
[0007] In a first aspect, a method for reducing noise in a thermal image in a thermal imager may be described, the thermal imager comprising a thermal imaging sensor and image processing capabilities of a signal processing chain for implementing a processor to perform functions. The method comprises receiving partially processed image frame data at a noise reduction filter in the signal processing chain, the partially processed image frame data comprising a frame of pixel values; and, for each pixel of a plurality of pixels of the frame: calculating n delta values for the pixel, each delta value comprising a difference between the pixel value of the pixel and a pixel value of a nearby or nearest neighbor pixel; deriving n weight values based on a weight lookup table (LUT), each weight value corresponding to one of the n delta values; summing the n weight values; deriving n weighted delta values, each weighted delta value being equal to the product of the corresponding weight and delta value; summing the n weighted delta values; and forwarding a filtered pixel value to the signal processing chain, the filtered pixel value being equal to the received pixel value of the pixel minus the sum of the n weighted delta values divided by the sum of the n weight values.
[0008] In some embodiments, the weight LUT comprises discrete values of a function that produces weights that decrease as the delta value increases. In some embodiments, the function is a Gaussian curve centered at zero delta. In some embodiments, the method further comprises determining the contrast of the scene based on the width of a histogram of image intensity values of at least one of all pixels or all subsets of pixels in an image frame of the scene; and varying the width of the Gaussian curve depending on the width of the histogram.
[0009] In some embodiments, the method further comprises, for each pixel in the plurality of pixels: applying a low pass filter (LPF) to the pixel to generate an LPF pixel value; subtracting the LPF pixel value from the received pixel value of the pixel; applying a high pass filter (HPF) to the LPF pixel value to generate an HPF pixel value; applying a variable gain according to the gain LUT to the HPF pixel value; adding the LPF pixel value to the pixel value derived from the gain LUT to derive a feature enhanced pixel value; and passing the feature enhanced pixel value forward to the signal processing chain. In some embodiments, the gain LUT boosts pixel values whose values are above or below a predetermined threshold of zero, and if the pixel is within the predetermined threshold of zero, then the pixel value is left unchanged.
[0010] In some embodiments, the feature enhancement filter is located after the noise reduction filter in the signal processing chain.
[0011] In a second aspect, a method for enhancing features in a thermal image in a thermal imager may be described, the thermal imager comprising a thermal imaging sensor and image processing capabilities for implementing a signal processing chain in which a processor performs functions. The method comprises receiving a frame of partially processed image frame data comprising pixel values at a feature enhancement filter in the signal processing chain; and, for each of a plurality of pixels of the frame: applying a low pass filter (LPF) to the pixel to generate an LPF pixel value; subtracting the LPF pixel value from the received pixel value of the pixel; applying a high pass filter (HPF) to the LPF pixel value to generate an HPF pixel value; applying a variable gain to the HPF pixel value according to a gain LUT; adding the LPF pixel value to a pixel value derived from the gain LUT to derive a feature enhancement pixel value; and passing the feature enhancement pixel value forward to the signal processing chain.
[0012] In some embodiments, the gain LUT boosts pixel values whose values are above or below a predetermined threshold of zero, and leaves the pixel value unchanged if the pixel is within the predetermined threshold of zero.
[0013] In some embodiments, the method further includes, for each pixel of the plurality of pixels: calculating n incremental values for the pixel, each incremental value comprising the difference between the pixel value of the pixel and the pixel value of a nearby or nearest neighbor pixel; deriving n weight values corresponding to each incremental value from a weight lookup table (LUT); summing the n weight values; deriving n weighted incremental values, each weighted incremental value being equal to the product of the corresponding weight and incremental value; summing the n weighted incremental values; and passing a filtered pixel value forward to the signal processing chain, the filtered pixel value being equal to the quotient of the received pixel value of the pixel minus the sum of the n weighted incremental values divided by the sum of the n weight values.
[0014] In some embodiments, the weight LUT contains discrete values of a function that produces weights that decrease as the delta value increases. In some embodiments, the function is a Gaussian centered at zero delta. In some embodiments, the method further comprises determining the contrast of the scene based on the width of a histogram of image intensity values for all pixels or at least one of a subset of pixels in an image frame of the scene; and varying the sigma of the Gaussian depending on a predetermined value of the contrast. In some embodiments, the method further comprises determining the contrast of the scene based on the width of a histogram of image intensity values for all pixels or at least one of a subset of pixels in an image frame of the scene; and varying the width of the gain LUT depending on a predetermined value of the contrast.
[0015] In some embodiments, the feature enhancement filter is located after the noise reduction filter in the signal processing chain.
[0016] In some embodiments, the method further includes receiving image frame data at a shading element and an edge highlighting filter element in a signal processing chain, the image data comprising a frame of pixel values; assigning a color to each pixel in a manner corresponding to a predetermined relationship between the color and at least one of a pixel intensity or a scene temperature of an area of an imaged scene corresponding to a given pixel, wherein the color is assigned from a primary color lookup table (LUT); applying an edge filter to the frame pixels to generate a map of edge intensity values for each pixel; converting the edge intensity values into a histogram of discrete edge intensity bins (bins), the discrete edge intensity bins comprising a plurality of edge intensity bins divided into a predetermined number of bins corresponding to pixel edge intensities above a predetermined value; creating a series of color LUTs, each color LUT in the series comprising a brightness shift from the primary color LUT, wherein the number of color LUTs corresponds to the predetermined number of bins, and the brightness shift between each color LUT corresponds to a total desired shift of maximum edge intensity divided by the predetermined number of bins; and replacing the color assigned from the primary color LUT to each pixel having a pixel edge intensity above the predetermined value with a color from the shifted LUT corresponding to the edge intensity bin of the respective pixel.
[0017] In a third aspect, a method for improving image contrast of a low contrast imaging scene may be described. The method includes determining the contrast of the scene by the width of a histogram of image intensity values of all pixels or all subsets of pixels in an image frame of the scene; and changing the linearity of equalization applied to the pixel values so that the higher the linearity, the narrower the width of the intensity histogram.
[0018] In a fourth aspect, a column noise correction filter method for a digital image frame of input pixel values arranged as a series of rows and columns can be described. The method includes, for each column of the image frame: dividing the pixels of the column into blocks of n pixels; creating a first measure of central tendency for each block; grouping each block with m adjacent blocks from adjacent columns; creating a second measure of central tendency of the first central tendency value for each grouped m blocks; and subtracting the second measure of central tendency from the first measure of central tendency to create a column noise correction value, which is subtracted from each corresponding input pixel to create a column noise filtered image frame.
[0019] In some embodiments, row noise correction values are further interpolated between adjacent rows before being applied.
[0020] In some embodiments, the first measurement is an average and the second measurement is a median.
[0021] In some embodiments, the tiles are selected to overlap.
[0022] In some embodiments, n=one of 8 or 16, and m=5.
[0023] In some embodiments, the method further comprises determining the contrast of the scene based on the width of a histogram of image intensity values of all pixels or at least one subset of pixels in an image frame of the scene, and applying a column filter step to the column if the contrast is below a predetermined value.
[0024] In a fifth aspect, a row noise correction filter method for a digital image frame of input pixel values may be described. The method includes, for each row of the image frame: creating a first measure of central tendency for the row of all pixels in the row; dividing the row into blocks of k pixels; creating a second measure of central tendency for the pixels in each block; for each block, subtracting the second measure of central tendency from the first measure of central tendency to create an intermediate correction factor; creating a third measure based on the intermediate correction factor; creating a row noise correction factor comprising the difference between the intermediate product and the third measure; and subtracting the row noise correction value from each corresponding input pixel to create a row noise filtered image.
[0025] In some embodiments, the first measurement is the mean, the second measurement is the median, and the third measurement is the mean.
[0026] In some embodiments, k=7.
[0027] In some embodiments, the method further comprises determining the contrast of the scene based on the width of a histogram of image intensity values of all pixels or at least one of a subset of pixels in an image frame of the scene, and applying a row filter step to the columns if the contrast is below a predetermined value.
[0028] In a sixth aspect, a method for highlighting edge features in a thermal image in a thermal imager may be described, the thermal imager comprising a thermal imaging sensor and image processing capabilities for implementing a signal processing chain for processor execution functions. The method comprises: receiving image frame data at a shading element and an edge highlighting filter element in a signal processing chain, the image data comprising a frame of pixel values; assigning a color to each pixel in a manner corresponding to a predetermined relationship between the color and at least one of a pixel intensity or a scene temperature of an area of an imaged scene corresponding to a given pixel, wherein the color is assigned from a primary color lookup table (LUT); applying an edge filter to the frame pixels to generate a map of edge intensity values for each pixel; converting the edge intensity values into a histogram of discrete edge intensity intervals, the discrete edge intensity intervals comprising a plurality of edge intensity intervals divided into a predetermined number of intervals corresponding to pixel edge intensities above a predetermined value; creating a series of color LUTs, each color LUT in the series comprising a luminance shift from the primary color LUT, wherein the number of color LUTs corresponds to a predetermined number of intervals and the luminance shift between each color LUT corresponds to a total desired shift of maximum edge intensity divided by the predetermined number of intervals; and replacing the color assigned from the primary color LUT to each pixel having a pixel edge intensity above the predetermined value with a color from the shifted LUT corresponding to the edge intensity interval of the respective pixel. BRIEF DESCRIPTION OF THE DRAWINGS
[0029] The above aspects and other features, aspects and advantages of the present technology will now be described in conjunction with various embodiments and with reference to the accompanying drawings. The illustrated embodiments are merely examples and are not intended to be limiting. Throughout the drawings, similar symbols generally identify similar components unless the context otherwise dictates.
[0030] Figure 1 An exemplary block diagram of the basic elements of a thermal imager is shown.
[0031] Figure 2 An exemplary block diagram of parts of a signal processing chain according to some embodiments is shown.
[0032] Figure 3 An exemplary block diagram of parts of a signal processing chain according to some embodiments is shown.
[0033] Figure 4 An exemplary block diagram of a noise reduction filter according to some embodiments is shown.
[0034] Figure 5 An exemplary weight LUT is shown in accordance with some embodiments.
[0035] Fig. 6A and 6B Shows Figure 5Examples of images before and after the filter.
[0036] Fig. 7A An exemplary block diagram of a feature enhancement filter according to some embodiments is shown.
[0037] Figure 7B An exemplary lifting LUT is shown in accordance with some embodiments.
[0038] Fig. 8A and 8B Examples of images before and after the filter of FIG. 7 are shown.
[0039] Fig. 9 and 10 A flow chart of an exemplary filter method is shown.
[0040] Fig.11 An example of developing an edge strength map is illustrated.
[0041] Fig.12 A flow chart of an exemplary edge highlighting method is shown.
[0042] Fig.13 The grouping of pixels of an exemplary embodiment of a row-column filter is illustrated.
[0043] Fig.14A and 14B Shows Fig.13 Steps of a specific embodiment of the filter.
[0044] Fig.15A , 15B 15C illustrate an exemplary method for changing histogram equalization properties depending on scene contrast.
[0045] Fig.16A and 16B Modifications to an exemplary filter that may be determined by scene contrast are illustrated. DETAILED DESCRIPTION
[0046] In order to describe the innovative aspects of the present disclosure, the following description is directed to certain embodiments. However, those skilled in the art will readily appreciate that the teachings herein can be applied in many different ways.
[0047] Generally described, embodiments of the present disclosure relate to improving the image clarity of a displayed image of a thermal imager. Generally speaking, raw image data from a thermal imager consists of frames of pixels, where the raw pixel data for each pixel is a digital value directly related to the temperature of the corresponding area of the imaged scene. Thus, the raw data can be optimized to provide the highest possible resolution of temperature differentiation, taking into account the signal detection and signal attenuation characteristics of the camera imaging system.
[0048] When displaying thermal image data to a user, fine temperature resolution may not always result in clarity of visible objects, since the temperature profiles of scene elements may not correspond exactly to their physical shapes, and real-world scenes typically contain a limited number of distinct temperatures. For many thermal imager applications, such as firefighting, fine temperature differentiation is useful, but the ability to "see in the dark" is also desirable to identify the location of objects in dark and / or smoky environments.
[0049] Embodiments of a thermal imager image processing architecture are disclosed herein that use a dual-path signal processing chain to address image clarity issues while maintaining high temperature resolution. On one path, the signal processing chain uses raw thermal image data directly to determine the temperature corresponding to a given pixel signal intensity, a process known as thermography. On a second path, the signal processing chain applies a series of noise reduction and contrast enhancement filters to the raw data. The second path improves object clarity in the thermal image display, while the first path maintains thermal resolution. The data from the two paths can be combined in various ways disclosed herein.
[0050] Figure 1 The general elements of a thermal imager 100 are shown. The thermal sensor 102 is commonly referred to as a focal plane array (FPA), which is typically an array of photodetectors that respond to light in the thermal spectral band. The light is focused onto the sensor 102 by an optical device 103. A readout electronics device is typically included in the FPA, which samples the photodetector pixels in a timed manner to read out digital values in successive frames of digital video data. The sensor video output is transmitted to a signal processing chain 105, which is typically image processing and display formatting software executed on one or more processing and / or logic elements. The physical processing elements can reside in any appropriate part of the camera system in a unit or distributed manner. The fully processed data is typically provided to a display 160 for the user. The current disclosure is primarily directed to novel elements of the signal processing chain 105.
[0051] Figure 2 Elements of a signal processing chain 105 are shown. Thermal sensor data from the FPA 102 (particularly for inexpensive, mass-produced thermal imagers) is subject to various degradation effects and typically requires extensive image processing steps before it can be used. Examples of such processing include pre-processing 110, which may include processing such as frame averaging and conversion to a digital format; data correction 120, including processing such as bad pixel replacement and gain / offset correction; and pre-filters 130, such as gradient filtering. These image processing steps do not typically degrade temperature resolution because they represent corrections due to sensor and / or optics degradation effects and not actually due to scene temperature changes.
[0052] After these processing steps, the signal path may diverge. The corrected data is sent to the temperature recording module 140, which converts the pixel data that depends on the scene temperature into the actual temperature of the portion of the scene corresponding to the given pixel through various techniques. The corrected data can also be sent to the image enhancement and colorization module 200. The image enhancement and colorization module 200 can improve the image quality and practicality of the image displayed to the user. This path will not ensure the maintenance of temperature resolution, but will address image clarity, object recognition and color interpretation issues. The temperature output of the temperature recording module 140 can be used by the image enhancement and colorization module 200 to combine the high resolution temperature data with the clarity enhancement data to provide a display of both.
[0053] Figure 3 Elements of an example image enhancement and colorization module 200 are shown. Elements 210 and 220 illustrate the functionality of a series combination of a noise reduction filter and a contrast enhancement filter, in this case a high pass filter (HPF) lookup table (LUT) boost filter as an example. Depending on the intended use of the camera, the outputs of these filters can be passed directly to an AGC (e.g., histogram equalization (HE)) and colorization module 250 for display 160. Alternatively, the filter outputs can be directed to other image enhancement modules, such as separating scene temperatures into ranges or zones 230 for temperature selective colorization, which is very useful for firefighting to make dangerous temperatures clearly discernible. Another possibility is to identify edges 240 and create an edge map 270, resulting in highlighted edges 260 for display 160.
[0054] Example Noise Reduction Filter
[0055] Figure 4 An example embodiment of a noise reduction filter is illustrated. As an example, a 3x3 kernel is used, but kernels of other sizes may be used, for example, any XxY kernel within a reasonable size may be used. The sensor 102 provides an image value P corresponding to each pixel of the imaging sensor. x,y This data stream, which may have been pre-processed as described above, is passed along the signal processing chain to the filter 210. x,y , using a 3x3 kernel of 8 nearest neighbor pixel values N1 to N8. Calculate eight delta values Δ n =P x,y -N n. The center value can also be used without decrementing, so n can be, for example, 8 or 9. These incremental values are sent along the bifurcated paths. On one path, eight (or 9) weight values W1 to W8 are derived from a lookup table (LUT). There are several advantages to using a LUT to derive the weights. First, it is computationally simple, allowing fast operation on any processor that executes the signal processing chain. Moreover, the LUT enables a flexible design that is easy to change, and even complex weighting functions are easy to implement and still produce results quickly.
[0056] For this particular filter, the weighting function can be various types of center weighting functions such as Figure 5 The central step function or central Gaussian function shown in FIG. 1 is closer to the central pixel P x,y The neighboring pixels with the same value are given higher weights. The weights are summed, as Figure 4 As shown in 权重 =∑W n .
[0057] On the other path, multiply the increment by the weight and sum the weight increment products, ∑ 加权增量 =∑W n *Δ n .
[0058] The resulting filtered pixel value is:
[0059]
[0060] The results are respectively Fig. 6A and 6B The images before and after filtering in are shown in . As can be seen, using a center-weighted weighting function, pixels with small deltas (noise) are suppressed, while pixels with large deltas (edges) are softened. Visual clarity is greatly improved, but the relationship between pixel value and temperature may be affected. This effect is acceptable because the unfiltered data is still passed directly to the temperature recording module. Larger kernels (e.g., two or more levels of nearest neighbors) and other modifications may be possible and are within the scope of the present disclosure. Boundary pixels can be treated in various ways, such as mirroring neighbors inside the boundary to form a complete kernel.
[0061] Example contrast enhancement filter
[0062] Once the image has been softened and denoised, it may be desirable to reconstruct contrast enhancement since there will be little noise remaining to be boosted in the filtered image. Fig. 7A An embodiment of the contrast enhancement filter 220 is shown in FIG. x,y滤波From the noise reduction filter 210 is passed to the contrast enhancement filter 220. A low pass filter (LPF) (such as the 5X5 Gaussian filter shown in the figure) is applied to each pixel and then subtracted from each pixel. The result is high pass filtered and then gain, again, derived from the LUT. Figure 7B An example LUT embodiment is shown. The gain function does not apply gain to pixels close to zero, while boosting pixels outside a certain threshold above or below zero. Thus, the remaining low contrast pixels (which may include residual noise) are suppressed, and higher value pixels (image features) are boosted. The LPF value is then added back to the boost value to fill the image with high and low spatial frequency features.
[0063] Fig. 8A and 8B The images before and after contrast enhancement are shown in Figure 2. The image after noise reduction Fig. 8A It looks clean but soft. This contrast-enhanced image is very sharp and Figure 8B Thus, it can be seen that the goal of maintaining scene temperature fidelity with a direct data path to temperature recording while creating an image that is more useful for "seeing in the dark" is achieved. The displayed visual image can be colored or otherwise annotated with very accurate temperature data mixed with image data with a high degree of object recognition. For some uses such as firefighting, including both a high degree of object recognition and very accurate temperature data may be particularly desirable or critical.
[0064] Example Noise Reduction Method
[0065] Fig. 9 A flow chart illustrating an example embodiment of a noise reduction method is shown.
[0066] Step 900 receives partially processed image frame data, including a frame of pixel values, at a noise reduction filter in a signal processing chain. These values may have been through a pre-processing step, for example, to correct for faults and non-uniformities in an imaging sensor that acquired the image frame data.
[0067] Step 910 calculates n delta values for a given pixel (in this example, n is 8 or 9), including the difference between the pixel value and the values of its n nearest or nearby neighbors, and possibly also using the center value. Kernel sizes other than 8 may also be used.
[0068] Step 920 derives n weight values corresponding to each increment from a weight lookup table (LUT). The function represented in the LUT may be a center weighted function, such as a Gaussian function. Using a LUT is particularly effective for processing speed and flexibility. Step 930 sums the 8 weight values. Determine the weight sum value.
[0069] Step 940 yields eight weighted increment values equal to the product of each corresponding weight and increment value. Step 950 sums the n weighted increments. Together with the weighted sum values, a weighted increment sum value is determined.
[0070] Step 960 is to pass the filtered pixel value equal to the received pixel value minus the sum of the weighted increments divided by the sum of the weights forward to the signal processing chain. This is the filtered result that both softens the image and reduces image noise. Step 970 is repeated for all pixels in the frame. Pixels along the FPA boundary can be handled in various ways described elsewhere herein.
[0071] Example Contrast Enhancement Method
[0072] Fig.10 A flow chart illustrating an example embodiment of a contrast enhancement method is shown.
[0073] Step 1000 receives partially processed image frame data comprising pixel values at a feature (contrast) enhancement filter in a signal processing chain. This may be the output of the noise reduction filter described above.
[0074] Step 1010 applies a low pass filter (LPF) to a given pixel. Step 1020 subtracts the LPF pixel value from the received pixel value. The result of this step is to further reduce noise and enhance sharper features, such as edges.
[0075] Step 1030 applies a high pass filter (HPF) to the LPF pixel values. This step further enhances higher spatial frequency features.
[0076] Step 1040 applies variable gain to the HPF value according to a gain LUT. The LUT may represent a function that applies little or no gain to pixels with values near zero (which may be noise), while boosting pixels with values outside a threshold near zero, thereby boosting features of the imaged scene.
[0077] Step 1050 adds the LPF pixel values to the pixel values derived from the LUT to derive feature enhanced pixel values. This step adds the noise reduced lower spatial frequency image data back to fill the image.
[0078] Step 1060 passes the enhanced pixel value forward to the signal processing chain. Step 1070 is repeated for each pixel in the frame, and pixels along the FPA boundaries may be treated in various ways.
[0079] Edge highlighting
[0080] For many applications, such as firefighting, it may be advantageous to further increase the visual resolution of objects in the scene. One useful technique is to highlight features in the scene that correspond to the edges of imaged objects. This can be done in a variety of ways. An edge filter (Sobel filter, Laplace transform, etc.) can be used to detect edge transitions in an image. Then, when the image is displayed to the user, pixels detected as edges by the filter are displayed differently from non-edge pixels.
[0081] One way to achieve this is to simply replace edge pixel intensity values with extreme color values (such as black or white) before display. This technique creates an image with a wireframe appearance and may not look natural to the user. It also has the disadvantage that the signal processing chain must carry an entire separate image frame with the replaced pixel values.
[0082] Another more subtle and visually pleasing technique is to modify the brightness, for example, by changing one or more color vectors (such as RGB, YCV, etc.) of pixels corresponding to edges by applying to the color vector a factor that depends on the edge strength at a given pixel as determined by an edge filter. This technique creates an attractive image, but can be computationally expensive, thereby slowing down image processing, which may be a disadvantage for some systems.
[0083] Example edge highlighting technique
[0084] According to the present disclosure, an effective technique has been developed that provides attractive images while using only very digital processing friendly elements, the elements of which are Fig.11 Medium picture.
[0085] Before displaying, as mentioned above Figure 3 As described, the image is colorized (e.g., at block 250), typically providing an image in which a user can easily determine the temperature of objects in the imaged scene by the displayed colors. These colors are assigned to each pixel from a primary color LUT, whose colors can correspond to temperature in various ways. For example, techniques for displaying certain temperatures as fixed colors may be useful in applications such as firefighting where dangerous temperatures must be clearly identified. Such color LUT assignments are described in U.S. Application No. 16 / 051,077, filed on July 31, 2018, now issued as U.S. Patent No. 10,848,725, which is incorporated herein by reference.
[0086] return Fig.11, the image frame is passed to an edge filter, whose output is a distribution of pixel edge intensities, which would produce an edge-mapped image if only pixels above a predetermined edge intensity were displayed. The pixel intensity distribution can be converted into discrete edge intensity range intervals covering edge intensities that are determined to be high enough to merit different treatment from non-edge pixels, as shown in the figure.
[0087] A very effective way to highlight edges is to create (and usually store) a series of color LUTs related to the primary color LUT, where the brightness of each color value in the LUT is shifted by one increment compared to the color in the primary color. Therefore, the shifted LUT can be brighter or darker than the primary color at each color level. A useful way to achieve this is to create a number of shifted LUTs equal to the number of edge intensity intervals. The shift between each LUT can be the total amount of the desired brightness range divided by the number of intervals.
[0088] Then, when the image is displayed, the colors of the pixels in the identified edge intervals will be assigned colors from the corresponding shifted LUT, so that the edges are displayed with a brightness that contrasts with adjacent non-edge pixels, and the contrast will depend on the edge strength of a given pixel.
[0089] Of course, the shift level and amount of shift need not be uniformly determined, and they can be tailored to address specific imager behavior, with the amount of shift being selected to amplify or attenuate image attributes as desired. However, the idea that edge pixels will be displayed in colors that correspond to but are shifted from the primary color LUT produces an attractive and useful image.
[0090] Color LUTs are small, typically only 256 values for the most common display systems, and they are computationally efficient because assigning LUT values to pixels is a simple memory access. Therefore, the method described above is extremely computationally efficient compared to other edge highlighting techniques.
[0091] Example edge highlighting method
[0092] Fig.12 An example of an edge highlighting method according to the technique described above is shown in FIG.
[0093] Step 1200 receives image frame data, including a frame of pixel values, at a shading element and an edge highlighting filter element in a signal processing chain. The shading element and the edge filter element act separately on the image data, but for situations where edge highlighting is desired, the image processing paths may be combined.
[0094] Step 1210 is to assign a color to each pixel in a manner corresponding to a predetermined relationship between the color and at least one of the pixel intensity or scene temperature of the imaged scene region corresponding to the given pixel, wherein the color is assigned from the primary color LUT. Various temperature to color assignment techniques may be used depending on the intended use of the camera.
[0095] Step 1220 is to apply an edge filter to the frame pixels, the result of which is a map of edge strengths for each pixel. A distribution of pixels with different edge strengths above a threshold is a typical result of this step.
[0096] Step 1230 is to convert the edge intensity values into a histogram of discrete edge intensity intervals, dividing the multiple intervals corresponding to pixel edge intensities above a predetermined value into a predetermined number of intervals. This is a computationally straightforward way to decompose the edge intensity distribution into discrete partitions.
[0097] Step 1240 is to create a series of color LUTs, each LUT in the series includes a brightness shift from the primary color LUT, where the number of LUTs corresponds to the number of edge intensity intervals, and the brightness shift between each LUT corresponds to the total desired shift of the maximum edge intensity divided by the number of intervals. For example, in a tested implementation of the method, 32 intervals and associated LUTs were used. Non-uniformly distributed shift amounts can also be used to adjust the effect as needed.
[0098] Step 1250 is to replace the color assigned to the pixel that meets the edge strength criteria from the original color LUT with the color from the shifted LUT corresponding to the edge strength interval of the given pixel. The color LUT is small and the replacement value is a simple memory access, so this entire highlighting technique requires almost no actual calculations from the filter to the highlighting.
[0099] Some scenes may span a very narrow temperature range. Examples are unoccupied rooms within a climate controlled building, or other examples such as smoke filled rooms where actual fire is limited or non-existent. Image enhancement of the type described above may not be sufficient, or in some cases may actually distort the visual representation of such low contrast scenes. Other measures may be beneficial instead of or in addition to those described above.
[0100] A low contrast scene for a thermal imager is one where the overall scene temperature range is small. This can be determined directly, as one step in thermal image processing may be to create a histogram of scene intensities that corresponds to a histogram of scene temperatures and equalize the histograms (HE) when assigning display levels for visual display. The width of the histogram is the scene temperature range. For narrow temperature range scenes, such as total histogram widths less than about 10 degrees Celsius, special image processing techniques may need to be applied to maintain a high level of scene object recognition for the user.
[0101] One artifact that may be noticeable in low-contrast scenes is the relative visibility enhancement of row and column noise, which can reduce user object recognition. The row and column noise of such low-contrast scenes may be streaky, cause perturbations of short duration, and be visually noticeable only for part of the row segments, for example. A new segmented row and column filter can be applied.
[0102] Generally speaking, Fig.13 The organization of pixels for such a filter is illustrated in . An input image frame of pixel values arranged in x columns and y rows is presented to the filter. The filter can be used before, after, or within the noise reduction and contrast enhancement filters described above. Although specific numbers and mathematical operations are shown, it should be understood that the size of the blocks and the specific type of central tendency measure (measure) (e.g., mean, median, etc.) are not important, and deviations from the examples shown can be effectively used and belong to the teachings of this article.
[0103] The columns are divided into blocks of n pixels, for example n=16 as shown in the figure. The blocks can also be overlapped, such as shown by the dashed groupings, so that the operation is repeated for each block. A first central density measurement CDM is created for each block, which is the median in this example embodiment, but others are possible. m adjacent rows are used, in this case 2 on each side or 5 in total, and a second CDM of the first measurement is created, which is the mean in this example. The process is repeated for the entire frame. A column noise correction value is created for each column block, i.e. the difference between the two measurements, and the correction value is subtracted from each corresponding input pixel, thereby creating a column noise corrected frame.
[0104] It may be desirable to soften the differences between blocks by interpolating between correction values in adjacent rows on a pixel-by-pixel basis in each block to further refine the correction values. An example interpolation is linear interpolation along the columns. The edge values may be set to some measure of edge rows and columns.
[0105] Example column filter for removing short-term disturbances
[0106] Fig.14A An example column filter of this type is shown in the block diagram of .
[0107] In step 1400, for an array of x columns and y rows, the CDM of a block of n pixels in the column is calculated. In an example embodiment, the CDM may be an average. The blocks may also be offset so that each CDM is an overlapping pixel from two overlapping blocks. For example, Fig.13 The n shown in is 16, but other numbers (such as 8) are possible.
[0108] In step 1410, the blocks are grouped into g blocks. In the exemplary embodiment, g is 2, but higher numbers are possible. A second CDM, such as an average, is calculated for these groups, generating an array of x times y / (g*n) (or modified n if overlap is used) of local pixels averaged along the vertical column direction.
[0109] In step 1420, the column pixels of the obtained CDM are grouped into m blocks across rows, and the CDM of each row block is calculated. Fig.13 In the example, m=5.
[0110] In step 1430, the difference between the CDM of each column block or group of blocks and the CDM of each row block is calculated on a per-pixel basis.
[0111] The differences may optionally be interpolated along the columns to smooth the values in step 1440. Linear interpolation is one example.
[0112] In step 1450, the difference is subtracted or optionally interpolated from each pixel as a column correction.
[0113] A row filter suitable for use with the above-described row filter may require creating a first measurement of all pixels in the row, such as a mean or any other suitable value calculated based on the pixels in the row. The row can be divided into blocks of k pixels, in this case, for example, k=7, and a second measurement is created for each block, in this case, the median. The difference between the two measurements can be calculated for each pixel. Alternatively, an intermediate correction value can be created by taking the difference of the two measurements for each block. A third measurement can be created for the intermediate value, in this case, the mean. A row noise correction factor can be created by calculating the difference between the intermediate value and the third measurement for each block. The difference row noise correction value can be subtracted from each corresponding input pixel of the row noise filtered image frame. The row filter can be used before, after, or independently of the column filter.
[0114] Example row filter for removing short-term disturbances
[0115] Fig. 14B The steps involved in a specific embodiment of a line filter of the type described above are shown.
[0116] In step 1460, a CDM is calculated for each row. In one example embodiment, the CDM may be an average of the pixel values across the rows, but any other suitable value calculated based on the values for each row may be used.
[0117] In step 1470, the pixels in each row are divided into k x 1 blocks and the CDM for each row block is calculated. In one example embodiment, k is 7 and the CDM is the median or mean of the pixel values in each row block.
[0118] In step 1470, the difference between the row CDM and the row block CDM is calculated for each pixel and subtracted from each pixel as a row correction.
[0119] In step 1480, alternatively, the CDM of the difference may be calculated and subtracted from the difference to create the row correction.
[0120] Another way to improve visual object recognition for low contrast scenes is to change the type of histogram equalization (HE), e.g., the per-pixel intensity gain applied when the image is equalized for display. In a non-equalized image, the camera controller typically assigns available display levels to actual pixel intensities in a linear manner. For many images, this is undesirable because display levels will be assigned to intensities (e.g., temperatures) that may not exist in a given scene, thereby not optimizing the visual contrast of the temperatures of interest. However, for low contrast scenes with a limited range of temperatures that vary, it may be useful to assign display levels to small temperature differences to visually show up even small temperature contrasts. Therefore, linear equalization may be desirable for low contrast scenes.
[0121] like Fig.15A , 15B As shown in and 15C, the amount of linearity in the equalization can be varied. For example, in the example shown, the amount of truncation of the histogram is a linear change that depends on the width of the histogram. This results in an increase in the linearity of the equalization that depends directly on the width of the histogram. Most image processing suites have such controls for HE processing, but regardless of the detailed processing actually used, the width of the temperature range can be determined, which is directly related to the scene contrast, where a lower histogram width corresponds to a lower contrast scene, and appropriate decisions can be made to optimize the user visual contrast. Such decisions can include the degree of linearity applied to the HE processing, and which of the above filters (if any) can be used. In general, the width of the histogram of scene intensity values indicates the temperature contrast of the scene, where a higher width corresponds to a higher contrast. The histogram can be for all pixels in the scene, or just a subset of pixels whose intensities correspond to the temperature range of interest.
[0122] Depending on the contrast of the scene, other modifications to the above techniques may be beneficial. Such modifications may be implemented by determining the width of the scene temperature histogram, and these modifications may be selected by comparing the observed histogram width (e.g., scene contrast) to predetermined values. These predetermined values may vary depending on the specific imager performance and the practitioner's judgment of the quality of the displayed image.
[0123] One modification that may be beneficial is to perform the row filter steps described above on the columns for scenes below a predetermined contrast, rather than performing the column filter steps described above.
[0124] Fig.16A and 16B Other modifications are shown in Fig.16A In , the results of the contrast detection may result in different sigmas of the weight LUT being selected for the noise filter. For example, a LUT of three different sigmas may be selected based on comparing the observed scene contrast to a predetermined value. Fig. 16B In the embodiment of the present invention, the width of the gain LUT (e.g., the width of the flat portion of the gain curve) can be varied depending on the observed scene contrast detection. Again, for example, one of three different width LUTs can be selected depending on comparing the actual scene contrast with a predetermined value.
[0125] the term
[0126] Depending on the embodiment, certain actions, events, or functions of any process described herein may be performed in a different order, may be added, combined, or omitted entirely (e.g., not all described actions or events are necessary for the practice of the algorithm). In addition, in some embodiments, actions or events may be performed concurrently, such as through multithreading, interrupt processing, or execution on multiple processors or processor cores or other parallel architectures, rather than sequentially.
[0127] The various illustrative logic blocks, modules and processing steps described in conjunction with the embodiments disclosed herein can be implemented as electronic hardware, computer software, or a combination of the two. In order to clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules and steps have been generally described above with respect to their functionality. Whether this functionality is implemented as hardware or software depends on the specific application and design constraints imposed on the entire system. The described functionality can be implemented in different ways for each specific application, but this implementation decision should not be interpreted as causing a deviation from the scope of the present disclosure.
[0128] The various illustrative logic blocks and modules described in conjunction with the embodiments disclosed herein may be implemented or executed by a machine, such as a processor configured with specific instructions, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. The processor may be a microprocessor, but in an alternative, the processor may be a controller, a microcontroller, or a state machine, a combination thereof, and the like. The processor may also be implemented as a combination of computing devices, such as a combination of a DSP and a microprocessor, a plurality of microprocessors, a combination of one or more microprocessors with a DSP core, or any other such configuration. For example, the memory elements described herein may be implemented using discrete memory chips, a portion of a memory in a microprocessor, flash memory, EPROM, various types of RAM, or other types of memory.
[0129] The elements of the methods, processes or algorithms described in conjunction with the embodiments disclosed herein may be directly implemented in hardware, in a software module executed by a processor, or in a combination of the two. The software module may reside in a RAM memory, a flash memory, a ROM memory, an EPROM memory, an EEPROM memory, a register, a hard disk, a removable disk, a CD-ROM, or any other form of computer-readable storage medium known in the art. An exemplary storage medium may be coupled to a processor so that the processor can read information from the storage medium and write the information thereto. In an alternative, the storage medium may be an integral part of the processor. The processor and the storage medium may reside in an ASIC. The software module may include computer executable instructions that cause a hardware processor to execute the computer executable instructions.
[0130] Unless otherwise expressly stated or otherwise understood in context as used, conditional language used herein, such as "can," "might," "could," "for example," and the like, is generally intended to convey that certain embodiments include, while other embodiments do not, certain features, elements, and / or states. Thus, such conditional language is generally not intended to imply that features, elements, and / or states are in any way required for one or more embodiments or that one or more embodiments must include logic for determining, with or without author input or prompting, that these features, elements, and / or states are included in or to be performed in any particular embodiment. The terms "include," "comprises," "has," "involves," and the like are synonymous and are used inclusively in an open manner and do not exclude additional elements, features, actions, operations, and the like. Moreover, the term "or" is used in its inclusive sense (rather than in its exclusive sense) such that when used, for example, to connect a list of elements, the term "or" refers to one, some, or all of the elements in the list.
[0131] Unless expressly stated otherwise, disjunctive language such as the phrase "at least one of X, Y, and Z" should be understood as generally used to indicate, depending on the context, that an item, term, etc. can be X, Y, or Z, or can be any combination thereof (e.g., X, Y, and / or Z). Thus, such disjunctive language is generally not intended to, and should not, imply that certain embodiments require that at least one of X, at least one of Y, or at least one of Z each be present.
[0132] Unless expressly stated otherwise, articles such as "a" or "an" should generally be interpreted as including one or more of the items being described. Thus, phrases such as "the device is configured to" are intended to include one or more of the recited devices. Such one or more recited devices may also be collectively configured to perform the recited statements. For example, "a processor configured to perform statements A, B, and C" may include a first processor configured to perform statement A, which works in conjunction with a second processor configured to perform statements B and C.
[0133] Although the above detailed description has shown, described and pointed out the novel features as applied to the illustrative embodiments, it should be understood that various omissions, substitutions and changes in the form and details of the devices or processes shown may be made without departing from the spirit of the present disclosure. As will be appreciated, certain embodiments described herein may be implemented in a form that does not provide all of the features and advantages set forth herein, as some features may be used or practiced separately from other features. All changes that come within the meaning and range of equivalence of the claims are intended to be included within their scope.
Claims
1. A method for reducing noise in a thermal image in a thermal imager, the thermal imager comprising a thermal imaging sensor and image processing capabilities of a signal processing chain for implementing a processor execution function, the method comprising: receiving, at a noise reduction filter in a signal processing chain, partially processed image frame data, the partially processed image frame data comprising a frame of pixel values; And, for each pixel in the plurality of pixels of the frame: Calculate n incremental values for the pixel, each incremental value comprising a difference between a pixel value of the pixel and a pixel value of a nearby or nearest neighbor pixel; Obtaining n weight values based on a weight lookup table (LUT), each weight value corresponding to one of the n increment values; summing the n weight values; Obtain n weighted incremental values, each weighted incremental value is equal to the product of the corresponding weight and the incremental value; summing the n weighted incremental values; as well as A filtered pixel value is passed forward to the signal processing chain, the filtered pixel value being equal to the received pixel value of the pixel minus the sum of the n weighted increment values divided by the sum of the n weight values.
2. The method of claim 1, wherein the weight LUT contains discrete values of a function that produces a weight that decreases as the delta value increases.
3. The method of claim 2, wherein the function is a Gaussian curve centered at zero delta.
4. The method of claim 3 further comprises determining the contrast of the scene based on the width of a histogram of image intensity values of all pixels or at least one of all pixel subsets in an image frame of the scene; and varying the width of the Gaussian curve depending on the width of the histogram.
5. The method of claim 1 , further comprising, for each pixel in the plurality of pixels: applying a low pass filter (LPF) to the pixel to generate an LPF pixel value; Subtract the LPF pixel value from the received pixel value for that pixel; applying a high pass filter (HPF) to the LPF pixel value to generate an HPF pixel value; Applying variable gain to HPF pixel values according to the gain LUT; adding the LPF pixel value to the pixel value derived from the gain LUT to derive a feature enhanced pixel value; as well as Pass the feature enhanced pixel values forward to the signal processing chain.
6. The method of claim 5, wherein the gain LUT boosts pixel values whose values are above or below a predetermined threshold of zero, and if the pixel is within the predetermined threshold of zero, then the pixel value remains unchanged.
7. The method of claim 5, wherein the feature The enhancement filter follows the noise reduction filter in the signal processing chain.
8. A method for enhancing features in a thermal image in a thermal imager, the thermal imager comprising a thermal imaging sensor and image processing capabilities of a signal processing chain for implementing a processor execution function, the method comprising: receiving a frame of partially processed image frame data including pixel values at a feature enhancement filter in a signal processing chain; And, for each pixel in a plurality of pixels of the frame: applying a low pass filter (LPF) to the pixel to generate an LPF pixel value; Subtract the LPF pixel value from the received pixel value for that pixel; applying a high pass filter (HPF) to the LPF pixel value to generate an HPF pixel value; Applying variable gain to HPF pixel values according to the gain LUT; adding the LPF pixel value to the pixel value derived from the gain LUT to derive a feature enhanced pixel value; as well as Pass the feature enhanced pixel values forward to the signal processing chain.
9. The method of claim 8, wherein the gain LUT boosts pixel values whose values are above or below a predetermined threshold of zero, and if the pixel is within the predetermined threshold of zero, then the pixel value remains unchanged.
10. The method of claim 8, further comprising, for each pixel in the plurality of pixels: Calculate n incremental values for the pixel, each incremental value comprising a difference between a pixel value of the pixel and a pixel value of a nearby or nearest neighbor pixel; Obtain n weight values corresponding to each increment from a weight lookup table (LUT); Sum the n weight values; Obtain n weighted incremental values, each weighted incremental value is equal to the product of the corresponding weight and the incremental value; summing the n weighted incremental values; as well as A filtered pixel value is passed forward to the signal processing chain, the filtered pixel value being equal to the received pixel value of the pixel minus the sum of the n weighted increment values divided by the sum of the n weight values.
11. The method of claim 10, wherein the weight LUT contains discrete values of a function that produces a weight that decreases as the delta value increases.
12. The method of claim 11, wherein the function is a Gaussian curve centered at zero delta.
13. The method of claim 12 further comprising determining the contrast of the scene based on a width of a histogram of image intensity values of all pixels or at least one of a subset of pixels in an image frame of the scene; and varying the sigma of the Gaussian depending on a predetermined value of the contrast.
14. The method of claim 12 further comprises determining the contrast of the scene based on the width of a histogram of image intensity values of all pixels or at least one of all subsets of pixels in an image frame of the scene; and varying the width of the gain LUT depending on a predetermined value of the contrast.
15. The method of claim 10, wherein the feature The enhancement filter follows the noise reduction filter in the signal processing chain.
16. The method of claim 10, further comprising: receiving image frame data at a shading element and an edge highlighting filter element in a signal processing chain, the image data comprising a frame of pixel values; assigning a color to each pixel in a manner corresponding to a predetermined relationship between the color and at least one of a pixel intensity or a scene temperature of a region of an imaged scene corresponding to the given pixel, wherein the color is assigned from a primary color lookup table (LUT); applying an edge filter to the pixels of the frame to generate a map of edge intensity values for each pixel; converting the edge intensity values into a histogram of discrete edge intensity intervals, the discrete edge intensity intervals comprising a plurality of edge intensity intervals divided into a predetermined number of intervals corresponding to pixel edge intensities above a predetermined value; creating a series of color LUTs, each color LUT in the series comprising a luminance shift from the primary color LUT, wherein the number of color LUTs corresponds to the predetermined number of bins, and the luminance shift between each color LUT corresponds to a total desired shift in maximum edge intensity divided by the predetermined number of bins; and The color assigned from the original color LUT to each pixel having a pixel edge strength higher than the predetermined value is replaced with a color from the shifted LUT corresponding to the edge strength interval of the respective pixel.
17. A method for improving the image contrast of a low-contrast imaging scene, comprising: The contrast of the scene is determined by the width of a histogram of image intensity values of all pixels or all subsets of pixels in an image frame of the scene; as well as The linearity of the equalization applied to the pixel values is varied so that the higher the linearity, the narrower the width of the intensity histogram.
18. A column noise correction filter method for a digital image frame of input pixel values arranged as a series of rows and columns, the method comprising, for each column of the image frame: Divide the pixels of the column into blocks of n pixels; Create a first measure of central tendency for each bin; Group each block with m neighboring blocks from adjacent columns; creating a second measure of central tendency of the first central tendency values for each group of m blocks; as well as The second measure of central tendency is subtracted from the first measure of central tendency to create a column noise correction value, which is subtracted from each corresponding input pixel to create a column noise filtered image frame.
19. The column noise correction filter method of claim 18, wherein row noise correction values are further interpolated between adjacent rows before being applied.
20. The column noise correction filter method of claim 18, wherein the first measure is a mean and the second measure is a median.
21. The column noise correction filter method of claim 18, wherein the blocks are selected to overlap.
22. The column noise correction filter method of claim 18, wherein n=one of 8 or 16, and m=5.
23. The column noise correction filter method of claim 18 further comprises determining the contrast of the scene based on the width of a histogram of image intensity values of all pixels or at least one of a subset of pixels in an image frame of the scene, and applying a column filter step to the column if the contrast is below a predetermined value.
24. A method for applying a row noise correction filter to a digital image frame of input pixel values, the method comprising: For each row of the image frame: Creating a first measure of central tendency for the row of all pixels in the row; Divide the row into blocks of k pixels; creating a second measure of central tendency of the pixels in each block; For each block, the second measure of central tendency was subtracted from the first measure of central tendency to create an intermediate correction factor; creating a third measurement based on the intermediate correction factor; creating a row noise correction factor comprising a difference between the intermediate product and the third measurement; as well as The row noise correction value is subtracted from each corresponding input pixel to create a row noise filtered image.
25. The row noise correction filter method of claim 24, wherein the first measure is the mean, the second measure is the median, and the third measure is the average.
26. The row noise correction filter method of claim 24, wherein k=7.
27. The row noise correction filter method of claim 24 further comprises determining the contrast of the scene based on the width of a histogram of image intensity values of all pixels or at least one of a subset of pixels in an image frame of the scene, and applying a row filter step to the columns if the contrast is below a predetermined value.
28. A method for highlighting edge features in a thermal image in a thermal imager, the thermal imager comprising a thermal imaging sensor and image processing capabilities of a signal processing chain for implementing a processor execution function, the method comprising: receiving image frame data at a shading element and an edge highlighting filter element in a signal processing chain, the image data comprising a frame of pixel values; assigning a color to each pixel in a manner corresponding to a predetermined relationship between the color and at least one of a pixel intensity or a scene temperature of a region of an imaged scene corresponding to the given pixel, wherein the color is assigned from a primary color lookup table (LUT); applying an edge filter to the pixels of the frame to generate a map of edge intensity values for each pixel; converting the edge intensity values into a histogram of discrete edge intensity intervals, the discrete edge intensity intervals comprising a plurality of edge intensity intervals divided into a predetermined number of intervals corresponding to pixel edge intensities above a predetermined value; creating a series of color LUTs, each color LUT in the series comprising a luminance shift from the primary color LUT, wherein the number of color LUTs corresponds to the predetermined number of bins, and the luminance shift between each color LUT corresponds to a total desired shift in maximum edge intensity divided by the predetermined number of bins; and The color assigned from the original color LUT to each pixel having a pixel edge strength higher than the predetermined value is replaced with a color from the shifted LUT corresponding to the edge strength interval of the respective pixel.
Citation Information
Patent Citations
Color display modes for a thermal imaging system
US10848725B2