Patent Description:
The invention is set out in the appended set of claims
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description.

Examples are disclosed that relate to selective colorization of thermal images and low-light images. In an example, a computing system comprises a processor and a storage device holding instructions executable by the processor to receive a thermal image acquired via a thermal imaging system, each pixel of the thermal image comprising an intensity level. The instructions are further executable to generate a histogram via binning pixels by intensity level-based at least on the histogram, determine a subset of pixels to colorize, colorize the subset of pixels to produce a selectively colorized image, and output the selectively colorized image.

In another example, a computing system comprises a processor and a storage device holding instructions executable by the processor to receive a thermal image of a scene, receive a low-light image of the scene acquired via a low-light imaging system, and computationally combine the thermal image of the scene and the low-light image of the scene. The instructions are further executable to, based at least on computationally combining the thermal image of the scene and the low-light image of the scene, produce a selectively colorized image, and output the selectively colorized image.

Various imaging techniques exist for imaging a scene in low-light conditions. Some techniques employ an infrared camera to capture infrared radiation at each pixel of an image sensor. The resulting intensity data may be processed to produce a visual representation of the thermal image. Other techniques uses photomultipliers or other amplification devices to amplify signal arising from detected photons (e.g., "night-vision"). Such low-light imaging systems may allow a user to detect faint illumination from an object, or view a scene that is only illuminated by starlight, as examples.

Low-light and/or thermal imaging systems may capture and display images in either grayscale (i.e., single channel) or in multicolor. Grayscale thermal images display a single intensity level for each pixel, where an intensity between black and white represents an intensity of a signal received at that pixel. Colorizing a thermal channel or low-light channel may comprise applying a color map (e.g. a mapping of colors to corresponding ranges of intensities) to intensity image data. As a result, full-color images may comprise a color palette spanning a range of intensities, e.g., lower intensity pixels may be displayed as blue while higher intensity pixels may appear red.

However, such grayscale and colorized images may pose difficulties for object identification. For example, traditional grayscale/colorization techniques may fail to highlight objects in a meaningful way. A full-color image may appear cluttered or sparse, with no obvious objects of interest. As a result, a viewer may take a relatively long time to examine the entire image before identifying objects of interest. Further, objects of interest in a low-contrast scene may have a similar color (or similar grayscale) as other objects, making it difficult for a user to differentiate between objects of interest and background. For example, in a relatively hot room, a person may be colorized in a similar hue to other objects in the room. Likewise, a standard grayscale image may display a cold object of interest in dark gray or black pixels, making it difficult for a user to identify the object. Furthermore, when combining a low-light image with a thermal image, fine detail information may be lost in the process.

In some instances, a user may desire to view differences between low-light imagery and thermal imagery, as such differences may reveal information that is difficult to see in either image alone. For example, textures (e.g. paint) on an object may appear only slightly brighter or darker in the low-light image, and may be indistinguishable from surrounding textures in the thermal image.

Accordingly, examples are disclosed for selective colorization of images based at least in part on thermal imagery. A selectively colorized image may present information to a viewer in a more meaningful manner by colorizing potential objects of interest while leaving the remainder of the image unemphasized. In one example, an image is selectively colorized by creating a histogram of the pixels within a thermal image and then colorizing a subset of pixels based on one or more threshold pixel intensity levels applied to the histogram. As a result, relatively hotter and/or colder objects in a scene may be selectively colorized, or any other suitable pixel intensity level range may be colorized. The resulting selectively colorized image may appear less cluttered, and emphasize potential objects of interest.

In other examples, portions of an image may be selectively colorized based upon a computational combination of a thermal image and a low-light image (e.g. a difference, a sum, a product, a quotient, a Boolean comparison, or other suitable combination). For example, an edge-detection algorithm may be used to detect edges in a thermal image of a scene and in a low-light image of the scene. The edges located in the images can be compared (e.g. by computing a difference between the two images, a sum of the two images, etc.) to identify features such as differences in textures on a surface, and may help to highlight fine details and other information for the user.

