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.
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
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.
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.
It achieves real-time removal of stripe noise, avoids the phenomenon of reverse vertical stripes, and improves image quality and analysis and recognition accuracy.
Smart Images

Figure FT_1 
Figure FT_2 
Figure FT_3
Abstract
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