数字图像处理第四章

本文介绍了图像复原技术,通过MATLAB实现中值滤波器对被0.25概率椒盐噪声污染的图像进行处理,以达到改善图像质量的目的。展示了原始图像、噪声图像及滤波后的图像效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

图像复原与重建
图像复原技术的主要目的是预先确定的目标来改善图像,尽管两者有相重叠的领域,但图像增强主要是主观处理,而图像复原则大部分是客观处理的。

r = imnoise2('gaussian',100000,1,0,1);
bins = 100;
hist(r,bins)
title('gaussian')

r = imnoise2('uniform',100000,1,0,1);
bins = 100;
figure,hist(r,bins)
title('uniform')

r = imnoise2('salt & pepper',1000,1,0.1,0.27);
bins = 100;
figure,hist(r,bins)
title('salt & pepper')

r = imnoise2('lognormal',100000,1);
bins = 100;
figure,hist(r,bins)
title('lognormal')

r = imnoise2('rayleigh',100000,1,0,1);
bins = 100;
figure,hist(r,bins)
title('rayleigh')

r = imnoise2('exponential',100000,1);
bins = 100;
figure,hist(r,bins)
title('exponential')

r = imnoise2('erlang',1000,1);
bins = 100;
figure,hist(r,bins)
title('erlang')

r = imnoise2('erlang',1000,1);
bins = 100;
figure,hist(r,bins)
title('erlang')

在这里插入图片描述

C = [0 64; 0 128; 32 32; 64 0; 128 0; -32 32];
[r,R,S] = imnoise3(512, 512, C);
imshow(S,[])
title('[6个]指定冲击的正弦噪声周期频谱[1]')

imshow(r,[])
title('[6个]相应的正弦噪声周期模式[1]')
% S1 = fftshift(S);
% imshowMy(S1,[])
% figure,mesh(S)


C1 = C/2;
[r1,R1,S1] = imnoise3(512, 512, C1);
imshow(S1,[]),title('[6个]指定冲击的正弦噪声周期频谱[2]')
imshow(r1,[]),title('[6个]相应的正弦噪声周期模式[2]')

C2 = [6 32; -2 2];
[r2,R2,S2] = imnoise3(512, 512, C2);
imshow(S2,[]),title('[2个]指定冲击的正弦噪声周期频谱[3]')
imshow(r2,[]),title('[2个]相应的正弦噪声周期模式[3]')

A = [1 5];
[r3,R3,S3] = imnoise3(512, 512, C2, A);
imshow(S3,[])  %有两个不清楚的点,因为其振幅较小
title('[2个][使用非默认的不同振幅]指定冲击的正弦噪声周期频谱[4]')
imshow(r3,[])
title('[2个][使用非默认的不同振幅]相应的正弦噪声周期模式[4]')

subplot(3, 2, 1
### 数字图像处理 第四章 习题与解答 #### 图像增强中的直方图均衡化 在数字图像处理中,直方图均衡化是一种常用的技术来改善图像对比度。该过程涉及将输入图像的灰度级分布转换为均匀分布,从而提高视觉效果[^1]。 对于具体的应用场景,在第四章可能会遇到如下类型的练习: - **直方图计算**:给定一幅灰度图像,编写程序计算其直方图并绘制出来。 ```python import cv2 import numpy as np from matplotlib import pyplot as plt def calculate_histogram(image_path): img = cv2.imread(image_path, 0) hist,bins = np.histogram(img.flatten(),256,[0,256]) plt.hist(img.ravel(),256,[0,256]) plt.show() ``` - **直方图匹配(规定化)**:实现一个函数用于调整源图像的直方图以匹配目标图像的直方图特性。 ```python def histogram_matching(source_image, target_image): source_hist, _ = np.histogram(source_image.flatten(), bins=256, range=[0,256], density=True) target_hist, _ = np.histogram(target_image.flatten(), bins=256, range=[0,256], density=True) # 计算累积分布函数 (CDFs) cdf_source = source_hist.cumsum() cdf_target = target_hist.cumsum() # 归一化 CDF 到范围 [0...255] cdf_source_normalized = ((cdf_source - cdf_source.min()) * 255 / (cdf_source.max() - cdf_source.min())).astype(np.uint8) cdf_target_normalized = ((cdf_target - cdf_target.min()) * 255 / (cdf_target.max() - cdf_target.min())).astype(np.uint8) # 创建映射表并将原图变换到新空间 mapping_table = {old:new for old,new in zip(cdf_source_normalized,cdf_target_normalized)} matched_img = np.array([mapping_table[pixel] for pixel in source_image.flatten()]) return matched_img.reshape(source_image.shape).astype('uint8') ``` #### 基于频率域的方法 除了空间域操作外,第四章还可能涉及到频谱分析以及滤波器的设计等内容。例如傅里叶变换及其逆变换可以用来去除噪声或提取特定特征。 - **二维离散傅立叶变换(DFT)**:编程实现DFT算法,并应用于实际图片上观察变化后的频谱图。 ```python def dft_2d(image): f = np.fft.fft2(image) fshift = np.fft.fftshift(f) magnitude_spectrum = 20*np.log(np.abs(fshift)) return magnitude_spectrum ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值