Prior to describing these examples in detail, an example thermal imaging display system in the form of a head-mounted display (HMD) device <NUM> is described with reference to <FIG>. HMD device <NUM> comprises a thermal imaging camera <NUM> and low-light camera <NUM>. HMD device <NUM> further comprises processing circuitry <NUM> configured to process images from cameras <NUM>, <NUM>, and to display processed images on near-eye displays 108a, 108b. HMD device <NUM> may capture real-time video from thermal imaging camera <NUM> and/or low-light imaging camera <NUM> output real-time video to near-eye displays 108a, 108b. Visor <NUM> and near-eye displays 108a, 108b may be at least partially transparent to allow a user to view real-world objects. For example, each near-eye display 108a, 108b may comprise a transparent optical combiner (e.g. a waveguide) that delivers projected imagery to the user while allowing the user to view a real-world background through the combiner. In this manner, image content displayed via near-eye displays 108a, 108b may appear to be mixed with real-world scenery. Other types of thermal imaging devices are also envisioned, e.g. handheld devices or non-wearable devices, as well as other computing devices that process image data received from thermal imaging devices (e.g. personal computers, tablet computers, laptop computers, smart phones, and server computers). In some examples, the display and/or processing circuitry may be remote to the thermal camera. Further, in some examples, low-light camera <NUM> may be omitted.

<FIG> shows a block diagram of an example computing system <NUM> comprising a thermal imaging subsystem <NUM> and a display <NUM>. Computing system <NUM> may be implemented as display system <NUM>, for example. Computing system <NUM> further comprises a low-light imaging system <NUM>, but other examples may omit the low-light imaging subsystem. Computing system <NUM> further comprises a processor <NUM> configured to control thermal imaging system <NUM> and low-light imaging subsystem <NUM>. Processor <NUM> may receive image data, process the image data to produce colorized image data as described in more detail below, and output the resulting colorized images (still and/or video) to display <NUM>. Memory <NUM> may store data and instructions executable by processor <NUM> to perform the processes described herein. In some examples, processor <NUM> may communicate with an external computing system (e.g. a cloud-based computing system) via a communications system <NUM>, such that logic is distributed between processor <NUM> and the remote computing system.

Thermal imaging subsystem <NUM> may comprise any suitable thermal imaging hardware, such as a microbolometer <NUM>, IR camera <NUM>, and/or other suitable thermal imaging device configured to sense infrared light. Similarly, low-light imaging subsystem <NUM> may comprise any suitable low-light imaging hardware, such as a photomultiplier <NUM>, a CMOS detector <NUM>, and/or a CMOS detector with gain <NUM>.

In some examples, thermal imaging computing system <NUM> may be configured as a wearable computing device, such as HMD device <NUM>. In other examples, computing system <NUM> may take other suitable forms, such a handheld device, a wall-mounted camera system, a vehicle-mounted camera system, or any suitable computing device that receives image data from a separate thermal imaging device (e.g. a laptop computer, a desktop computer, or a server computer). In some examples, various components illustrated in <FIG> may be omitted, such as a display.

As mentioned above, computing system <NUM> may be configured to selectively colorize an image, for example to facilitate the location of potential objects of interest. In some examples, computing system <NUM> may perform selective colorization of an image based at least on applying thresholding to a histogram of the image. <FIG> shows an example histogram <NUM> for an image of a scene imaged by thermal imaging subsystem <NUM>. Here, each bin of histogram <NUM> corresponds to a range of intensities, and the pixel count for each bin represents how many pixels in the bin fall within the intensity range. As the intensity level of a pixel may represent the apparent temperature of an object in the scene corresponding to the pixel position, intensity levels may thus be correlated with temperature. In <FIG>, the pixel "temperature" increases with pixel intensity level from left to right on histogram <NUM>. In examples where the objects of interest are the hottest or coldest objects in a scene, a subset of pixels to be colorized may be chosen by applying an appropriate threshold or thresholds to the histogram.

