冈萨雷斯DIP第5章知识点

这篇具有很好参考价值的文章主要介绍了冈萨雷斯DIP第5章知识点。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

图像增强:主要是一种 主观处理,而图像复原很大程度上是一种 客观处理

5.1 图像退化/复原处理的一个模型

如图5.1 本章把图像退化建模为一个算子 H \mathcal{H} H 该算子 与一个加性噪声项 η ( x , y ) η(x,y) η(x,y) 共同对输入图像 f ( x , y ) f(x,y) f(x,y) 进行运算,生成一幅退化图像 g ( x , y ) g(x,y) g(x,y)

冈萨雷斯DIP第5章知识点
如果 H \mathcal{H} H 是一个线性位置不变算子,那么空间域中的退化图像为:

g ( x , y ) = h ( x , y ) ⋆ f ( x , y ) + η ( x , y ) (5.1) g(x, y)=h(x, y) \star f(x, y)+\eta(x, y)\tag{5.1} g(x,y)=h(x,y)f(x,y)+η(x,y)(5.1)

由空间域卷积定理可知,式(5.1)在频率域中的等效公式为:
G ( u , v ) = H ( u , v ) F ( u , v ) + N ( u , v ) G(u, v)=H(u, v) F(u, v)+N(u, v) G(u,v)=H(u,v)F(u,v)+N(u,v)



5.2 噪声模型

5.2.1 噪声的空间和频率特性

当噪声的傅里叶谱是常量时,这类噪声通常称为白噪声

除了空间周期噪声(5.2.3节, 教材P225)之外,本章假设噪声与空间坐标无关,并且与图像本身也不相关。

5.2.2 6种重要的噪声概率密度函数

冈萨雷斯DIP第5章知识点



5.3 只存在噪声的复原——空间滤波

5.3.1 均值滤波器

  1. 算术平均滤波器(最简单的均值滤波器)
    f ^ ( x , y ) = 1 m n ∑ ( r , c ) ∈ S x y g ( r , c ) \hat{f}(x, y)=\frac{1}{m n} \sum_{(r, c) \in S_{x y}} g(r, c) f^(x,y)=mn1(r,c)Sxyg(r,c)

均值滤波平滑图像中的局部变化,会降低图像噪声,但会模糊图像。

%-------------------大小为5x5的算术平均滤波器--------------%
kernel = ones(5,5)/25;
g1=imfilter(f,kernel);
figure; imshow(g1);
imwrite(g1,'3×3 算术均值滤波图像.tif');
  1. 几何均值滤波器
    f ^ ( x , y ) = [ ∏ ( r , c ) ∈ S x y g ( r , c ) ] 1 m n \hat{f}(x, y)=\left[\prod_{(r, c) \in S_{x y}} g(r, c)\right]^{\frac{1}{m n}} f^(x,y)= (r,c)Sxyg(r,c) mn1

几何均值滤波器实现的平滑可与算术平均滤波器相比,但损失的图像细节更少。“几何”二字来源于圆上的弦长。几何均值会略微惩罚偏离均值的成分。

gp = zeros(M+4, N+4);
gp(3:M+2,3:N+2) = f;

gp(1,:) = gp(3,:); %用图像最外层的值扩展
gp(2,:) = gp(3,:);
gp(M+4,:)=gp(M+2,:);
gp(M+3,:)=gp(M+2,:);
gp(:,2)=gp(:,3);
gp(:,1)=gp(:,3);
gp(:,N+4)=gp(:,N+2);
gp(:,N+3)=gp(:,N+2);

g2 = zeros(M, N);
for x = 3:M+2
    for y = 3:N+2
        g_gmf = 1;
        for i = -2:2
            for j = -2:2
                g_gmf = g_gmf*gp(x+i,y+j);
            end
        end
        g2(x-2,y-2)=g_gmf;
    end
