matlab低照度图像增强先平滑再锐化代码
时间: 2023-07-03 13:25:21 浏览: 180
以下是一种可能的 Matlab 代码实现:
```matlab
% 读取低照度图像
img = imread('low_light_image.png');
% 平滑处理
filt_img = imgaussfilt(img, 2);
% 锐化处理
sharp_img = imsharpen(filt_img, 'Amount', 1.5, 'Radius', 1, 'Threshold', 0.01);
% 显示处理后的图像
figure;
subplot(1, 2, 1);
imshow(img);
title('原图');
subplot(1, 2, 2);
imshow(sharp_img);
title('增强后的图像');
```
这个代码使用了 `imgaussfilt` 函数对原图像进行高斯平滑处理,平滑半径为 2。接着使用 `imsharpen` 函数对平滑后的图像进行锐化处理,锐化程度为 1.5,半径为 1,阈值为 0.01。最终将处理后的图像显示出来。
相关问题
图像频域增强
### 关于图像频域增强的技术方法
#### 一、频域增强的基本原理
图像频域增强的核心在于通过修改图像的傅里叶变换来调整其频率特性。具体来说,在频域空间中,图像被分解成一系列正弦波分量,这些分量代表了不同频率的信息。通过对特定频率范围内的分量进行放大或抑制,可以实现对图像特性的控制[^1]。
#### 二、频域增强的主要技术手段
1. **高通滤波器**
高通滤波器用于突出图像中的高频部分,即细节和边缘信息。这种方法特别适用于锐化图像,因为边缘区域通常对应较高的频率分量。通过衰减低频成分并保留高频成分,可以在不破坏整体结构的情况下显著提升图像清晰度[^2]。
2. **低通滤波器**
与高通滤波相反,低通滤波器主要用于平滑图像,减少噪声干扰。这种技术适合处理含有大量随机噪声的图像数据,能够有效降低不必要的细小波动,从而改善视觉效果。
3. **带通滤波器**
带通滤波器允许某一特定频率范围内的信号通过,同时抑制其余频率。这在实际应用中有助于提取具有特殊意义的中间频率特征,比如纹理模式识别等领域。
4. **同态滤波**
同态滤波是一种特殊的频域增强方法,旨在解决光照不均匀问题。该方法通过分离反射率和照度两个因素,并分别对其进行调节,最终合成新的图像输出。这种方式对于提高对比度尤其有用。
#### 三、MATLAB实现示例
以下是利用MATLAB实现简单频域增强的一个例子:
```matlab
% MATLAB代码:基于FFT的图像频域增强
function enhancedImage = frequencyDomainEnhancement(inputImage)
% 将输入图像转换为双精度浮点数格式
inputImageDouble = im2double(rgb2gray(inputImage));
% 计算二维快速傅里叶变换 (FFT)
fftImage = fftshift(fft2(inputImageDouble));
% 创建理想高通滤波器掩模
[M, N] = size(inputImageDouble);
cutoffFrequency = 30; % 截止频率设置
H = zeros(M,N); % 初始化滤波器矩阵
for u = 1:M
for v = 1:N
Duv = sqrt((u-M/2)^2 + (v-N/2)^2); % 距离原点的距离计算
if Duv >= cutoffFrequency
H(u,v) = 1;
end
end
end
% 应用滤波器到频谱上
filteredSpectrum = fftImage .* H;
% 反向 FFT 得到增强后的图像
enhancedImage = real(ifft2(ifftshift(filteredSpectrum)));
end
```
此函数实现了基本的理想高通滤波操作,用户可以根据需求替换不同的滤波策略以适应具体的场景要求。
---
阅读全文
相关推荐