<FIG> illustrates a threshold applied to a histogram which allows for relatively "hotter" pixels to be selectively colorized. In this example, a subset of pixels <NUM> to be colorized is determined based on the pixels being above threshold intensity level <NUM>. Pixels not within subset <NUM> (i.e., pixels in bins with lower intensity levels than threshold intensity level <NUM>) may be left un-colorized. In a thermal image, the pixel intensity corresponds to temperature, such that brighter pixels represent relatively hotter objects while darker pixels represent relatively colder objects. As such, the subset of pixels <NUM> in <FIG> that are to be colorized correspond to relatively "hotter" pixels of the image. In other examples, the threshold intensity level may specify an upper bound and the subset of pixels may comprise relatively "colder" pixels in the image.

A threshold to apply to a histogram may be determined in any suitable manner. In some examples, a threshold intensity level may be chosen such that a certain percentage of pixels are colorized (e.g., the brightest <NUM>% or <NUM>% of pixels). Additionally or alternatively, threshold intensity level <NUM> may be chosen based on pixel count, e.g., a global or local maximum of histogram <NUM>. For example, a global maximum <NUM> may be identified in the histogram and used to set threshold intensity level <NUM>. In some examples, a threshold condition can be hard-coded, while in other examples the threshold condition can be varied (e.g. automatically based upon characteristics of the image, or by user selection). In examples where a sequence of images are processed (e.g., a video feed), the threshold condition may be automatically adjusted for each image.

In the depicted example, threshold intensity level <NUM> is a lower-bound threshold condition, and the subset of pixels <NUM> corresponds to pixels with intensity levels equal to or greater than threshold intensity level <NUM>. In other examples, an upper-bound threshold condition, or a combination of two or more threshold conditions, may be used. For example, two or more threshold intensity levels may be selected to determine two different subsets of pixels to be colorized. A first subset of pixels may comprise pixels having an intensity level meeting a first threshold condition. Likewise, a second subset of pixels to be colorized may comprise pixels having an intensity level that meets a second threshold condition. As a more specific example, the first subset may comprise pixels corresponding to a "coldest" set of objects in the scene, while the second subset comprised pixels corresponding to a "hottest" set of objects in the scene.

Selectively colorized image <NUM> represents an example image that has been selectively colorized based on histogram <NUM>. Regions <NUM> and <NUM> may corresponds to pixels within the subset of pixels <NUM>. Pixels within regions <NUM>, <NUM> are colorized while pixels outside those regions are not colorized. Any suitable colorization scheme may be used. For example, a single hue or a combination of different hues (e.g., color map) may be used. Thus, the applied hue for each pixel may be the same, or may be based on the intensity level of the pixel. Furthermore, the pixel saturation and/or value may be associated with the intensity level. As such, pixels in colorized region <NUM> may comprise a different hue, saturation, and/or value compared to pixels in region <NUM>. Any suitable color mapping or color palette technique may be used.

In examples in which two or more thresholds are applied to define two or more subsets of pixels, the two or more subsets of pixels may be colorized using the same or different hues, the same or different color maps, or any other suitable colorization scheme. For example, pixels in region <NUM> may be colorized by applying a first color map while pixels in regions <NUM>, <NUM> are colorized by applying a second color map. As such, the colorization technique for colorizing a pixel may depend on the threshold condition met by the pixel.

