A method for removing infrared image stripe noise

By segmenting and filtering the high-frequency components of infrared images to obtain the most suitable stripe noise value, the problem of excessive noise removal of anti-vertical stripes in existing technologies is solved, achieving efficient and real-time noise removal, and improving image quality and recognition accuracy.

CN118195943BActive Publication Date: 2025-11-18WUHAN DOPPLER TECH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202410351364.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-03-26
Publication Date
2025-11-18
Estimated Expiration
2044-03-26

AI Technical Summary

Technical Problem

Existing technologies struggle to effectively remove stripe noise from infrared images in real time, especially when object edges are present in the image scene, leading to excessive noise removal and the appearance of reverse vertical stripes.

Method used

By segmenting and filtering the high-frequency components of the infrared image, the most suitable stripe noise value is obtained. The low-frequency component image is extracted using a low-pass filter, and the minimum noise value is selected in the uniform scene area for subtraction denoising, thus avoiding the problem of excessive noise removal caused by full column or full row statistics.

Benefits of technology

It achieves real-time removal of stripe noise, avoids the phenomenon of reverse vertical stripes, and improves image quality and analysis and recognition accuracy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure FT_1
    Figure FT_1
  • Figure FT_2
    Figure FT_2
  • Figure FT_3
    Figure FT_3
Patent Text Reader

Abstract

The present application relates to a kind of methods for removing infrared image stripe noise, belong to infrared imaging technical field.It includes the following steps, using low-pass filter to original image is smoothed, obtain low-frequency component image;Weight matrix of filter high-frequency weight image data is obtained simultaneously;With original image subtract low-frequency component image, obtain high-frequency component image: traverse each column of high-frequency component image;Each column is divided into several sections;Filter each section of each column meets the high-frequency value of stripe noise weight threshold, respectively, carry out cumulative summation;The stripe noise value of each section of each column is calculated by the way of average;From it, the minimum stripe noise value of uniform scene area is selected;Obtain the final stripe noise array of each column;Original image each column subtracts corresponding stripe noise, obtains the image after denoising.The present application does not need full column statistics, by segmented method, just can solve the anti vertical stripe caused by removing vertical stripe method.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to a method for removing stripe noise from infrared images, belonging to the field of infrared imaging technology. Background Technology

[0002] Due to the manufacturing process of infrared detectors, the readout circuits of infrared focal plane arrays typically share the same output circuit for pixels in the same column (or row). The bias voltage of each column's readout circuit is not entirely consistent, resulting in non-uniform noise in the image, known as stripe noise. The amplitude of stripe noise changes rapidly as the focal plane continues to operate.

[0003] Non-uniformity correction methods typically include baffle-based calibration methods and scene-based correction methods. Baffle-based calibration methods cannot update parameters in real time and are ineffective at eliminating noise. Scene-based correction methods require long image sequence algorithms to converge and are prone to artifacts, also failing to effectively eliminate noise. The presence of stripe noise not only affects imaging quality but also negatively impacts image and video analysis and recognition applications. Therefore, real-time stripe noise removal remains a pressing problem for infrared image applications.

[0004] Invention patent CN201510119228.7 discloses a method for eliminating stripe noise in infrared images. First, the average value of N columns in the infrared image is calculated; then, the stripe noise is estimated. Invention patent CN201910051808.5 discloses a method for eliminating stripe noise in infrared images. First, a deviation function between column stripe noise in adjacent columns of the original single-frame infrared image is established; then, the deviation function is minimized recursively to estimate the column noise deviation value; finally, the column noise deviation value is subtracted from the original image to remove the column noise.

[0005] In the application of these algorithms to remove stripe noise, each column is statistically analyzed based on all pixels in the column, and then filtered within a preset threshold range to obtain the column noise value. Finally, the noise value corresponding to each column is subtracted from the entire image to obtain the denoised image. When the image scene contains object edges in the same direction as the stripe noise, such as buildings, utility poles, fences, etc., and the statistically analyzed stripe noise is within a reasonable threshold range, the problem of excessive stripe noise will occur. This results in the phenomenon of reverse vertical stripes appearing in a scene with uniform pixels in the corresponding column, leading to over-subtraction. This is a common problem existing in various infrared products. Summary of the Invention

[0006] This invention proposes a method for removing stripe noise from infrared images.

[0007] This invention, through data analysis, reveals that stripe noise, similar to image details, is part of the high-frequency components of an image. Therefore, our main approach is to segment and filter the high-frequency data to obtain the most suitable stripe noise value, and then subtract the corresponding stripe value to achieve the purpose of removing stripe noise.

[0008] Taking the removal of column stripe noise as an example, the method of the present invention will be described, and the process includes the following steps:

[0009] (1) A low-pass filter is used to smooth the original image ImgSrc with a resolution of Width*Height to obtain the low-frequency component image ImgLowF; at the same time, the weight matrix ImgWeight of the filtered high-frequency weighted image data is obtained.