end
g2=g2.^(1/9);
g2=im2uint8(g2);
figure; imshow(g2);
imwrite(g2,'5×5 几何均值滤波图像.tif');
  1. 谐波平均滤波器

f ^ ( x , y ) = m n ∑ ( r , c ) ∈ S x y 1 g ( r , c ) \hat{f}(x, y)=\frac{m n}{\sum_{(r, c) \in S_{x y}} \frac{1}{g(r, c)}} f^(x,y)=(r,c)Sxyg(r,c)1mn

能处理类似于高斯噪声的其他噪声、盐粒噪声(√),但不能处理胡椒噪声(×)。因为调和平均数会剧烈的惩罚偏离平均值的较低值,会导致图片整体偏暗。(调和均值)

  1. 反谐波平均滤波器
    f ^ ( x , y ) = ∑ ( r , c ) ∈ S x y g ( r , c ) Q + 1 ∑ ( r , c ) ∈ S x y g ( r , c ) Q \hat{f}(x, y)=\frac{\sum_{(r, c) \in S_{x y}} g(r, c)^{Q+1}}{\sum_{(r, c) \in S_{x y}} g(r, c)^{Q}} f^(x,y)=(r,c)Sxyg(r,c)Q(r,c)Sxyg(r,c)Q+1

其中, Q Q Q 称为滤波器的阶数。适用于降低或消除椒盐噪声。如果 Q Q Q 的符号选择错误 会引起灾难性的后果。

5.3.2 统计排序滤波器

  1. 中值滤波器(最著名的统计排序滤波器)

f ^ ( x , y ) = median ⁡ ( r , c ) ∈ S x y { g ( r , c ) } \hat{f}(x, y)=\operatorname{median}_{(r, c) \in S_{x y}}\{g(r, c)\} f^(x,y)=median(r,c)Sxy{g(r,c)}

与相同尺寸的线性平滑滤波器相比,中值滤波器能有效降低某些随机噪声,且模糊度要小得多。对于单极和双极冲激噪声,中值滤波器效果更好。

% 1. 读取图像
img = imread('2.被加性均匀噪声和椒盐噪声污染的图像.tif');

% 2. 检查图像是否为彩色图像,如果是,则将其转换为灰度图像
if ndims(img) == 3
    img_gray = rgb2gray(img);
else
    img_gray = img;
end

% 3. 对灰度图像应用5x5中值滤波器
filtered_img = medfilt2(img_gray, [5, 5]);

% 4. 显示原始图像和处理后的图像
figure;
subplot(1, 2, 1);
imshow(img_gray);
title('Original Image');

subplot(1, 2, 2);
imshow(filtered_img);
title('Filtered Image with Median Filter');

% 5. 保存处理后的图像
imwrite(filtered_img, 'output_image.jpg');
  1. 最大值和最小值滤波器

分别是为了降低胡椒噪声和盐粒噪声。

  1. 中点滤波器

f ^ ( x , y ) = 1 2 [ max ⁡ ( r , c ) ∈ S x y { g ( r , c ) } + min ⁡ ( r , c ) ∈ S x y { g ( r , c ) } ] \hat{f}(x, y)=\frac{1}{2}\left[\max _{(r, c) \in S_{x y}}\{g(r, c)\}+\min _{(r, c) \in S_{x y}}\{g(r, c)\}\right] f^(x,y)=21[(r,c)Sxymax{g(r,c)}+(r,c)Sxymin{g(r,c)}]

计算滤波器包围区域中最大值和最小值之间的中点。

  1. 修正阿尔法均值滤波器

f ^ ( x , y ) = 1 m n − d ∑ ( r , c ) ∈ S x y g R ( r , c ) , 0 ≤ d ≤ m n − 1 \hat{f}(x, y)=\frac{1}{m n-d} \sum_{(r, c) \in S_{x y}} g_{R}(r, c), \quad 0 \leq d \leq m n-1 f^(x,y)=mnd1(r,c)SxygR(r,c),0dmn1