In examples in which both thermal and low-light images are acquired, after colorizing the thermal image, the selectively colorized image may be fused with the low-light image to create a fused image. A fused image may comprise a renormalized composite of the selectively colorized thermal image and the low-light image. As a more specific example, if IT represents pixel intensities in the thermal channel and ILL represents pixel intensities in the low-light channel, the fused image pixel intensities may be IF = n(IT + ILL), where n is a normalization factor. Any suitable method may be used to fuse the images. Examples include, but are not limited to, IF = n(IT × ILL), IF = n(IT + log ILL), IF = n(log IT + ILL), IF = n(IT log IT + ILL log ILL), etc. Fusing the images may result in adjustments to the hue, saturation, or value levels of the pixels in the selectively colorized regions. In other examples, instead of or in addition to selectively colorizing the thermal image before fusing the thermal image with the low light image, a histogram may be produced from the fused image, and then the fused image may be selectively colorized based at least on the histogram.

Some scenes that are thermally imaged may comprise a temperature range that can exceed a dynamic range of a thermal imaging device. However, dynamic range compression algorithms may unintentionally lower contrast and/or cause noticeable loss of detail. In other scenes, multiple objects that are close in temperature can result in a narrow dynamic range, and therefore relatively low image contrast. Thus, in some examples, various contrast enhancement algorithms may be employed to increase the dynamic range of a thermal image, preserve detail, sharpen an image, or otherwise enhance contrast. In some examples, a local area contrast enhancement (LACE) algorithm can be applied to the thermal image. In some examples, a histogram equalization algorithm can be used as a LACE algorithm. LACE techniques may be used to enhance the appearance of light-dark transitions, which may enable a user to more easily see detail and texture in an image. LACE algorithms may enhance local contrast while preserving global contrast levels. Such algorithms may help to increase the visibility of small-scale edges and sharpen an image.

The use of LACE algorithm on a thermal image modifies the intensity levels of the pixels. Thus, in some examples, a LACE algorithm is applied prior to creating a histogram via binning the pixels. After applying the LACE algorithm, in some examples, the resultant histogram may appear flatter, and the relationship between cumulative pixel count and intensity level may be more linear than in the image prior to applying the LACE algorithm. As such, setting a pixel intensity threshold at, e.g., <NUM>% of the maximum intensity level may select approximately <NUM>% of pixels for colorization.

Other image processing techniques may also be used, including image compression, data compression, gamma correction, smoothing, low/high pass filtering, and combinations of two or more techniques. Image processing may be performed on the thermal image, the low-light image, or both images. A thermal image may be processed prior to and/or after creating the histogram.

Further, in some examples, objects in the scene may be identified by applying a classifier function to an image. Such a classifier function may be applied to one or more of a thermal image, a low-light image, a fused image, and/or a selectively colorized image of a scene. In some examples, the classifier function may be applied before creating the histogram, while in other examples, the classifier may be applied after creating and thresholding the histogram. In any of such examples, selective colorization of the image may be applied based upon the output from the classifier function. For example, an object identified via a classifier function may be colorized if at least some of the pixels of the object are determined to be colorized. As another example, an object identified via a classifier may be selectively colorized based upon having been classified, without consideration of the histogram. In other examples, the identified object is colorized if a sufficient fraction of pixels of the object meet a threshold condition and are to be colorized. Further, in some examples, a classifier function may be applied after selective colorization. In such examples, the output from the classifier may be used to add additional colorization to the image, such as to separately highlight objects that may not meet a threshold intensity, but that are still of interest due to the classification determined. Any suitable classifier function may be used. Examples include machine learning functions such as one or more neural networks (e.g. a convolutional neural network).

<FIG> shows a flow diagram illustrating an example method <NUM> for selectively colorizing an image based at least on a histogram of pixels in a thermal image. At <NUM>, method <NUM> comprises receiving a thermal image, each pixel of the thermal image comprising an intensity level. The thermal image may be received from thermal imaging subsystem <NUM>, for example. At <NUM>, method <NUM> comprises generating a histogram via binning pixels by intensity level. In some examples, at <NUM>, the method comprises applying a local contrast enhancement algorithm on the thermal image thereby modifying intensity levels of the pixels, and creating the histogram via binning the pixels by modified intensity level.

