
【图像增强】拉氏滤波的图像质量提升matlab源码
标准拉普拉斯滤波会导致亮度不均匀增强 使用拉普拉斯高增益滤波可以更好地保持细节 自定义拉普拉斯滤波与标准滤波比较它们的Input image
发布日期:2021-05-20 10:46:13
浏览次数:21
分类:精选文章
本文共 1959 字,大约阅读时间需要 6 分钟。
图像增强原理分析
为了更好地理解图像增强的技术,我们从简单的图片分析入手。通过观察,我们发现在传统的图像增强过程中,如果处理不当,特别是在强边缘附近,往往会产生明显的纹理瑕疵,同时增强效果也可能显得不协调。我们的目标就是解决这些问题。
增强方法
对于图片中的粗壮十字星,我们可以将其视为一个独立的像素点。在增强过程中,我们主要关注每个像素点左侧的拉普拉斯变换系数。虽然此处忽略了右侧的像素,但这是因为每个局部都类似于左侧的左侧部分,通过这种方式,处理每个局部时都会分别处理右侧部分。
!></>
Sigma作为用户定义的细节区分阈值,用于确定需要处理的具体区域。中心坐标系的意义在于帮助我们理解不同区域的关注点,这部分后续会详细讲解。
!></>
关于对比度的增强,我们可以简单总结为:将原对比度从10扩展到20。具体实现方式如下:
!></>
图片的处理分为两部分:在sigma范围内外进行不同处理。前两个图展示了两种不同的方法:前者是对比度增强,后者是反色调映射。第三个图综合了对外区域的色调映射与内区域的细节增强。
!></>
MATLAB代码实现
function HighBoostFiltering handle = figure; set(handle, 'unit', 'pixels', 'position', [0 0 1000 600]); movegui(handle, 'center'); img = imread('k.bmp'); [h w] = size(img); filter_mask = {... [0 -1 0; -1 4 -1; 0 -1 0], % 拉普拉斯高增益滤波器 [-1 -1 -1; -1 8 -1; -1 -1 -1] % 标准拉普拉斯滤波器 }; imgsharp2 = imfilter(double(img), filter_mask{1}, 'corr', 'symmetric', 'same'); imgafter2 = double(img) * A + imgsharp2; imgafter2 = uint8(imgafter2); subplot(2, 4, 1:2, img); title('原图与标准拉普拉斯滤波结果'); subplot(2, 4, 3:4, imgsharp2); title('划分类 filter result'); subplot(2, 4, 5:6, imgafter2); title('高增益滤波后结果'); close(hwait);endfunction imgMSR = EdgeFilling(img, m, n, which) [h w] = size(img); switch which case 1 fill = img; case 2 fill = uint8(zeros(h, w)); case 3 fill = uint8(ones(h, w) * 127); case 4 fill = uint8(ones(h, w) * 255); end imgMSR = EdgeFilling(img, m, n, which);end
此外,还有一个自定义的边缘填充镜像函数:
function imgafter1 = double(img) * A + imgsharp1;imgafter1 = uint8(imgafter1);
代码说明
代码中,HighBoostFiltering函数展示了如何通过MATLAB的imfilter函数实现高增益滤波。key point包括:
- 使用拉普拉斯算子的相关卷积进行滤波
- 通关处理,并通过镜像处理策略去除边缘干扰
- 然后基于用户定义的A值进行亮度调整
自定义函数EdgeFilling用于图像边缘填充。支持四种填充方式,镜像复制、黑色填充、灰色填充和白色填充。
结果演示
从代码执行结果可以看到:
通过此方法,我们发现高增益滤波不仅提升了细节质量,还能通过调整A值实现亮度适当的提升。未来计划在这个基础上拓展更多参数来实现更灵活的图像增强效果。
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月11日 07时15分55秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
cordova打包apk更改图标
2019-03-11
GitHub上传时,项目在已有文档时直接push出现错误解决方案
2019-03-11
文件系统的层次结构
2019-03-11
vue(渐进式前端框架)
2019-03-11
vscode设置eslint保存文件时自动修复eslint错误
2019-03-11
Remove Extra one 维护前缀最大最小值
2019-03-11
Linux操作系统的安装与使用
2019-03-12
C++ 继承 详解
2019-03-12
OSPF多区域
2019-03-12
Docker入门之-镜像(二)
2019-03-12
去了解拉绳位移编码器的影响因素
2019-03-12
无法初始化Winsock2.2处理
2019-03-12
vMotion 操作失败进度卡在14% ,报错: Operation Timed out
2019-03-12
重置UAG Application admin密码
2019-03-12
Horizon Daas租户管理平台扩展分配时报:内部错误
2019-03-12
嵌入式系统试题库(CSU)
2019-03-12
【自考】之信息资源管理(一)
2019-03-12
setup facatory9.0打包详细教程(含静默安装和卸载)
2019-03-12
Linux kernel pwn --- CSAW2015 StringIPC
2019-03-12