Efficient Image Dehazing with Boundary Constraint and Contextual Regularization学习笔记

本文介绍Matlab中的circshift函数,用于矩阵的循环平移,并演示了如何使用psf2otf函数进行数组补零再移位,最终实现二维傅里叶变换。通过实例展示了两个函数的具体应用。

关于代码的学习。

预备知识:

1、matlab函数:circshift,矩阵循环平移函数。

调用形式:circshift(A,[m,n]);,将矩阵A向下循环平移m行,向右循环位移n列

a = [1,2,3;4,5,6;7,8,9];
b = circshift(a,[1,2])
b =

     8     9     7
     2     3     1
     5     6     4

2、psf2otf函数:数组补零后再移位

a = [1 2 4; 4 6 5; 2 8 1];
a1 = circshift(a,-floor(size(a)/2)); b = fft2(a1);     % compare b to otf 
otf = psf2otf(a);

以上b=otf

psf2otf(a, [nRows, nCols])  % 表示补零后的二维傅里叶变换的维数

转载于:https://www.cnblogs.com/Jerry-PR/articles/4990462.html

### 去雾技术概述 带有边界约束和上下文正则化的高效图像去雾技术旨在解决单幅图像中存在的大气散射现象,从而恢复清晰的无雾图像。这种方法通过引入传递函数(transmission function)的内在边界条件,并结合加权 \(L_1\) 范数作为上下文正则化项,构建了一个优化问题框架来估算未知场景的传输率[^1]。 #### 边界约束的作用 边界约束利用了自然环境中物体表面反射光强度分布的特点,在特定条件下能够提供关于透射率的有效先验信息。具体来说,对于远离观察者的远距离区域,其透射率接近于零;而对于近处的对象,则更倾向于较高的数值。这种特性有助于减少解空间范围并提高重建质量[^3]。 #### 上下文正则化机制 为了进一步增强模型鲁棒性和泛化能力,研究者们提出了基于权重调整策略下的\(L_1\) 正则化方案。相比于传统的均方误差(MSE),即所谓的\(L_2\) 损失,\(L_1\) 更有利于稀疏表示的学习过程——它鼓励得到具有较少非零系数的结果集。因此当应用于图像处理领域时,可以有效抑制噪声干扰的同时保留边缘特征等重要结构信息[^4]。 ```python import numpy as np from scipy.fftpack import fftshift, ifftshift, fft2, ifft2 def psf2otf(psf, shape): """ Convert point spread function to optical transfer function. Parameters: psf : array_like Point Spread Function (PSF). shape : tuple of int Output size for OTF. Returns: otf : ndarray Optical Transfer Function (OTF). Notes: This implementation pads the PSF with zeros before computing its FFT, ensuring that circular convolution properties hold true during inverse operations. References: - MATLAB's built-in `psf2otf` documentation """ # Pad PSF to output dimensions and center it at origin padded_psf = np.zeros(shape) psf_size = np.array(psf.shape) start_indices = ((np.array(shape) - psf_size)//2).astype(int) end_indices = start_indices + psf_size padded_psf[start_indices[0]:end_indices[0], start_indices[1]:end_indices[1]] = psf # Perform Fourier Transform after shifting DC component back into corner otf = fftshift(fft2(ifftshift(padded_psf))) return otf ``` 此代码片段展示了如何将点扩散函数转换成光学传递函数的过程,这是实现快速傅立叶变换域内操作的关键步骤之一。在实际应用中,这一部分通常会与其他组件一起工作以完成整个去雾流程的设计与实施[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值