Continuing at <NUM>, method <NUM> comprises, based at least on the histogram, determining a subset of pixels to colorize. A threshold condition may be used to determine the subset of pixels, whereby any pixel meeting the threshold condition is colorized. A single threshold condition or a plurality of threshold conditions may be used. In some examples, at <NUM>, determining a subset of pixels to colorize is further based upon a user-selected intensity threshold that is applied to the histogram.

At <NUM>, method <NUM> comprises colorizing the subset of pixels to obtain a selectively colorized image. In some examples, at <NUM>, the method comprises colorizing the pixels by applying a color map to the subset of pixels. In other examples, a single hue can be applied. In yet other examples, a grayscale enhancement can be applied. In still other examples, different colorization techniques (e.g. different color maps) may be applied for different threshold conditions.

At <NUM>, method <NUM> comprises outputting the selectively colorized image. In some examples, the method comprises outputting the selectively colorized image to a display on a same device, such as display subsystem <NUM>. In other examples, the method may comprise outputting the selectively colorized image to a remote computing system via communications system <NUM>. In some examples, at <NUM>, outputting the selectively colorized image comprises receiving a low-light image, fusing the low-light image and the selectively colorized image to produce a fused image, and outputting the fused image. The low-light image may be received via low-light imaging system <NUM>.

In some examples, the method may further comprise, at <NUM>, applying a classifier function to one or more of the thermal image and the selectively colorized image to identify objects of interest. As described above, the classifier function may be applied either before or after selective colorization of the thermal image in various examples. Further, in some examples, classified objects in an image may be selectively colorized independent of whether the objects would be classified based upon pixels corresponding to the object meeting the threshold condition applied to the histogram.

As discussed above, in some examples, selective colorization may be based upon a computational combination of a thermal image and a low light image. The computational combination may correspond to a difference, a sum, a product, a quotient, a Boolean comparison, or any other suitable computational combination. In such examples, the selective colorization of an image may be based upon differences, unions, and/or intersections between features in the images as identified via the computational combination of the thermal image and the low-light image. As one example, an edge an edge-finding algorithm is applied to an image to locate edges in each of the low-light and thermal images, and selective colorization is performed based on a comparison of edges in the two images. In a more specific example, based on the difference between the edges in the two images, an image is selectively colorized to highlight the edges that appear in one image and not the other image. Selective colorization can also be applied based upon a union or intersection of edges in the images, as examples. Any suitable edge-finding algorithm may be used, including but not limited to a Sobel filter.

<FIG> shows schematic representations of example thermal and low-light images, and illustrates identifying features for selective colorization based on the differences between edges in the two images. Example scene <NUM> is an arbitrary scene comprising objects, a person, and a texture <NUM> in the form of an "X" symbol painted on a wall. Image <NUM> is an example filtered thermal image representing scene <NUM> produced by applying an edge-finding algorithm to a thermal image. Image <NUM> comprises regions 512a, 512b, 512c each corresponding to different temperatures (i.e., a window, a person, and a background, respectively). In the example shown, an edge-finding algorithm has been applied to image <NUM> to locate edges 514a, 514b that correspond to boundaries between the different temperature regions.

Image <NUM> is an example filtered low-light image representing scene <NUM>. Image <NUM> comprises regions 522a, 522b, 522c, and 522d each corresponding to different intensities (i.e., the window, the person, the background, and the texture <NUM>, respectively). In the example shown, an edge-finding algorithm has also been applied to low-light image <NUM> to locate edges 524a, 524b, and 524c.

Image <NUM> and image <NUM> are computationally combined via a difference to produce difference image <NUM>. In other examples, a different type of computational combination may be used. Difference image <NUM> shows the difference between the filtered images. Based on the differences between edges 514a, and 514b in image <NUM> and edges 524a, 524b, 524c in image <NUM>, difference image <NUM> can be composited with either or both of the low-light image and the thermal image to highlight the differences in either or both of those images and thereby form selectively colorized images. Further, in some examples, the difference image itself may represent the selectively colorized image, separate from the low-light and thermal images.

