""" ------------------------------------------------------------------------
@Description : ******
@Author : A1988
@Time : 2024-01-21
@Site : ylong.blog.youkuaiyun.com
: https://www.zhihu.com/people/ylong1988
@File : Denoising3dnr.py
------------------------------------------------------------------------ """
import os
import natsort
import cv2
import numpy as np
import matplotlib.pyplot as plt
import time
from func_autoagc import *
from common import *
import imageio
def func_Denoising3dnr(FILEPATH_, filesort_):
# FILEPATH_ : .raw文件路径
# filesort_ : 路径下文件名字列表
print(f'Hi, func_Denoising3dnr ------------------------------------')
imagelist = []
nFramenum = 0
radius = 2 # 2*radius + 1
for nFname in filesort_:
if nFname.endswith(".raw"):
# 1.读取一帧图像
dstimg = np.fromfile(FILEPATH_ + '/' + nFname, dtype=np.uint16).reshape(1024, 1280)
rows, cols = dstimg.shape
dstimg_matrix1 = np.zeros([rows, cols])
# 2.3DNR相关算法流程
imagelist.append(dstimg)
print('nFramenum = %3d/%3d' % (nFramenum, len(filesort_)))
if nFramenum > 1:
tempnum0 = imagelist[nFramenum - 2]
tempnum1 = imagelist[nFramenum - 1]
tempnum2 = imagelist[nFramenum]
# 权重补偿
diff = tempnum2 - tempnum1
dstimg_matrix1 = imagelist[nFramenum]
dstimg_matrix1[diff > 50] = 0
else:
dstimg_matrix1 = imagelist[nFramenum]
# 进行滤波
nFramenum += 1
# 3.显示图像及直方图
dstimg_ = func_autoagc(dstimg_matrix1.astype(np.uint16), 0.5, 99.9) # 14bit映射到8bit显示
# 4.显示图像
func_imgshow(nFname, dstimg_)
cv2.waitKey(10)
if __name__ == '__main__':
FILEPATH = 'D:/PyCharm/myInfrared/images/01_nuc/T20231117_nuc/Mono14bit_Scene'
fileName = os.listdir(FILEPATH)
filesort = natsort.natsorted(fileName)
func_Denoising3dnr(FILEPATH, filesort)
Denoising 3DNR
最新推荐文章于 2024-08-01 09:12:08 发布
该篇文章介绍了如何使用Python实现Denoising3dnr函数,对红外图像进行3D噪声抑制和滤波处理,通过相邻帧的差异补偿和自动增益控制提高图像质量。
4082

被折叠的 条评论
为什么被折叠?



