【文章+代码】基于Matlab的低光照图像增强方法的研究

❤️👊Welcome❤️👊

🌟🌟一万年太久,只争朝夕🌟🌟

⭐️建议收藏,随时翻阅⭐️

📚本文目录

🌲部分内容

本文探讨了三种常见的低光照图像增强技术:直方图均衡、同态滤波和小波变换。低光照条件下获取的图像往往亮度低、对比度差、细节模糊,这些问题严重影响了图像的视觉质量和后续处理效果。直方图均衡通过重新分布图像的灰度值来提升对比度,虽然效果显著,但易放大噪声。同态滤波通过分离和处理图像的亮度和反射成分,改善对比度和细节,但可能引入过曝和色彩失真。小波变换利用多尺度分析能力增强细节和抑制噪声,但计算复杂度较高。本文在MATLAB平台上对这三种技术进行了仿真实验,结果表明,直方图均衡在快速提升对比度方面表现突出,同态滤波在均衡光照和增强细节方面效果显著,小波变换在细节保留和噪声抑制方面表现优异。本文总结了各技术的优缺点,并提出了结合多种技术的方法,以期为低光照图像处理提供更全面的解决方案。
在这里插入图片描述
MATLAB的图像处理工具箱(Image Processing Toolbox)包含了多种图像增强函数,如直方图均衡化(histeq)、对比度调整(imadjust)和滤波操作(imfilter)。可以直接调用这些功能,方便用户对图片强化功能的快速实现,方便用户快速实现图像增强功能。

直方图均衡化

直方图均衡化是一种常用的图像增强技术,目的是通过调整图像灰阶分布,提高画面的对比度。低照度画面通常会有灰阶分布集中在灰阶数值较低的范围内,造成画面整体亮度不高,反差较大的问题。通过直方图的均衡化,灰阶分布可扩展至整个灰阶范围,以提升影像的对比度与亮度。
在这里插入图片描述

同态滤波

同态滤波法是一种基于频域处理的图像增强技术,尤其适用于增强低照度图像。该方法通过对画面的亮度成分和反射成分进行分离和处理,使画面质量得到提高。低照度画面通常亮度较低,对比和细节的有效增强都可以采用同态滤波法。同态滤波的基本思想是将图像进行对数变换,将乘性模型转换为加性模型,然后在频域内进行高通滤波,最后通过指数变换(IndexTransformation)将图像还原,如图所示,具体步骤如下:
(1)对数变换:对原图像进行对数变换,使乘性模型变成加性模型。
(2)傅里叶变换:对对数变换后的图像进行傅里叶变换,使之转换为频域。
(3)高通滤波:为了加强图像的高频分量(细节)和对低频分量(亮度)的抑制,在频域中应用高频滤波器。
(4)逆傅里叶变换:变换滤波后的频域图像,再转换回空间域。
在这里插入图片描述

小波变换

小波变换是一种特别适合处理低照度影像的常用影像强化方式。与傅里叶变换不同,小波变换能够同时提供时间(空间)和频率信息,使其在处理具有局部特征和多尺度特性的图像时表现出色。通过小波变换,可将图像分解成不同尺度、不同频率的子带,从而有针对性地提升图像的细节和对比度。
在这里插入图片描述

🎨结果展示

直方图均衡化仿真

在这里插入图片描述
在这里插入图片描述
原图(上)灰度值主要集中在灰度较低、灰度中等的区域,总体分布不均匀。这种灰度分布表明图像的大部分像素亮度较低,导致图像整体偏暗,缺乏足够的对比度和细节层次。灰度值的这种集中趋势正是造成图像视觉效果不佳的主要原因之一。针对这种图像,可以采用直方图均衡化方法进行图像增强。从结果图(下)可以看出,图像经过直方图均衡化处理后,色彩饱和度明显增强,画面层次分明。然而,处理后的图像色彩显得过于丰富,呈现出类似油画的效果,且出现了一些噪点。
在这里插入图片描述

💻部分代码

im_input = im2double(imread('images\1.bmp'));
im_output = imadjust(im_input,[min(im_input(:)) max(im_input(:))], [0 1]);
histogram(im_input,64,'EdgeColor','r','FaceAlpha',1,'FaceColor','r');
hold on;
histogram(im_output,64,'EdgeColor','k','FaceAlpha',0.2,'FaceColor','b');
hold off;

%直方图均衡化
im_input = im2double(imread('images\1.bmp'));
im_output = imadjust(im_input,[min(im_input(:)) max(im_input(:))], [0 1],0.3);
im_histeq = histeq(im_input);
figure, imshow(im_output); title('Contrast stretch');
figure, imshow(im_histeq); title('Histgram equalization');

% 同态滤波
im_input = im2double(imread('images\2.jpg'));
im_o2 = homo_filter(im_input);
figure;
imshow(im_o2);

💢资源获取

获取Python、Matlab源码、研究指导,享受更多粉丝福利,欢迎关注【🔍星辰研创】,回复【006】获取。

  • 10
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值