适用于处理多种混合噪声。

% 1. 读取图像
img = imread('input_image.jpg');

% 2. 检查图像是否为彩色图像,如果是,则将其转换为灰度图像
if ndims(img) == 3
    img_gray = rgb2gray(img);
else
    img_gray = img;
end

% 3. 对灰度图像应用5x5修正阿尔法均值滤波器 (d = 6)
filtered_img = modified_alpha_trimmed_mean_filter(img_gray, 5, 6);

% 4. 显示原始图像和处理后的图像
figure;
subplot(1, 2, 1);
imshow(img_gray);
title('Original Image');

subplot(1, 2, 2);
imshow(filtered_img);
title('Filtered Image with Modified Alpha-trimmed Mean Filter');

% 5. 保存处理后的图像
imwrite(filtered_img, 'output_image.jpg');

function output_img = modified_alpha_trimmed_mean_filter(img, filter_size, d)
    img = double(img);
    [rows, cols] = size(img);
    output_img = zeros(rows, cols);

    pad_size = floor(filter_size / 2);
    padded_img = padarray(img, [pad_size pad_size], 'replicate');
    
    for i = 1:rows
        for j = 1:cols
            window = padded_img(i:i+filter_size-1, j:j+filter_size-1);
            window_sorted = sort(window(:));
            output_img(i, j) = mean(window_sorted(d/2 + 1:end - d/2));
        end
    end
    
    output_img = uint8(output_img);
end


5.5 线性位置不变退化

一个算子对于任意 f ( x , y ) f(x,y) f(x,y) α \alpha α β \beta β,如果

H [ f ( x − α , y − β ) ] = g ( x − α , y − β ) \mathcal{H}[f(x-\alpha, y-\beta)]=g(x-\alpha, y-\beta) H[f(xα,yβ)]=g(xα,yβ)

则称具有输入/输出关系为线性位置不变退化,该定义说明:图像中任意一点处的响应只取决于该点处的输入值,而与该点的位置无关。



5.6 估计退化函数

观察法、试验法、建模法



5.7 逆滤波

原图像傅里叶变换的一个估计:

F ^ ( u , v ) = F ( u , v ) + N ( u , v ) H ( u , v ) \hat{F}(u, v)=F(u, v)+\frac{N(u, v)}{H(u, v)} F^(u,v)=F(u,v)+H(u,v)N(u,v)

即使知道退化函数 H ( u , v ) H(u, v) H(u,v),也不能准确复原未退化的图像,因为 N ( u , v ) N(u, v) N(u,v) 未知。如果退化函数 H ( u , v ) H(u, v) H(u,v) 是零或是非常小的值,则 N ( u , v ) / H ( u , v ) N(u,v)/H(u, v) N(u,v)/H(u,v) 很容易支配 F ( u , v ) F(u, v) F(u,v) 项。

close all; clear all; clc;
f = imread('3.大小为480×480的模糊图像.tif');
figure; imshow(f);
f=im2double(f);
[M, N] = size(f);
F= fft2(f);
Fc=fftshift(F);
[v, u]=meshgrid(1:N, 1:M);
H=exp(-0.0025*((u-M/2).^2+(v-N/2).^2).^(5/6));
G=Fc./(H+eps);
G1=ifftshift(G);
g1=ifft2(G1);
figure; imshow(g1, []);

使用10阶Butterworth滤波器:

%---------截止半径设置为 40---------%
H2= zeros(M,N);
D0 = 40;
for x = 1:1:M
    for y = 1:1:N
        D = ((x-M/2)^2 + (y-N/2)^2)^(0.5);
        H2(x,y) = 1/(1+(D/D0)^20);
    end
end
G2=G.*H2;
G2=ifftshift(G2);
g2=ifft2(G2);
subplot(131); imshow(g2, []);title('截止半径为40');


5.8 最小均方误差(维纳)滤波

