【图像增强】基于matlab同态滤波+Retinex+模糊技术图像增强【含Matlab源码 1013期】
一、 图像增强技术简介
1 图像增强
图像增强是对图像的某些特征,如边缘、轮廓、对比度等进行强调或锐化,以便于显示、观察或进一步分析与处理。通过对图像的特定加工,将被处理的图像转化为对具体应用来说视觉质量和效果更“好”或更“有用”的图像。
图像增强是最基本最常用的图像处理技术,常用于其他图像处理的预处理阶段。
(1)高通平滑、低通锐化;平滑模糊、锐化突出图像细节
(2)滤波器还有带通、带阻等形式
(3)根据噪声(椒盐噪声、高斯噪声…)的不同,选用不同的滤波
(4)邻域有4-邻域、对角邻域、8-邻域,相对应的有邻接,即空间上相邻、像素灰度相似
(5)图像边缘处理:忽略不处理、补充、循环使用
(6)目前尚未图像处理大多基于灰度图像
2 同态滤波
同态滤波采用的是照射-反射模型, 即通过同时减小图像的灰度范围和增强图像的对比度来对图像增强. 图像可表示为照射i(x,y)和反射r(x,y) 两部分的乘积
将其变换到对数域, 并进行傅里叶变换得
式中: I(u,v)和R(u,v)分别是In(i(x,y))和In(r(x,y)) 的傅里叶变换, 借助滤波函数H(u,v)对F(u,v)进行滤波, 可以分离得到入射分量和反射分量
滤波后, 进行傅里叶逆变换得
对式(25)取指数后, 得到滤波后的图像
3 Retinex增强处理
基于全局直方图、局部直方图的图像去雾算法在理论及实现上比较简单,能起到一定的去雾处理效果。为了进行对比, 实验中采取了Retin ex图像增强算法来进行对比, 该算法可以平衡图像灰度动态范围压缩、图像增强和图像颜色恒常三个指标,能够实现对含雾图像的自适应性增强。因此, Retin ex增强处理通过对RGB图像的R、G、B三层通道分别应用Retin ex算法进行处理, 再整合到新的图像的方式来进行。
4 图像的直觉模糊增强算法
模糊范数在模糊集的理论体系中占有重要地位,YAGER通过“最大-最小”算子定义了模糊范数
HAMACHER通过纯代数运算定义模糊范数
对于一幅大小为M×N的灰度图像B(彩色图像取其亮度),其灰度值范围为[0,L-1],则图像B的模糊域的隶属函数可定义为
式中:gmin和gmax分别为图像灰度值的最小值和最大值;gi j为像素(i,j)的灰度值。
直觉模糊集:设X是一个给定论域,则X上的一个直觉模糊集A为
A={<x,μA(x),γA(x)>|x∈X} (6)
式中:μA(x)∈[0,1]为隶属函数,γA(x)∈[0,1]为非隶属函数,且对于A上的所有x∈X,0<μA(x)+γA(x)≤1,πA(x)=1-μA(x)-γA(x)为犹豫度。
式中:0≤α≤1,α用来调节隶属度μ(gi j)本身包含的模糊性,经实验验证,当0.6<α≤0.8时,图像增强效果较好。
利用式(4)的Hamacher模糊范数,可合成隶属度
直觉模糊增强图像的步骤为: 1) 通过式(5)计算图像每个像素点的隶属度;2) 通过式(7)和式(8)计算图像每个像素点的隶属度的下限和上限;3) 通过式(9)将图像每个像素点的隶属度的下限和上限合成为像素点的隶属度;4) 通过式(10)计算图像每个像素点的隶属度对应的灰度值。
二、部分源代码
Image=(imread('gugong1.jpg')); %打开图像并转换为double数据
imshow(Image);
[height,width,c]=size(Image);
RI=double(Image(:,:,1)); GI=double(Image(:,:,2)); BI=double(Image(:,:,3));
sigma=100; filtersize=[height,width];%高斯滤波器参数
gaussfilter=fspecial('gaussian',filtersize,sigma); %构造高斯低通滤波器
Rlow=imfilter(RI,gaussfilter,'replicate','conv');
Glow=imfilter(GI,gaussfilter,'replicate','conv');
Blow=imfilter(BI,gaussfilter,'replicate','conv');
minRL=min(min(Rlow)); minGL=min(min(Glow)); minBL=min(min(Blow));
maxRL=max(max(Rlow)); maxGL=max(max(Glow)); maxBL=max(max(Blow));
RLi=(Rlow-minRL)/(maxRL-minRL);
GLi=(Glow-minGL)/(maxGL-minGL);
BLi=(Blow-minBL)/(maxBL-minBL);
Li=cat(3,RLi,GLi,BLi);
figure;imshow(Li);title('估计光照分量');
imwrite(Li,'light.bmp');
Image=(imread('gugong1.jpg')); %打开图像并转换为double数据
imshow(Image);title('原始图像');
[height,width,c]=size(Image);
RI=double(Image(:,:,1)); GI=double(Image(:,:,2)); BI=double(Image(:,:,3));
beta=0.4;
alpha=125;
CR=beta*(log(alpha*(RI+1))-log(RI+GI+BI+1));
CG=beta*(log(alpha*(GI+1))-log(RI+GI+BI+1));
CB=beta*(log(alpha*(BI+1))-log(RI+GI+BI+1));
Rhigh=zeros(height,width);
Ghigh=zeros(height,width);
Bhigh=zeros(height,width);
end
Image=imread('Beautiful.jpg');
imshow(Image),title('原始图像');
[height width]=size(Image);
Image=double(Image);
xmax=max(max(Image));
Fe=2;%指数模糊因子
xc=mean2(Image);
Fd=(xmax-xc)/(2^(1/Fe)-1);
u=(1+(xmax-Image)/Fd).^(-Fe); %空间域变换到模糊域
times=2;%设置迭代次数
for k=1:times
for i=1:height %模糊域增强算子
for j=1:width
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
三、运行结果
四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.
文章来源: qq912100926.blog.csdn.net,作者:海神之光,版权归原作者所有,如需转载,请联系作者。
原文链接:qq912100926.blog.csdn.net/article/details/117968667
- 点赞
- 收藏
- 关注作者
评论(0)