<FIG> shows a flow diagram illustrating an example method <NUM> for selectively colorizing images based on differences between the edges in a thermal image and the edges in a low-light image. Method <NUM> comprises, at <NUM>, receiving a thermal image of a scene. At <NUM>, method <NUM> comprises receiving a low-light image of the scene. At <NUM>, the method comprises computationally combining the thermal image of the scene and the low-light image of the scene. As mentioned above, the images can be computationally combined in any suitable manner, such as by computing a difference between the images, a sum of the images, a product of the images, or other suitable computational combination. Further, the computational combination may be performed after processing one or both images. As a more specific example, at <NUM>, the images can be computationally combined by applying one or more edge-finding algorithms to the thermal image to locate edges in the thermal image and apply one or more edge-finding algorithms to the low-light image to locate edges in the low-light image. After processing the images, the images may be computationally combined (e.g. by computing a difference, a sum, a product, a quotient, a Boolean comparison, or other suitable combination).

At <NUM>, the method comprises, based at least the computational combination of the thermal image of the scene and the low-light image of the scene, producing a selectively colorized image. In some examples, selective colorization is performed based upon differences between features in the images, as shown at <NUM> (e.g. differences between the images as determined at <NUM>). In other examples, selective colorization is performed based upon a union or intersection of features in the images (e.g. a union or intersection of edges in the images as determined at <NUM>), as indicated at <NUM>. In some examples, different edge-finding algorithms are applied to each image (e.g. where different algorithms are better suited for each data type). In other examples, a same edge-finding algorithm may be applied to each image.

Continuing, at <NUM> method <NUM> comprises outputting the selectively colorized image. In some examples, at <NUM>, the thermal image comprises real-time video, the low-light image comprises real-time video, and the method comprises outputting selectively colorized video frames in real-time.

Computing system <NUM> includes a logic subsystem <NUM> and a storage subsystem <NUM>.

Logic subsystem <NUM> includes one or more physical devices configured to execute instructions.

Storage subsystem <NUM> includes one or more physical devices configured to hold instructions executable by the logic machine to implement the methods and processes described herein. When such methods and processes are implemented, the state of storage subsystem <NUM> may be transformed-e.g., to hold different data.

Storage subsystem <NUM> may include removable and/or built-in devices. Storage subsystem <NUM> may include optical memory (e.g., CD, DVD, HD-DVD, Blu-Ray Disc, etc.), semiconductor memory (e.g., RAM, EPROM, EEPROM, etc.), and/or magnetic memory (e.g., hard-disk drive, floppy-disk drive, tape drive, MRAM, etc.), among others. Storage subsystem <NUM> may include volatile, nonvolatile, dynamic, static, read/write, read-only, random-access, sequential-access, location-addressable, file-addressable, and/or content-addressable devices.

It will be appreciated that storage subsystem <NUM> includes one or more physical devices.

When included, display subsystem <NUM> may be used to present a visual representation of data held by storage subsystem <NUM>. Such display devices may be combined with logic subsystem <NUM> and/or storage subsystem <NUM> in a shared enclosure, or such display devices may be peripheral display devices.