F ^ ( u , v ) = [ H ∗ ( u , v ) S f ( u , v ) S f ( u , v ) ∣ H ( u , v ) ∣ 2 + S η ( u , v ) ] G ( u , v ) = [ H ∗ ( u , v ) ∣ H ( u , v ) ∣ 2 + S η ( u , v ) / S f ( u , v ) ] G ( u , v ) = [ 1 H ( u , v ) ∣ H ( u , v ) ∣ 2 ∣ H ( u , v ) ∣ 2 + S η ( u , v ) / S f ( u , v ) ] G ( u , v ) \begin{aligned} \hat{F}(u, v) & =\left[\frac{H^{*}(u, v) S_{f}(u, v)}{S_{f}(u, v)|H(u, v)|^{2}+S_{\eta}(u, v)}\right] G(u, v)=\left[\frac{H^{*}(u, v)}{|H(u, v)|^{2}+S_{\eta}(u, v) / S_{f}(u, v)}\right] G(u, v) \\ & =\left[\frac{1}{H(u, v)} \frac{|H(u, v)|^{2}}{|H(u, v)|^{2}+S_{\eta}(u, v) / S_{f}(u, v)}\right] G(u, v) \end{aligned} F^(u,v)=[Sf(u,v)H(u,v)2+Sη(u,v)H(u,v)Sf(u,v)]G(u,v)=[H(u,v)2+Sη(u,v)/Sf(u,v)H(u,v)]G(u,v)=[H(u,v)1H(u,v)2+Sη(u,v)/Sf(u,v)H(u,v)2]G(u,v)

若噪声为零则噪声功率谱消失 维纳滤波器简化为 逆滤波器。

function restored_img = wiener_filter(noisy_img, H, noise_variance)
    G = fft2(noisy_img);
    Gc=fftshift(G);
    H_conj = conj(H);
    S = abs(H).^2;
    F = (H_conj ./ (S + 0.01)) .* Gc;
    restored_img = ifft2(ifftshift(F));
end


5.9 约束最小二乘方滤波

function restored_img = constrained_least_squares_filter(noisy_img, H, noise_variance)
G = fft2(noisy_img);
Gc=fftshift(G);
[M,N]=size(noisy_img);
p_lpls = zeros(M,N);
p= [ 0 -1 0; -1 4 -1; 0 -1 0];
p_lpls(1:3,1:3) = p;
P= fft2(p_lpls);
Pc=fftshift(P);
H_conj = conj(H);
S_1 = abs(H).^2;
S_2=abs(Pc).^2;
F = (H_conj ./ (S_1 + 0.01.*S_2)) .* Gc;
restored_img = ifft2(ifftshift(F));
end

5.10 几何均值滤波

5.11 评价复原图像质量的测度

空间域信噪比:

S N R = ∑ x = 0 M − 1 ∑ y = 0 N − 1 [ f ^ ( x , y ) ] 2 / ∑ x = 0 M − 1 ∑ y = 0 N − 1 [ f ( x , y ) − f ^ ( x , y ) ] 2 \mathrm{SNR}=\sum_{x=0}^{M-1} \sum_{y=0}^{N-1}[\hat{f}(x, y)]^{2} / \sum_{x=0}^{M-1} \sum_{y=0}^{N-1}[f(x, y)-\hat{f}(x, y)]^{2} SNR=x=0M1y=0N1[f^(x,y)]2/x=0M1y=0N1[f(x,y)f^(x,y)]2

频率域信噪比:
S N R = ∑ u = 0 M − 1 ∑ v = 0 N − 1 ∣ F ( u , v ) ∣ 2 / ∑ u = 0 M − 1 ∑ v = 0 N − 1 ∣ N ( u , v ) ∣ 2 \mathrm{SNR}=\sum_{u=0}^{M-1} \sum_{v=0}^{N-1}|F(u, v)|^{2} / \sum_{u=0}^{M-1} \sum_{v=0}^{N-1}|N(u, v)|^{2} SNR=u=0M1v=0N1F(u,v)2/u=0M1v=0N1N(u,v)2