[0010] (2) Subtract the low-frequency component image from the original image to obtain the high-frequency component image: ImgHighF = ImgSrc-ImgLowF;

[0011] (3) Traverse each column of the high-frequency component image ImgHighF; divide each column into SegNum segments;

[0012] (4) Filter the high-frequency values ​​of ImgHighF that satisfy the stripe noise weight threshold for each segment of ImgWeight in each column, sum them up and calculate NoiseSum[i][j], and count the corresponding number NoiseNum[i][j]; where i represents the column number, there are a total of Width; j represents the segment number;

[0013] (5) Calculate the stripe noise value for each segment of each column by averaging.

[0014] StripeNoise[i][j]=NoiseSum[i][j] / NoiseNum[i][j];

[0015] (6) Select the smallest stripe noise value of the uniform scene region from the SegNum noise values ​​in each column; obtain the final stripe array;

[0016] StripeNoiseRes[i]=min(StripeNoise[i][j]);

[0017] (7) Subtract the corresponding stripe noise StripeNoiseRes from each column of the original image ImgSrc to obtain the denoised image ImgDst.

[0018] ImgDst = ImgSrc-StripeNoiseRes.

[0019] In step (3), each column is divided into SegNum segments. The number of segments is determined based on the width and height of the image resolution, combined with experience. More segments are used for high-resolution images, and fewer segments are used for low-resolution images. Generally, 2-4 segments are sufficient.

[0020] In step (4), the threshold is determined by adjusting the intensity of the stripe noise, and the value range is between 0 and 1.

[0021] The above example uses the removal of column stripe noise. Clearly, this method is also applicable to removing row stripe noise. The operation process can be simply adjusted as follows:

[0022] (1) A low-pass filter is used to smooth the original image ImgSrc with a resolution of Width*Height to obtain the low-frequency component image ImgLowF; at the same time, the weight matrix ImgWeight of the filtered high-frequency weighted image data is obtained.

[0023] (2) Subtract the low-frequency component image from the original image to obtain the high-frequency component image: ImgHighF = ImgSrc-ImgLowF;

[0024] (3) Traverse each row of the high-frequency component image ImgHighF; divide each row into SegNum segments;

[0025] (4) Filter the high-frequency values ​​of ImgHighF that satisfy the stripe noise weight threshold for each segment of ImgWeight in each row, sum them up to NoiseSum[i][j], and count the corresponding number NoiseNum[i][j]; where i represents the row number, there are a total of Height; j represents the segment number;

[0026] (5) Calculate the stripe noise value of each segment in each row by averaging.

[0027] StripeNoise[i][j]=NoiseSum[i][j] / NoiseNum[i][j];

[0028] (6) Select the smallest stripe noise value of the uniform scene region from the SegNum noise values ​​of each row; obtain the final stripe array;

[0029] StripeNoiseRes[i]=min(StripeNoise[i][j]);

[0030] (7) Subtract the corresponding stripe noise StripeNoiseRes from each row of the original image ImgSrc to obtain the denoised image ImgDst.

[0031] ImgDst = ImgSrc-StripeNoiseRes.

[0032] In step (3), each row is divided into SegNum segments. The number of segments is determined based on the width and height of the image resolution, combined with experience. More segments are used for high-resolution images, and fewer segments are used for low-resolution images. Generally, 2-4 segments are sufficient.

[0033] In step (4), the threshold is determined by adjusting the intensity of the stripe noise, and the value range is between 0 and 1.

[0034] This invention filters the weighted image to eliminate excessively high-frequency noise. It segments and statistically analyzes stripe noise in different regions of the image scene as candidates, then selects the most suitable stripe noise value. Instead of performing full-column statistics, the segmentation method effectively solves the problem of reverse vertical stripes caused by the vertical stripe removal method. Attached Figure Description

[0035] Figure 1 This is a striped noise map; there are slight stripes in the sky area above the building on the left.

[0036] Figure 2 Traditional methods treat each column of an image as a whole for statistical analysis, rather than segmenting it. This results in the side effect of reverse vertical stripes (as seen in the sky area above buildings).

[0037] Figure 3 This is the stripe removal effect of the method of the present invention.

[0038] Figure 4 This is a flowchart of the method of the present invention. Detailed Implementation

[0039] (1) Figure 1 The image is an infrared image ImgSrc with stripe noise and a resolution of 640*512. A smoothing window is used for low-pass filtering; in this case, a bilateral filtering algorithm is employed to obtain the low-frequency component image ImgLowF. Simultaneously, the weight matrix ImgWeight of the filtered high-frequency weighted image data is obtained.

[0040] (2) Subtract the low-frequency component image from the original image to obtain the high-frequency component image;

[0041] ImgHighF = ImgSrc - ImgLowF;

[0042] (3) Traverse each column of the high-frequency component image ImgHighF; divide each column of 512 pixels into SegNum=4 segments, each segment containing 128 pixels;