Another example provides a computing system comprising a processor and a storage device holding instructions executable by the processor to receive a thermal image acquired via a thermal imaging system, each pixel of the thermal image comprising an intensity level, generate a histogram via binning pixels by intensity level, based at least on the histogram, determine a subset of pixels to colorize, colorize the subset of pixels to produce a selectively colorized image, and output the selectively colorized image. In some such examples, the computing system may additionally or alternatively comprise instructions executable to receive a low-light image acquired via a low-light imaging system, fuse the low-light image and the selectively colorized image to produce a fused image, and output the fused image. In some such examples, the computing system may additionally or alternatively comprise instructions further executable to apply a local contrast enhancement algorithm on the thermal image to modify intensity levels of the pixels, and create the histogram via binning the pixels after modifying the intensity levels of the pixels. In some such examples, the computing system may additionally or alternatively comprise instructions executable to determine the subset of pixels to colorize based on a user-selected intensity threshold that is applied to the histogram. In some such examples, wherein the subset of pixels is a first subset of pixels, the first subset comprising pixels each having an intensity level meeting a first threshold condition, the instructions may additionally or alternatively be further executable to, based at least upon the histogram, determine a second subset of pixels to be colorized, the second subset comprising pixels each having an intensity level meeting a second threshold condition. In some such examples, the computing system may additionally or alternatively comprise instructions executable to apply a classifier function to one or more of the thermal image and the selectively colorized image to identify objects of interest. In some such examples, the instructions executable to colorize the subset of pixels may additionally or alternatively comprise instructions executable to apply a color map to the subset of pixels. In some such examples, the computing system may additionally or alternatively be configured as a head-mounted display device comprising the thermal imaging system. In some such examples, the head-mounted display device may additionally or alternatively further comprise a low-light imaging system.

Another example provides a computing system comprising a processor and a storage device holding instructions executable by the processor to receive a thermal image of a scene; receive a low-light image of the scene; computationally combine the thermal image of the scene and the low-light image of the scene; based at least on computationally combining the thermal image of the scene and the low-light image of the scene, produce a selectively colorized image; and output the selectively colorized image. In some such examples, computationally combining the thermal image of the scene and the low-light image of the scene may additionally or alternatively comprise computing a difference between the edges in the low-light image of the scene and edges in the thermal image of the scene to identify a feature based upon the difference. In some such examples, computationally combining the thermal image and the low-light image may additionally or alternatively comprise determining a union or an intersection of a feature in the thermal image and a feature in the low-light image. In some such examples, the selectively colorized image may additionally or alternatively comprise one or more of a difference image produced by comparing the edges in the thermal image and the edges in the low-light image, the difference image composited with the thermal image, and the difference image composited with the low-light image. In some such examples, the computing system may additionally or alternatively comprise a thermal imaging subsystem and a low-light imaging subsystem. In some such examples, the computing system may additionally or alternatively comprise instructions further executable to generate a histogram via binning pixels of the thermal image based on pixel intensity levels; based at least on the histogram, determine a subset of pixels of the thermal image to colorize; and produce the selectively colorized image also based on applying a threshold condition to the histogram. In some such examples, the threshold condition may additionally or alternatively be user-selected.

Another example provides a method comprising receiving a thermal image, each pixel of the thermal image comprising an intensity level; generating a histogram via binning pixels by intensity level; based at least on the histogram, determining a subset of pixels to colorize; colorizing the subset of pixels to obtain a selectively colorized image; and outputting the selectively colorized image. In some such examples, the method may additionally or alternatively comprise receiving a low-light image; fusing the low-light image and the selectively colorized image to produce a fused image; and outputting the fused image. In some such examples, the method may additionally or alternatively comprise applying a local contrast enhancement algorithm on the thermal image thereby modifying intensity levels of the pixels, and creating the histogram via binning the pixels by modified intensity level. In some such examples, determining a subset of pixels to colorize may additionally or alternatively be further based upon a user-selected intensity threshold that is applied to the histogram.

Claim 1:
A computing system (<NUM>), comprising:
a processor (<NUM>);
a storage device (<NUM>) holding instructions executable by the processor to
receive (<NUM>) a thermal image acquired via a thermal imaging system, each pixel of the thermal image comprising an intensity level;
generate (<NUM>) a histogram via binning pixels by intensity level;
based at least on the histogram, determine (<NUM>) a subset of pixels to colorize;
colorize (<NUM>) the subset of pixels to produce a selectively colorized image; and
output (<NUM>) the selectively colorized image.