Denoising 3DNR

该篇文章介绍了如何使用Python实现Denoising3dnr函数,对红外图像进行3D噪声抑制和滤波处理,通过相邻帧的差异补偿和自动增益控制提高图像质量。
""" ------------------------------------------------------------------------
@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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

#>木易

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值