均方误差:
M S E = 1 M N ∑ x = 0 M − 1 ∑ y = 0 N − 1 [ f ( x , y ) − f ^ ( x , y ) ] 2 \mathrm{MSE}=\frac{1}{M N} \sum_{x=0}^{M-1} \sum_{y=0}^{N-1}[f(x, y)-\hat{f}(x, y)]^{2} MSE=MN1x=0M1y=0N1[f(x,y)f^(x,y)]2



5.21

g ( x , y ) = ∫ − ∞ ∞ ∫ − ∞ ∞ f ( α , β ) h ( x − α , y − β ) d α d β (5.61) g(x, y)=\int_{-\infty}^{\infty} \int_{-\infty}^{\infty} f(\alpha, \beta) h(x-\alpha, y-\beta) d \alpha d \beta\tag{5.61} g(x,y)=f(α,β)h(xα,yβ)dαdβ(5.61)

经过简单的推导,我们可以得到下面的结果:

g ( x , y ) = ∫ − ∞ ∞ ∫ − ∞ ∞ δ ( α − a ) e − [ ( x − α ) 2 + ( y − β ) 2 ] d α d β = ∫ − ∞ ∞ ∫ − ∞ ∞ δ ( α − a ) e − [ ( x − α ) 2 ] e − [ ( y − β ) 2 ] d α d β = ∫ − ∞ ∞ δ ( α − a ) e − [ ( x − α ) 2 ] d α ∫ − ∞ ∞ e − [ ( y − β ) 2 ] d β = e − ( x − a ) 2 ∫ − ∞ ∞ e − [ ( y − β ) 2 ] d β = π e − [ ( x − a ) 2 ] \begin{aligned} g(x, y) & =\int_{-\infty}^{\infty} \int_{-\infty}^{\infty} \delta(\alpha-a) e^{-\left[(x-\alpha)^{2}+(y-\beta)^{2}\right]} d \alpha d \beta \\ & =\int_{-\infty}^{\infty} \int_{-\infty}^{\infty} \delta(\alpha-a) e^{-\left[(x-\alpha)^{2}\right]} e^{-\left[(y-\beta)^{2}\right]} d \alpha d \beta \\ & =\int_{-\infty}^{\infty} \delta(\alpha-a) e^{-\left[(x-\alpha)^{2}\right]} d \alpha \int_{-\infty}^{\infty} e^{-\left[(y-\beta)^{2}\right]} d \beta \\ & =e^{-(x-a)^{2}} \int_{-\infty}^{\infty} e^{-\left[(y-\beta)^{2}\right]} d \beta\\ &=\sqrt{\pi} e^{-\left[(x-a)^{2}\right]} \end{aligned} g(x,y)=δ(αa)e[(xα)2+(yβ)2]dαdβ=δ(αa)e[(xα)2]e[(yβ)2]dαdβ=δ(αa)e[(xα)2]dαe[(yβ)2]dβ=e(xa)2e[(yβ)2]dβ=π e[(xa)2]

可以看出来得到的图片是原图片的一个模糊版本。文章来源地址https://www.toymoban.com/news/detail-470428.html