[0043] (4) Filter the high-frequency values ​​of ImgHighF that satisfy the stripe noise weight threshold for each segment of ImgWeight in each column. The threshold is determined by adjusting the intensity of the stripe noise. The values ​​are summed and NoiseSum[i][j] is calculated, and the corresponding number NoiseNum[i][j] is counted. Where i represents the column number, and there are a total of Width columns. j represents the segment number, which can be allocated according to the height size. SegNum is the same.

[0044] (9) Calculate the stripe noise value for each segment of each column by averaging.

[0045] StripeNoise[i][j]=NoiseSum[i][j] / NoiseNum[i][j];

[0046] (10) Select the most suitable stripe noise value from the SegNum=4 noise values ​​in each column. The smallest stripe noise value in the uniform scene area can be selected to obtain the final stripe array.

[0047] StripeNoiseRes[i]=min(StripeNoise[i][j]);

[0048] (11) Subtract the corresponding stripe noise StripeNoiseRes from each column of the original image ImgSrc to obtain the denoised image ImgDst.

[0049] ImgDst = ImgSrc-StripeNoiseRes. This yields... Figure 3 The effect shown.

[0050] If not processed in segments, the high-frequency noise of the entire data in each column is counted as stripe noise. The corresponding stripe noise StripeNoiseRes is subtracted from each column of the original image ImgSrc to obtain the denoised image ImgDst. ImgDst = ImgSrc - StripeNoiseRes. Figure 2 The effect shown is that the vertical stripes in the sky area are severely affected.

Claims

1. A method for removing stripe noise from infrared images, characterized in that, The stripe noise is column stripe noise, and includes the following steps: (1) A low-pass filter is used to smooth the original image ImgSrc with a resolution of Width*Height to obtain the low-frequency component image ImgLowF; at the same time, the weight matrix ImgWeight of the filtered high-frequency weighted image data is obtained. (2) Subtract the low-frequency component image from the original image to obtain the high-frequency component image: ImgHighF = ImgSrc-ImgLowF; (3) Traverse each column of the high-frequency component image ImgHighF; divide each column into SegNum segments; (4) Filter the high-frequency values ​​of ImgHighF that satisfy the stripe noise weight threshold for each segment of ImgWeight in each column, sum them up and calculate NoiseSum[i][j], and count the corresponding number NoiseNum[i][j]; Where i represents the column number, which has a total of Width columns; j represents the segment number. (5) Calculate the stripe noise value for each segment of each column by averaging. StripeNoise[i][j]=NoiseSum[i][j] / NoiseNum[i][j]; (6) Select the smallest stripe noise value of the uniform scene region from the SegNum noise values ​​in each column; obtain the final stripe array; StripeNoiseRes[i]=min(StripeNoise[i][j]); (7) Subtract the corresponding stripe noise StripeNoiseRes from each column of the original image ImgSrc to obtain the denoised image ImgDst. ImgDst = ImgSrc-StripeNoiseRes.

2. The method according to claim 1, characterized in that, In step (3), each column is divided into SegNum segments, where SegNum is 2-4.

3. The method according to claim 1, characterized in that, In step (4), the threshold value ranges from 0 to 1.

4. A method for removing stripe noise from infrared images, characterized in that, The stripe noise is line stripe noise, and includes the following steps: (1) A low-pass filter is used to smooth the original image ImgSrc with a resolution of Width*Height to obtain the low-frequency component image ImgLowF; at the same time, the weight matrix ImgWeight of the filtered high-frequency weighted image data is obtained. (2) Subtract the low-frequency component image from the original image to obtain the high-frequency component image: ImgHighF = ImgSrc-ImgLowF; (3) Traverse each row of the high-frequency component image ImgHighF; divide each row into SegNum segments; (4) Filter the high-frequency values ​​of ImgHighF that satisfy the stripe noise weight threshold for each segment of ImgWeight in each row, sum them up and calculate NoiseSum[i][j], and count the corresponding number NoiseNum[i][j]. Where i represents the row number, which has a total of Height rows; j represents the segment number. (5) Calculate the stripe noise value of each segment in each row by averaging. StripeNoise[i][j]=NoiseSum[i][j] / NoiseNum[i][j]; (6) Select the smallest stripe noise value of the uniform scene region from the SegNum noise values ​​of each row; obtain the final stripe array; StripeNoiseRes[i]=min(StripeNoise[i][j]); (7) Subtract the corresponding stripe noise StripeNoiseRes from each row of the original image ImgSrc to obtain the denoised image ImgDst. ImgDst = ImgSrc-StripeNoiseRes.

5. The method according to claim 4, characterized in that, In step (3), each row is divided into SegNum segments, with 2-4 segments.

6. The method according to claim 1, characterized in that, In step (4), the threshold value ranges from 0 to 1.

Citation Information

Patent Citations

  • Infrared image stripe noise elimination method

    CN104657958A

  • A method for eliminating stripe noise of an infrared image

    CN109903235A

  • Method and device for reducing dynamic stripe noise, electronic equipment and storage device

    CN110445953A

  • Meter-scale planar element surface shape detection device and method for eliminating intermediate frequency coherent noise

    CN115900582A