数字图像处理——南信大 范春年老师
期末复习笔记
https://elainelv.blog.csdn.net/article/details/85400015
matlab语法
-
字符串必须用单引号‘ ‘
逗号, 可作为指令间的分隔符,也可作为数组列之间的分隔符
~= 判断不等
… 表示续行 但在字符串中不能这样写
彩色图像是三维的 ,灰度图像是二维的
-
clc:清除命令窗口的内容,对工作环境中的全部变量无任何影响
close:关闭当前的Figure窗口
close all:关闭所有的Figure窗口
clear:清除工作空间的所有变量
clear all:清除工作空间的所有变量,函数,和MEX文件
whos 查看所有变量
save 保存所有变量到本地 load倒入变量
disp([‘a’,‘b’]) 在控制台打印a bs
-
数组 矩阵 向量操作
-
矩阵下标从1开始!!!
-
x=[1 2 3 4;5 6 7 8;9 10 11 12];生成三行四列的矩阵
x(1) 代表最左上角的元素,下标从1开始!
下标是按列的!!!
-
y=x(1,2:4);表示截取矩阵第一行的第2-4列
x(1:3,1:3) 截取矩阵的1-3行的1-3列
x(1,:) 获取第一行 不填有默认值
y’表示矩阵的转置
x=[x,y] ,是添加列 x=[x;x] ;是添加行
x(:)把矩阵排成一排,这一列是由a的每一列串联起来的 --在实现中值滤波时用到,结合median(A(😃)取中值函数
-
删除一位数组的一个元素 x(5)=[] 删除第五个元素
-
x=1:2:10 生成1-10 间隔为2的数组
-
.^2 矩阵每一个元素都乘2 ^ 矩阵乘法
-
-
fix 取整数部分 round 四舍五入ceil 天花板 floor地板
-
-
imfinfo(文件名) 获取文件信息
-
imwrite(A,filename,fmt)把图像数据写入文件
A是图像数据,filename是目标图像名字,fmt是要生成的图片的格式。
-
h =subplot(m,n,p)
将数字窗口分成m×n的网格,
并在当前图的第p个位置创建一个轴对象,并返回轴句柄。
-
imhist显示直方图
-
[m,n]=size(f) 获得图像的长宽 并赋值给m , n
-
-
I = rgb2gray(RGB) 将真彩色图像 RGB 转换为灰度图像 I
rgb2ind(imgrgb,256);%转换为256色的索引图像
mat2gray 把一个double类的任意数组转换成取值范围为[0 1]的亮度图像。其中图像I的取值范围也在0(黑色)到1(白色)之间。
im2uint8 把图像数据类型转换为无符号八位整型
I = mat2gray(A)
Num2str 把数字转换成字符串s
-
histeq 直方图均衡化 imhist 显示直方图
-
Sum(sum(f)) 求图像所有像素的和’sum(f)计算的是每一列的总和 ,矩阵的计算都是以列为单位的
[m,n] = size(f) //获取的f的高度 和 宽度 !注意区别
sum(a(😃) 计算a矩阵的所有元素之和;将图像矩阵A归一化为图像矩阵I, 归一化后矩阵中每个元素的值都在0到1范围内(包括0和1)。其中0表示黑色,1表示白色。
-
abs 函数 求绝对值,对于复数是取模值!
imshow(f,[]) 用于输出double类型的图像
-
roipoly();%取样函数
-
连乘prod(A) ;求矩阵元素个数numel(A) ; ones(m,n) 生成一个m*n的全1的矩阵
-
Sort(A)对A矩阵进行排序,是对每一列单独升序 sort(A(:))对列矩阵进行排序
期中考试总结
棋盘效应
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-akHjvl6p-1678872056125)(/Users/fanzhilin/Library/Application Support/typora-user-images/image-20210523125222509.png)]
马赫带效应 是指图像不同灰度级条带之间在灰度交界处存在
毛边现象
https://blog.csdn.net/sddzlsc/article/details/102657320
虚假轮廓
振铃现象·
注意只有高斯滤波器没有振铃现象
Butterworth 阶数n小的时候 才会减弱
以下灰度映射曲线中(r为输入图像的灰度,s为输出图像的灰度。输入和输出图像的灰度归一化为[ 0,1])。哪个可以用来增强过度曝光的图像()??
-
A.
我的答案: BD正确答案: AB
分析:
过度曝光图像偏白,图像的灰度值分布在右边,(255代表白色 0 黑色 )因此需要
邻域
Distance
结论:4邻域是8邻域 m邻域的充分条件!
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xXIL1q28-1678872056127)(/Users/fanzhilin/Library/Application Support/typora-user-images/image-20210523123247372.png)]
图像增强
概念
噪声
随机噪声 椒盐、高斯(在空域处理)、周期噪声(在频域处理)
空间域(spatial domain)
以图像左上为原点,横为y竖为x的二维平面。
频域、变换域(frequency domain)
在有些情况下,通过变换输入图像来表达处理任务,在变换域执行处理任务,然后再反变换到空间域会更好。
https://blog.csdn.net/ice__snow/article/details/78633143
直方图的图像增强
灰度直方图
-
概念
对应每一个灰度值,统计该灰度值的像素数,据此绘制的像素数-灰度值图形。0是黑,255是白
-
三种灰度直方图
even illumination 均匀光照 --均匀分布
overexposed 过曝图像 --集中在左边
underexposed 欠曝图像–集中在右边
灰度方差
:说明图像对比度(方差小,对比度小;方差大,对比度大)
A. 直方图反映了图像中不同灰度值的分布情况
B. 归一化直方图的所有分量之和等于1
C. 直方图描述了每个像素在图像中的数量
D. 在亮图像中,直方图的组成成分集中在高灰度的一侧
点处理
直方图均衡化histogram equalization
-
意义
得到灰度直方图均匀分布的新图像,灰度分布区域均匀,图像所占的像素灰度间距拉大,加大图像反差**(提高对比度)**,改善图像视觉效果,达到增强效果。
-
效果
-
方法
方法一
rk 输入图像fxy 原先图像的像素点
sk输出图像gxy(原先灰度值为k的像素点在新图像里的灰度值)
k灰度值
nk 灰度值为k的像素点个数
N 所有像素点个数
cdf 累计出现的次数 :累积分布函数(Cumulative Distribution Function),又叫分布函数,是概率密度函数的积分
L是灰度级 这里是255 即266-1
【方法二】
p(rk) 是占总体的比率 算的时候进行四舍五入取三位就行!
CDF是累积分布函数
7是灰度级-1 即 8个灰度级
INT[] 取整数部分忽略小数
=》与方法一的区别是统计了所有灰度级出现的次数!
- matlab代码
注意 matlab里的注释是%
matlab数组下标从1开始
%采用方法二
clear;
clc
f=imread(‘pout.tif’);
%1.初始化计数数组pf
pf=zeros(1,256);%pf数组初始化为0,一共256个pf1---pf256 对应灰度值 0-255!! ,pf数组存放的是每个像素出现的次数;注意默认是双精度!!!
[m,n]=size(f);%获得图像f的长宽,用来遍历数组,统计每个像素出现的次数
%2.统计每个像素0-255灰度值 出现的次数 对应的是pf下标1-256
for x=1:m
for y=1:n
pf(f(x,y)+1) = pf(f(x,y)+1)+1;%例如 原先图像灰度值为0 对应的是pf(1) pf(1)=pf(1)+1 f(x,y)对应像素点的灰度值
end
end
%3.次数除以总数 计算比率
pf = pf/m/n;
%4.计算cdf数组
cf=zeros(1,256);
cf(1)=pf(1);%初始状态
for i=2:256%从第二个开始算
cf(i)=cf(i-1)+pf(i);
end
%5.计算直方图均衡化后的新图像每个灰度值对应的个数
graylevel=fix(255*cf+0.5);
%6.重写新图像的灰度值
for x=1:m
for y=1:n
g(x,y)=graylevel(g(x,y)+1);%小技巧 例如灰度值为0的像素点对应的是graylevel(1)处的值
end
end
?找不到g
%数据类型转换 因为matlab默认为double类型,即zeros初始化时为double类型,而图像必须是八位的无符号整型
g=uint8(g);
//展示图像
https://blog…net/qq_17828675/article/details/78494444
https://blog.csdn.net/IT_charge/article/details/105541083
线性变换和非线性变换
线性变换
-
图像反转
用于增强嵌入在一幅图像的暗区域中的白色或灰色细节。特别是当黑色面积在尺寸上占主导地位时。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xWFhHohD-1678872056128)(/Users/fanzhilin/Library/Application Support/typora-user-images/image-20210322081723419.png)]
-
阈值化 thresholding
如何取阈值?找二峰性的直方图的谷点
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cg2UsdAM-1678872056128)(/Users/fanzhilin/Library/Application Support/typora-user-images/image-20210322082240020.png)]
自适应的阈值化 与 全局的阈值化
非线性变换
-
对数变换
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rY68YPHD-1678872056128)(/Users/fanzhilin/Library/Application Support/typora-user-images/image-20210322085736233.png)]
Log 曲线 显示出低灰度部分更多的细节,将其高灰度值部分压缩,减少高灰度值部分的细节,从而达到强调图像低灰度部分的目的
曲线切线的斜率 >1=》增强对比度
应用:用于增强灰度值集中于左边的图像,即欠曝光图片,因为右边像素点牺牲少
% 读取图像 img_1= imread('Fig0308(a)(fractured_spine).tif'); % 输入图像是uint8类型的,所以第一步先将输入图像转换成double型的:double(img_1) % 对转换成double型的img_1,参照对数变换的公式,其中c = 1,调用log函数:log(1 + double(img_1)) % 将结果标定为[0, 1]范围内的double类的数组:mat2gray(log(1 + double(img_1)))--【归一化!!】 % 最后再将数组转换成uint8类型的图像:im2uint8(mat2gray(log(1 + double(img_1)))) img_2 = im2uint8(mat2gray(log(1 + double(img_1)))); % 显示图像 subplot(121), imshow(img_1); subplot(122), imshow(img_2)
例题:
-
指数变换
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WV6GDHwj-1678872056128)(/Users/fanzhilin/Library/Application Support/typora-user-images/image-20210322090744112.png)]
- 指数如何选择??
- 指数<1 对低灰度值区域(黑) 增强 ;对高 减小 --处理欠曝光图片 在暗区(左边)曲线切线斜率大于1
- 指数>1 对低 减小 ;对高 增强 --处理过曝图片 高灰度值地方斜率大于1
matlab代码:
sd1
例题1:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-apBNzIyN-1678872056128)(/Users/fanzhilin/Library/Application Support/typora-user-images/image-20210322092922192.png)]
注意:overexposed image 过度曝光图片
a 暗区斜率大于1 可以增强对比度,亮区没有处理!
b 暗区没有处理,但可以增强对比度! 只是不是最合适的
c 暗区曲线斜率大于1 增强了低灰度值区域 是处理欠曝光的图片 选a \d 我感觉只选d
-
分段线性灰度变换
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eN0jVvJa-1678872056129)(/Users/fanzhilin/Library/Application Support/typora-user-images/image-20210322093519025.png)]
⚠️注意看横坐标是输入的对比度r,纵坐标是输出的对比度s
看直线的斜率 ,斜率大于1 增强对比度; 斜率小于1 降低对比度
应用:对比度拉伸、灰度拉伸 https://blog.csdn.net/space_walk/article/details/96309410
例题:假设输入图像的灰度范围为[50,150]。使用线性灰度变换将范围拉伸到[0,255]。尝试计算对应于输入灰度r=70的输出灰度s
-
灰度分割–与二值化类似
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gu0MJMjx-1678872056129)(/Users/fanzhilin/Library/Application Support/typora-user-images/image-20210322093531732.png)]
应用:对感兴趣的目标(a-b区间)进行涂色勾线,用一种颜色表示背景,用另一种颜色突出目标
-
位平面分割bit plane slicing
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ge14Dbzq-1678872056129)(/Users/fanzhilin/Library/Application Support/typora-user-images/image-20210322094055207.png)]
什么是图像的位平面?
一幅256个灰度级的图像可以分解成8个位平面(每一个像素都是由8位组成),原因就是2^8=256,换句话说每一个像素点的灰度值可以由8个二进制位来表示,所谓的位平面(bit plane)就是依次取出每个像素点的数值组成一个位平面。
每一位的权重不一样,越高阶的二进制包含重要的信息(轮廓),越低位的二进制包含细节(细节)
X=imread('rice.png');%如果是彩色图片要转换为灰度图像,如果本身就是灰度图可以去掉rgb2gray函数 [h w] = size(X); subplot(3,3,1); imshow(X,[]);%原图 title('原始图像'); for k=1:8 for i=1:h for j=1:w tmp(i,j) = bitget(X(i,j),k);%bitget函数首先将X(i,j)处灰度值分解为二进制串,然后取第k位 end end subplot(3,3,k+1); imshow(tmp,[]); ind = num2str(k); imti = ['第',ind,'个位平面']; title(imti); end
应用:图像水印
http://www.voidcn.com/article/p-xzmqiaog-nh.html
邻域处理
neighborhood operation
空域滤波
spatial fitering
-
分类:1.图像平滑(去噪声,但会让图像模糊);2.图像锐化(突出轮廓)。
-
滤波器 spatial fiter spatial mask window
分类:线性空域滤波器、非线性空域滤波器
如何区分平滑、锐化?
平滑滤波器:系数都大于0,系数之和为1
锐化滤波器:系数有正有负,系数之和为0 =》特殊的:Boost滤波器:系数有正有负,系数之和为1
平滑滤波器
-
非线性滤波器
Min Max Median 三种 最小值、最大值、中值滤波器、
即像素点排序,选择哪一个像素点输出?
中值滤波器:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U03G08ph-1678872056129)(/Users/fanzhilin/Library/Application Support/typora-user-images/image-20210329090049037.png)]
注:区分中值滤波器和中点滤波器-> 中点滤波器midpoint filter输出是max+min /2
应用:中值滤波器擅长处理椒盐噪声,最小值滤波器去白点盐噪声,最大值滤波器去黑点椒噪声
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lO4Q0iJ7-1678872056129)(/Users/fanzhilin/Library/Application Support/typora-user-images/image-20210329091017386.png)]
例题:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GwxUaijD-1678872056129)(/Users/fanzhilin/Library/Application Support/typora-user-images/image-20210329091422971.png)]
注意:滤波器不只是3*3的大小,如果噪声的密度很大,可以扩大滤波器的尺寸,但是会让图像变模糊,丢失细节
-
线性滤波器
分类 :均值滤波器、加权均值滤波器
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O5Bf0Pa5-1678872056129)(/Users/fanzhilin/Library/Application Support/typora-user-images/image-20210329092819217.png)]
⚠️对应相乘然后累加,注意滤波器算出的数需要四舍五入取整数! 因为是灰度级!!
均值滤波器 :特点 1 每个系数都是正数,2 所有权值相加为1==》擅长去除高斯噪声
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vViA72SN-1678872056129)(/Users/fanzhilin/Library/Application Support/typora-user-images/image-20210329094122193.png)]
加权均值滤波器:
一般的均值滤波器:
高斯加权均值滤波器:根据高斯分布计算的系数
-
滤波器的边界处理策略
三种边界处理对图像边界的影响:(注意边界处!)
-
matlab代码
均值滤波器:
中值滤波器:
加权滤波器:
锐化滤波器
一阶导数算子
- 特点:对于亮的边,边的变化起点是正的,结束是负的;对于暗的边,结论相反;常数部分为0
- 用途:用于检测图像中边的存在
注意:但数字图像是离散的,不能求导,转化为差值
-
Sobel 梯度算子
应用:边缘检测
-
Prewitt梯度算子
-
Roberts梯度算子
2x2的模板,是对角线做差,
-
-
5种锐化输出
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7JTddoW0-1678872056133)(/Users/fanzhilin/Library/Application Support/typora-user-images/image-20210419091111145.png)]**
1、直接用梯度算子
2、加阈值,原先平滑的部分保留,
3、突出边缘轮廓
4、给背景一个值,去除背景的干扰
5、把图像变成二值图像,常见!
二阶导数算子
- 特点:二阶微分在亮的一边是负的,在暗的一边是正的。常数部分为0
- 用途:
- 二次导数的符号,用于确定边上像素是亮的一边还是暗的一边。
- 0跨越,确定边的准确位置
一阶微分算子和二阶微分算子在提取图像细节信息时有何不同?
一阶微分算子产生较粗的边缘
,二阶微分算子处理对细节有较强的响应
,如细线和孤立点。二阶微分有一个过度,即从正回到负。在一幅图像中,该现象表现为双线。
-
laplacian 滤波器
注意:数字图像的坐标系不是笛卡尔坐标系,x轴向下!
- Laplacian的应用1-Boost滤波器
-
Laplacian应用2- LoG算子 先用高斯滤波去噪声,然后用Laplacian算子锐化
处理后图像只有细节和轮廓
matlab代码
频域处理
Spectrum 频谱 Frequency 频率 Homonorphic Filtering 同态滤波
傅里叶变换
-
傅里叶正变换
已知道f xy 求F uv
j是复数
f xy是实数、原先图像的坐标, Fuv是复数、频率
- F(0,0)0频率成分、直流成分DC component 、是图像f所有像素的和,是实数,一定是最大的值(根据公式可看出)
直流分量比其他的成分要大好几个数量级。所以,这也就是傅里叶谱为什么需要使用对数变换才能看清楚的原因。log|fuv|
- 对于高通滤波器而言,由于直流分量F00被衰减,所得到的图像的动态范围是非常狭窄的,也就造成了图像偏灰。
保持直流(DC)分量,对别的部分进行增幅,可以增强图像的细节。这样的滤波器称为锐化滤波器。
-
傅里叶逆变换
注:傅里叶的正逆变换的系数乘积为1/MN
傅里叶变换的频谱(幅度)、相位、和模
-
2维傅里叶变换后的频谱图–是灰度图像
2维图像是灰度图像!彩色图像是3维的!
低频成分(原先图像的亮的部分)代表原先图像灰度变化比较 慢的区域 -》平滑成分
高频成分代表原先图像灰度变化比较 快的区域-》轮廓、细节、噪声
为了方便判断低频、高频 ,进行频谱图移频,看离中心点的距离即可判断
1.如何分辨低频、高频?
画圆,代表截止频率 ;距离近的是低频。距离远的是高频
2.低频高频代表什么含义?
低频 灰度变化比较慢的部分。原先图像的平滑部分
高频 灰度变化比较快的部分 、发生突变的地方如细节、 轮廓、 孤立的噪声
3.频谱图中每一个点的灰度值(即亮度)表示什么?
灰度值大,亮度大,频率成分的幅度大,某一时间出现的数量多
频谱图分析
频谱图是模值 log|fuv |
功率谱是频谱图的平方 模值的平方
频谱图有几个特点:
① 中心点是原图整幅图像的平均灰度,频率为0,从图像中心向外,频率增高。即中心对应低频,外围对应高频。
②如果原图中有明显的横纹(竖纹),那么频谱图中就会有鲜明的竖线(横线)。
例:
频谱图中有横线 原图有竖线,频谱图中有竖线,原图有横线(傅里叶变换的性质)
频谱图中亮点代表噪声,因为距离中心的距离相同,所以频率相同,所以周期相同,原图有周期噪声
原图
参考 :https://www.jianshu.com/p/d99dbd691176
https://zhuanlan.zhihu.com/p/99605178?utm_source=qq 通俗易懂
频谱图取的是log |fuv|
傅里叶变换的matlab代码
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MSse1qMr-1678872056135)(https://gitee.com/typora_picture_bed/picture_bed_2/raw/master/pic1/image-20210426090619182.png)]
f=zeros(50,50);
f(15:35,23:28)=1;
subplot(2,3,1);
imshow(f);
title('原始图像')
g= fft2(f); % 二维傅里叶变换,matlab自带函数
subplot(2,3,2);
imshow(real(g)); % 一般只要实部,虚部是误差,也可以不用real 直接写
title('fft2生成的"频域"图像 不是频谱图!!!');
S=abs(g); %计算的是幅值,绝对值||,即频谱图 !
subplot(2,3,3);
imshow(S)
title('傅里叶频谱')
Fc=fftshift(real(S)); %将零频分量移到频谱中心fftshift
subplot(2,3,4);
imshow(Fc)
title('移频后居中的频谱')
S2=log(1+abs(Fc));%使用对数变换进行视觉增强后的频谱
subplot(2,3,5);
imshow(S2)
title('使用对数变换进行视觉增强后的频谱');
S3=real(ifft2(g));%ifft2 傅里叶逆变换
subplot(2,3,6);
imshow(S3)
title('傅里叶逆变换得到原图像');
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MPQ2jYWI-1678872056135)(/Users/fanzhilin/Library/Application Support/typora-user-images/image-20210512210900256.png)]
更好的理解请看:
https://zhuanlan.zhihu.com/p/192937271
傅里叶变换后为什么需要归一化 ,即为什么使用mat2gray归一化函数?
https://www.zhihu.com/question/354081645/answer/890215427
傅里叶变换的性质
-
平移性质
一个图像平移后,频谱图没有变换,只是系数变了
-
旋转性质
空域的图像旋转多少角度,频域的频谱图也旋转同样的角度
-
卷积定理
f xy 图像 g xy滤波器 * 卷积操作
频谱图中
F(0,0)=sum(sum(f))
F uv 是系数 复数
1 低通滤波器
低频成分保留,高频去掉;可以去噪声,对应空域的平滑滤波器
频率滤波的步骤图
G uv 频域滤波后的傅立叶变换系数 也是复数 傅里叶变换系数是复数!
H uv 时滤波器系数
理想的低通滤波器
⚠️其中一般D(u,v)=[u^2+ v^2] ^1/2 在matlab中是上面的表达式 M N是中心点坐标
要想滤波的效果好,D0选择更小的值,但图像会更模糊
缺点:理想低通会出现 振铃 ringing effect现象
Butterworth 巴特沃斯低通滤波器–对理想改进
如何根表达式式判断高通滤波器还是低通滤波器? 看单调性!
并且==低通滤波器+高通滤波器系数为1==
作用:butterworth 低通、高通滤波器:
- 可以减弱振铃现象ringing effect,但仍会出现振铃现象! 高斯高通、低通滤波器则不会发生振铃现象!
- 可以用来消除虚假轮廓(噪声的一种)
- 但是截止频率不一样!!
Gasussian高斯低通滤波器
matlab实现高斯低通滤波器
注意:关键是取实部
例题:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BUb3qL2z-1678872056138)(/Users/fanzhilin/Library/Application Support/typora-user-images/image-20210512111206972.png)]
A:理想的低通滤波器,可以去燥,D0=1
B:理想的高通滤波器,不能去噪声 排除。
C:转化一下, =1/1+D(u,v)
2 高通滤波器
理想高通滤波器
高通滤波器后图像都很暗?因为f 00 0频率成分 亮度信息没了
改进方法:
高频提升滤波器High-boost Filtering
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-taFOpZHH-1678872056138)(/Users/fanzhilin/Library/Application Support/typora-user-images/image-20210523125633020.png)]
效果
注意系数A不能太大,发现出现了过曝的成分
高频加强滤波器High-Emphasis Filtering
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BdxN3NiS-1678872056139)(/Users/fanzhilin/Library/Application Support/typora-user-images/image-20210512114002666.png)]
matlab实现
例题:
解:这是高斯型滤波器;4种,最后一种是低通
3 带阻滤波器Band reject filters
理想带阻滤波器
W为带宽
Butterworth带阻滤波器
多了参数W,阶数一般为2阶,太高有振铃现象
Gaussian带阻滤波器
不会产生振铃现象!
4 带通滤波器 Band pass filters
5 同态滤波 Homomorphic Filtering
图像fxy =ixy* rxy ixy 是光照成分,变化比较慢,对应低频成分;rxy是反射成分,变化快
但是ixy rxy不知道 ,通过滤波可以获得
如图的滤波器是高频加强滤波器,可以增强轮廓、细节
ln对数变换:把乘法变加法,方便滤波操作;中间进行频域的变换,反向傅立叶变换后取实部,; exp指数变换:复原
图像复原
概念
图像降质模型
噪声模型
考虑加性噪声
不同类型噪声的分布
rayleigh 瑞利噪声
erlang 艾尔兰噪声
exponential 指数分布噪声
均匀噪声 uniform noise
impluse noise 脉冲噪声 就是椒盐噪声!
例题:
解:中点滤波器,对去除高斯噪声和均匀噪声(uniform noise)有很好的效果
加了噪声的直方图变化,但是前提原图像的灰度值很少,最好只有一种灰度
不能通过整图直方图判断噪声类型,但可以通过子图的直方图判断!取一个灰度值很少的区域
空域去噪-随机噪声(椒盐、高斯)
均值滤波和中值滤波的区别
均值滤波和和中值滤波都可以起到平滑图像,滤去噪声的功能。
**均值滤波采用线性的方法,**平均整个窗口范围内的像素值,均值滤波本身存在着固有的缺陷,即它不能很好地保护图像细节,在图像去噪的同时也破坏了图像的细节部分,从而使图像变得模糊,不能很好地去除噪声点。均值滤波对高斯噪声表现较好,对椒盐噪声表现较差。
中值滤波采用非线性的方法,它在平滑脉冲噪声方面非常有效,同时它可以保护图像尖锐的边缘,选择适当的点来替代污染点的值,所以处理效果好,对椒盐噪声表现较好,对高斯噪声表现较差。
算术均值滤波器Arithmetric mean filter
理解:这里的g st 是区域Sxy 中的像素点的值
matlab代码
几何均值滤波器
理解:对邻域矩阵Sxy进行连乘,并且求1/mn次方,mn是邻域矩阵的长宽,就是矩阵中元素的个数
优点:图像细节保留的好,细节可以看边缘、轮廓线
缺点:但是如果某像素点g (st)为0 ,连乘后全为0,=》可以加上一个很小的值,防止这种情况的发生,图像全加1
函数的解释:连乘prod(A) ;求矩阵元素个数numel(A) ; ones(m,n) 生成一个m*n的全1的矩阵
谐波均值滤波器harmonic mean filter
特点:
可以去盐噪声,即白点,不能去除椒噪声,不会去除黑色背景;
可以去除高斯噪声
Eg:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jCimZtO0-1678872058547)(null)]
在黑色背景上有一个5像素宽的白色条纹的二值图像。通过 谐波均值滤波器 空间滤波来消除白色条纹
逆谐波均值滤波器Contraharmonic Mean Filter
特点:可以去高斯噪声和椒盐噪声;Q>0只去椒噪声(黑点) ,Q<0 只去盐噪声(白点255)
α修正的均值滤波器 Alpha-trimmed mean filter
理解:mn是滤波器的尺寸,也即邻域矩阵的尺寸;d是去掉最值灰度值的个数
为什么要去掉一部分 ?–避免椒盐噪声的影响(最大最小值 类似评委打分)
d=0时 为算数均值滤波器;擅长去除高斯噪声
d=mn-1时 就是一共mn个像素点删掉mn-1个像素点,变成中值滤波器median filter;擅长去除椒盐噪声
=》结合这两个特点 :α修正的均值滤波器适用于椒盐噪声和高斯噪声的混合
【总结】均值滤波器对比:
- 算术均值滤波器(最简单的均值滤波器)
- 几何均值滤波器(几何均值滤波器比算术减少了对图像的模糊)
- 谐波均值滤波器(对于"盐"噪声较好,但不适用于"胡椒"噪声;善于处理高斯噪声)
- 逆谐波均值滤波器
中值滤波median filter
matlab中自带的中值滤波函数 g=medfilt2(x0,[n,n])
自己实现
自适应中值滤波器 Adaptive median filters
解决的问题:当随机噪声非常密集的时候使用,即去除椒盐噪声,又可以保留细节
自适应中值滤波器有三个目的:1提供其他噪音的平滑 2减少失真 3 去除脉冲噪声impluse noise
概念
解释:
如果a1 >0和a2<0,中值像素点是干净的(不是噪声点),如果是进一步判断当前像素是不是干净的
如果b1>0 和 b2<0 说明当前的像素点zxy 是干净的,返回当前的像素值,保留了细节。
如果不成立,说明a1=0 或a2=0 中值zmed是椒盐噪声点,扩大滤波器尺寸,直到滤波器尺寸达到最大值Smax 最坏情况返回中值zmed
EG
matlab实现
自适应的局部噪声消除滤波器
解决问题:保留更多的细节
概念
前提是ρn已知道,但通常ρn 是未知的,需要估计
总结:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t3nJmpPd-1678872056143)(https://gitee.com/typora_picture_bed/picture_bed_2/raw/master/pic2/20210531092119.png)]
频域去噪-去周期噪声
低通滤波器 low pass filter
低通滤波器只能去只含一种周期的、简单的周期噪声(噪声点在频谱图中是对称的)即效果不好!
对含多种周期噪声的图像不能处理
例题:
分析:图中的周期噪声不止一种,一种周期噪声只会有一种线!!
例题:
带阻滤波器band reject filter
噪声点在频谱图中是对称的 并且周期单一的周期噪声;一共有三种一般用高斯带阻滤波器,避免振铃现象??;
陷波滤波器 Notch Filter
解决问题:噪声点在频谱图中不是对称的
陷波滤波器也用于去除周期噪声,虽然带阻滤波器也能可以去除周期噪声,但是带阻滤波器对噪声以外的成分也有衰减。而陷波滤波器主要对某个点进行衰减,对其余的成分不损失。
例子
图像的周期噪声是横线,因此频谱图中竖线代表的是周期噪声,用陷波滤波器去除频谱图中的噪声成分
例子1:
例子2:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9FFO7yUH-1678872056144)(https://gitee.com/typora_picture_bed/picture_bed_2/raw/master/pic2/20210605123150.png)]
看这个文章理解https://blog.csdn.net/zhoufan900428/article/details/17201293
图像复原
造成图像降质的原因:
估计H uv 退化函数
图像观察估计法
H uv 退化函数
试验估计法
有造成退化的设备
脉冲图像delta xy 的傅里叶变换的结果是常数
模型估计法
能根据图像判断是由什么造成的
- 大气扰动造成的模糊,H uv已知,估计参数k
- 运动造成的模糊
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lMyLtt6r-1678872056145)(https://gitee.com/typora_picture_bed/picture_bed_2/raw/master/pic2/20210607082051.png)]
逆滤波Inverse filter
N uv是噪声 H uv是退化函数
当 H uv 特别小的时候,噪声N uv的影响变大=》所以逆滤波受噪声影响
最小均方差滤波器 维纳滤波Wiener Filter
用到了功率谱 power spectrum 也就是是|Huv|^2
维纳滤波(最小均方误差)通常用于复原图像,在对图像复原过程中要计算噪声功率谱和图像功率谱
例子:
AWGN代表均值为0的高斯噪声 ,就是高斯白噪声
带限制的最小平方滤波器
彩色图像的处理
方法1 rgb三个通道分开处理
方法2 对图像增强 、锐化 与色彩无关 转化为 h s i模型 只处理i分类,i是灰度图,
滤波容易混淆知识
均值滤波mean filter
算数均值滤波器
期末总复习
单选 30 简答题20(写英文) 综合50(算法的分析、计算 、算法实现编程题matlab )!
目录:
matlab中矩阵的用法,语法
图像增强:空域 时域
图像复原
点处理改变图像的亮度、对比度
直方图均衡化本质也是
空域滤波
平滑滤波器
锐化滤波器
就是求导数 在数字图像用差分 近似表示导数
常见的一阶导数算子 3个!sobel robert prewit
二阶算子 Laplacian
频域滤波
怎么分析频谱?
低通滤波器
三种 理想 Butterworth 高斯低通 的数学表达式
高通滤波器
三种、高频提升滤波器 、高频加强滤波器
带通带阻滤波、同态滤波的过程理解
图像增强
怎么分析是什么噪声?
空域去噪的方法
频域去噪的方法
采样与量化
- 灰度变换缓慢的景物:粗采样、细量化
- 有大量细节变化的图像:细采样、粗量化
采样不够出现马赛克;量化不够出现假轮廓
平滑和锐化
区别:图像锐化用于增强图像边缘,导致高频分量增强,会使图像清晰;
图像平滑用于消除图像噪声,但也容易引起边缘的模糊联系:
都属于图像增强,改善图像效果