到了这里,关于冈萨雷斯DIP第5章知识点的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • DIP第7章知识点

    DIP的其他章节都好复习,唯独就这个第7章小波变换。复习起来十分头大,所以我开始写他的课后题,雾。 已知两个连续函数 f ( x ) f(x) f ( x ) 和 g ( x ) g(x) g ( x ) , f f f 和 g g g 的相关(当 f ( x ) ≠ g ( x ) f(x)≠g(x) f ( x )  = g ( x ) 时,称为互相关;当 f ( x ) = g ( x ) f(x)=g(x) f ( x

    2024年02月08日
    浏览(33)
  • 【百科】《DALL·E 2 vs Midjourney vs Stable Diffusion|AI图像工具对比》- 知识点目录

    Midjourney DALL·E 2 StableDiffusion 需要收费 如果出现 “区域限制” 的情况,请尝试清除缓存后并使用全局代理访问; Stability-AI/stablediffusion DreamStudio 示例prompt: 中文提示 英文提示 提问备忘 英文提示

    2024年02月12日
    浏览(47)
  • 【OpenCV+Tkinter项目】同学,你要的OpenCV图像处理小系统已安排,终于有人把OpenCV那些必备的知识点讲透彻了~(太厉害了,已跪)

    OpenCV – 开源计算机视觉 。它是计算机视觉和图像处理任务中使用最广泛的工具之一。它被 用于各种应用,如面部检测、视频捕捉、跟踪移动物体、对象公开。如今应用在 Covid 中,如 口罩检测、社交距离等等。 今天让我们从零开始学习 OpenCV的入门小知识吧!🙌 粉丝白嫖源

    2024年02月01日
    浏览(37)
  • 【字节面试】Fail-fast知识点相关知识点

    字节面试,问到的一个小知识点,这里做一下总结,其实小编之前有一篇文章,已经对此有过涉及,不过这里知识专项针对于问题,把这个知识点拎出来说一下。 什么是Fail-fast机制? Hashmap是否拥有Fail-fast机制? ConcurrentModificationException异常原因和解决方法是什么? 哪些你常

    2024年01月22日
    浏览(49)
  • [知识点整理]中科院/国科大 自然语言处理nlp 期末考试知识点整理

    本文为2022秋网安学院的自然语言处理课程期末复习知识点整理,水平有限,整理的答案可能有错误或遗漏,欢迎大家指正。 文章的第二部分内容参考了学校学姐的文章,文章写的很好,大家可以关注她: (133条消息) 【一起入门NLP】中科院自然语言处理期末考试*总复习*:考

    2024年02月09日
    浏览(51)
  • SpringMVC相关知识点

    传统开发中的控制层: 接收请求参数 request.getParameter 封装实体 new 实体类调用其set方法 访问业务层 接收访问结果 指派页面 通过request和response对象进行页面跳转 将共有行为进行抽取成DispatcherServlet【SpringMVC内部集成】,通过Spring-MVC.xml配置文件去配置。 Spring: 获取请求参数

    2024年02月16日
    浏览(49)
  • java相关知识点

    1.String和StringBuffer如何互相转化 StringBuffer buffer = new StringBuffer(string); String string = buffer.toString();  2.如何实现两个数组内容的拷贝  3.如何去除字符串首尾空格 str.trim()  4.字符串和字符数组如何相互转换 字符串转字符数组:str.toCharArray(); 字符数组转字符串:strs.valueOf(char[] ch)  

    2023年04月23日
    浏览(46)
  • DAC相关知识点

    1.回放数据64bit的数据来源有两个地方: A——ROM波形数据表(数据来源可由dds产生或者matlab产生,本实际项目选择由dds产生的数据:通过写地址出来相应频率的波形)。 B——预留的接口给客户用来回访他们的I/Q数据 (64bit数据一般是4组16bit的IQ拼接的{i0,q0,i1,q1})。 2.6

    2024年02月12日
    浏览(46)
  • Java知识点:

    1、Java中的(8个)基本数据类型及其包装类:         byte(字节)                  8          -128 - 127                                                                     0         short(短整型)             16         -32768 - 32768               

    2024年02月13日
    浏览(43)
  • Redis相关知识点

    Redis (REmote DIctionary Server) 是用 C 语言开发的一个开源的高性能键值对(key-value)数据库,它支持网络,可基于内存亦可持久化,并提供多种语言的API。Redis具有高效性、原子性、支持多种数据结构、持久化、高并发读写等特点。 特征: 1.数据间没有必然的关联关系 2.内部采用

    2024年01月23日
    浏览(75)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包