Matlab图像的滤波与图像增强-matlab图像处理第19期(附完整代码)

Matlab实现数字图像处理——滤波 Matlab实现数字图像处理——滤波同态滤波局部直方图均衡傅立叶变换自适应直方图均衡巴特沃斯滤波器均值滤波高斯滤波器半邻域滤波中值滤波多窗口中值滤波百分比滤波锐化拉普拉斯边界检测与增强噪声对拉普拉斯边界检测的影响 本文介绍了使用matlab代码实现数字图像处理中各种滤波方法。 同态滤波 I = imread('FeiWang.jpg'); G = rgb2gray(I); figure(); imshow(G), title('OriginalFigure'); homo_flt(G); function 阅读详情

图像的滤波与图像增强的Matlab实现

目的

  1. 了解 MATLAB 工具箱中的滤波器。
  2. 掌握空间滤波。
  3. 学会对图像的空间变换。

内容

A. 用滤波器祛除图像噪声

在数字图像处理中,噪声是一个常见的问题。为了改善图像质量,常用的噪声去除方法包括均值滤波、中值滤波和维纳滤波。在MATLAB中,可以通过不同的滤波器来去除噪声。

示例:用均值滤波、中值滤波、维纳滤波去除图像中的高斯噪声
I = imread('D:\pic\DIP3E_CH04\FigP0438(left).tif');  % 读入原图像
J = imnoise(I, 'gaussian', 0, 0.002);  % 加入高斯噪声

% 均值滤波
h = fspecial('average', 3);  % 创建一个3x3均值滤波器
I2 = uint8(round(filter2(h, I)));  % 对图像进行滤波

% 中值滤波
I3 = medfilt2(J, [3, 3]);  % 对噪声图像进行中值滤波

% 维纳滤波
I4 = wiener2(J, [3, 3]);  % 对噪声图像进行一次维纳滤波
I5 = wiener2(I4, [3, 3]);  % 对维纳滤波结果进行二次维纳滤波

% 显示结果
subplot(2, 3, 1), imshow(I), title('原图像');
subplot(2, 3, 2), imshow(J), title('加噪声图像');
subplot(2, 3, 3), imshow(I2), title('均值滤波后图像');
subplot(2, 3, 4), imshow(I3), title('中值滤波后图像');
subplot(2, 3, 5), imshow(I4), title('维纳滤波后图像');
subplot(2, 3, 6), imshow(I5), title('两次维纳滤波后图像');

B. 空间噪声滤波器

此部分演示了如何生成不同类型的噪声,并应用不同的空间噪声滤波器(如均值滤波、最大值滤波、中值滤波等)去除噪声。

示例:生成带有盐与胡椒噪声的图像并进行滤波处理
% 用imnoise2函数生成带有盐与胡椒噪声的图像
function R = imnoise2(type, M, N, a, b)
    if nargin == 1
        a = 0; b = 1;
        M = 1; N = 1;
    elseif nargin == 3
        a = 0; b = 1;
    end
    switch lower(type)
        case 'uniform'
            R = a + (b - a) * rand(M, N);  % 均匀分布噪声
        case 'gaussian'
            R = a + b * randn(M, N);  % 高斯分布噪声
        case 'salt & pepper'
            if nargin <= 3
                a = 0.05; b = 0.05;  % 盐与胡椒噪声的比例
            end
            if (a + b) > 1
                error('The sum of a and b must not exceed 1.');
            end
            R(1:M, 1:N) = 0.5;  % 初始灰度值为中性灰色
            X = rand(M, N);
            c = find(X <= a);  % 生成盐噪声
            R(c) = 0;  % 盐噪声值为0
            u = a + b;
            c = find(X > a & X <= u);  % 生成胡椒噪声
            R(c) = 1;  % 胡椒噪声值为1
        otherwise
            error('Unknown distribution type.');
    end
end

% 应用滤波器去噪
f = imread('D:\pic\DIP3E_CH04\FigP0438(left).tif');
[M, N] = size(f);
R = imnoise2('salt & pepper', M, N, 0.1, 0);  % 生成盐噪声
c = find(R == 0);
gp = f; 
gp(c) = 0;  % 添加盐噪声

% 使用反调和滤波器
fp = spfilt(gp, 'chmean', 3, 3, 1.5);  % 使用正值Q的滤波器
figure, imshow(fp);

C. 用滤波器祛除图像噪声

图像变换方法(如仿射变换)常用于图像增强。下面是如何进行仿射变换和插值的示例。

示例:仿射变换和插值
% 产生一个等角变换图像用于测试
f = checkerboard(50);  % 创建一个棋盘格图像
s = 0.8;
theta = pi / 6;
T = [s * cos(theta), s * sin(theta), 0; -s * sin(theta), s * cos(theta), 0; 0, 0, 1];  % 创建仿射变换矩阵
tform = maketform('affine', T);  % 创建仿射变换对象
g = imtransform(f, tform);  % 应用变换
figure, imshow(g);

% 使用最近邻插值进行图像变换
g2 = imtransform(f, tform, 'nearest');  % 最近邻插值
figure, imshow(g2);

% 使用填充值为0.5的插值
g3 = imtransform(f, tform, 'FillValue', 0.5);  % 填充缺失区域为0.5
figure, imshow(g3);

% 进行平移变换
T2 = [1, 0, 0; 0, 1, 0; 50, 50, 1];  % 平移矩阵
tform2 = maketform('affine', T2);  % 创建平移变换对象
g4 = imtransform(f, tform2);  % 应用平移变换
figure, imshow(g4);

% 自定义坐标范围和填充值
g5 = imtransform(f, tform2, 'XData', [1, 400], 'YData', [1, 400], 'FillValue', 0.5);
figure, imshow(g5);

参考文献

  1. [Rafael C. Gonzalez, Richard E. Woods, and Steven L. Eddins. 2003. Digital Image Processing Using MATLAB. Prentice-Hall, Inc., USA.]
MATLAB 图像滤波器 是一种典型的非线性滤波,是基于排序统计理论的一种能够有效抑制噪声的非线性信号处理技术,基本思想是用像素点邻域灰度值的中值来代替该像素点的灰度值,让周围的像素值接近真实的值从而消除孤立的噪声点。2.接着学习了三种不同的算子对图像的锐化处理,切身感受了不同的算子对图像锐化的侧重点不同,比如Sobel算子能够锐化的边缘信息较强,在今后应用中如果想提取图像的边缘信息最好选用Sobel算子。椒盐噪声又称脉冲噪声,它随机改变一些像素值,是由图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声。 阅读详情

相关推荐

Matlab高频强调滤波增强,高斯高通滤波器,巴特沃斯高通滤波器图像处理

一、任务: 对lena图像采用高频强调滤波增强方法,并分析方法的效果。(理想、巴特沃斯、高斯)。其结果好不好?能否有改善的方法? 二、函数分析: 1、高斯高通滤波器 传递函数: 高斯低通滤波器 传递函数: D0指截止频率。 2、巴特沃斯高通滤波器 传递函数: 巴特沃斯低通滤波器 传递函数: 描述:在公式中,D(u,v)代表频域当中,点(u,v)到中心点的距离。而D0就是截止距离了,就相当于在频域当中画一个圈,对圈内或者圈外保留...

jackrma的博客 1万+

MATLAB的7种滤波方法(重制版)

传统滤波:1、Butterworth滤波。。。2、FIR滤波。。。3、移动平均滤波。。。4、中值滤波。。。。现代滤波:1、维纳滤波。。。2、自适应滤波。。。3、小波变换

yishuihanq的博客 1万+

Matlab实战:信号滤波处理

信号滤波通常可以分为两大类:时域滤波和频域滤波。而频域滤波则是利用信号的频域性质,通过傅里叶变换把信号转换到频域,并对频域信号进行处理。本文简要介绍了Matlab中的信号滤波函数,并提供了一个示例代码,希望对读者理解和应用信号滤波技术有所帮助。smooth函数可以对信号进行均值滤波,它可以平滑处理信号,去除噪声,减小信号波动。其中,x为原始信号,span为滤波窗口大小,y为滤波后的信号。其中,x为原始信号,n为滤波窗口大小,y为滤波后的信号。其中,x为原始信号,h为滤波器系数,y为滤波后的信号。

m0_47037246的博客 2731

Matlab中的滤波器

firls设计了一个线性相位FIR滤波器,该滤波器可以最大限度地减少理想分段线性函数与滤波器在一组所需频带上的幅度响应之间的加权积分平方误差。例如,我们将滤波器的参数保存成mat文件,如果我们在程序中需要使用到滤波器,那么首先将mat文件导入,然后进行赋值。设计完滤波器之后如果我们想要以函数的方式使用我们的滤波器,那么我们可以将设计的滤波器保存成一个函数。在matlab中我们需要生成滤波器时,可以使用matlab中自带的工具。将其保存到我们需要使用滤波器的目录下,就可以像使用函数一样使用滤波器。...

weixin_44337883的博客 2万+

【图像增强】基于matlab模糊集图像增强【含Matlab源码 394期】

模糊集图像增强 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 2042

【图像增强】基于matlab同态增晰图像增强【含Matlab源码 962期】

同态增晰图像增强 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 2101

【图像增强】 Frangi滤波器血管图像增强【含Matlab源码 2108期】

Frangi滤波器血管图像增强 完整代码,直接运行,适合小白!可提供运行操作视频!

Matlab912100926的博客 1310

【图像处理】基于matlab水下图像增强+FCM聚类分割【含Matlab源码 773期】

水下图像增强+FCM聚类分割 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 1195

【图像增强】基于matlab同态滤波低照度图像增强(烟草异物剔除)【含Matlab源码 4141期】

同态滤波低照度图像增强(烟草异物剔除) 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 1195

【图像增强】模糊集图像增强【含Matlab源码 394期】

模糊集图像增强 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 982

Matlab图像处理函数大全(建议收藏)

文章目录第1章: 图像显示与图像文件输入输出函数第2章: 图形绘制第3章: 图像类型和类型转换第4章: 图形用户界面工具第5章: 空间变换和图像配准第6章: 图像分析和统计第7章: 图像代数运算第8章: 图像增强第9章: 图像去模糊第10章: 线性滤波和变换第11章: 形态学操作第12章: 图像的块和邻域处理第13章: 颜色映射表和色彩空间第14章: 其他常用函数 第1章: 图像显示与图像文件输入输出函数 1.1图像显示函数 1.1.1 immovie-------创建视频结构数组 1.1.2 impla

智慧空间实验室 1万+

matlab图像处理

matlab图像处理1、报错问题2、打开一张图片+保存一张图片2.1打开一张图片2.2保存一张图片 1、报错问题 1.1如果报错信息为: 找不到文件的定义,那么首先就要看你定义的文件目录是否正确。 2、打开一张图片+保存一张图片 2.1打开一张图片 1、打开一副图片 f = imread(‘图片名.后缀’) imshow(f) 该语句可以将图片进行显示。 打开一副图片会在figure中显示但再打开一张图片,上一张图片就会被覆盖,这里可以通过:figure, imshow(g) 这样就会再创建一个fig

qq_49030808的博客 3607

【图像处理】基于matlab GUI数字图像处理【含Matlab源码 1614期】

数字图像处理 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 2893

基于MATLAB的数字图像处理的设计与实现

基于MATLAB的数字图像处理的设计与实现 【摘要】数字图像处理是一门新兴技术,随着计算机硬件的发展,数字图像的实时处理已经成为可能,由于数字图像处理的各种算法的出现,使得其处理速度越来越快,能更好的为人们服务。数字图像处理是一种通过计算机采用一定的算法对图形图像进行处理的技术。目的:改善医学图像质量,使图像得到增强。方法:利用Matlab工具箱函数,采用灰度直方图均衡化和高通滤波的方法对一幅X线图像进行增强处理。结果:用直方图均衡化的算法,将原始图像密集的灰度分布变得比较稀疏,处理后的图像视觉效果

Happyday763的博客 1321

毕设题目:Matlab图像增强

毕设题目:Matlab图像增强 完整代码,方可直接运行,适合小白!可提供运行操作视频!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 2456

【图像处理】频域中的傅里叶变换和滤波附Matlab代码

一、图像处理的频域基础:从空间域到频域的转换逻辑1.1 空间域与频域的本质差异在图像处理中,空间域以像素坐标(x,y)为核心,直接描述图像的灰度分布(如边缘的明暗突变、纹理的重复图案),但难以直观体现 “灰度变化的快慢”;而频域通过 “频率” 量化这种变化速度 —— 高频对应图像中灰度急剧变化的区域(如边缘、噪声、细节),低频对应灰度缓慢变化的区域(如背景、平滑色块)。蓝天区域灰度变化平缓,对应频域的低频分量;树木边缘灰度从绿色突变至蓝色,对应频域的高频分量;

Matlab245的博客 668

PSM-DID实战指南:Stata代码解析与案例应用

本文详细解析PSM-DID方法在Stata中的实战应用,从理论到代码实现全面覆盖。通过倾向得分匹配(PSM)和双重差分(DID)的结合,有效解决政策评估中的选择偏差问题。文章提供完整的Stata命令代码、样例数据处理技巧和案例应用,帮助研究者准确评估政策效果。

vulkan6gpu的博客 791

【图像增强】基于matlab改进的retinex低照度图像增强【含Matlab源码 12010期】

改进的retinex低照度图像增强 完整代码,包运行;可提供运行操作视频!适合小白!

Matlab912100926的博客 788

5种超实用方法:快速获取Windows文件夹下所有文件名(含CMD/PowerShell脚本)

本文详细介绍了5种快速获取Windows文件夹下所有文件名的实用方法,包括图形界面操作、Excel数据导入、CMD命令和PowerShell脚本。特别提供了高效的CMD和PowerShell脚本示例,帮助用户轻松实现文件名的批量获取与管理,大幅提升工作效率。

opencv7vision的博客 447

QT | QT打包生成单个EXE文件

1.以release方式运行程序 2.在release文件夹中找到.exe文件 如果没有找到exe,可能是因为在项目中勾选了shadow build,你可以在构建目录中找到exe 3.将exe放在一个新建的文件夹中,因为待会儿会生成很多dll文件 4.点击电脑左下角搜索QT,打开Qt 5.8 for Desktop (MinGQW 5.3.0 32bit) 5.进入刚刚新建的文件夹,输入wi...

⊳ideal world⊲~ヽ(゚︺゚)Hi 1238

【图像增强】基于matlab多尺度视网膜图像增强(弥合彩色图像与人类场景观察之间的差距)【含Matlab源码 9935期】

多尺度视网膜图像增强(弥合彩色图像与人类场景观察之间的差距) 完整代码,包运行;可提供运行操作视频!适合小白!

Matlab912100926的博客 987

基于STM32L4XX的环境光传感器(LTR-303ALS-01)应用程序设计

/ 状态寄存器的位[2:0]表示数据状态,例如位2为1表示新数据就绪[citation:6]#define LTR303_REG_DATA_CH0_LOW 0x8D // CH0数据低字节。#define LTR303_REG_DATA_CH0_HIGH 0x8E // CH0数据高字节。#define LTR303_REG_DATA_CH1_LOW 0x8F // CH1数据低字节。#define LTR303_REG_DATA_CH1_HIGH 0x90 // CH1数据高字节。

myron6688的博客 404
上一篇: 图像的傅立叶变换-matlab图像处理第18期(附完整代码)
下一篇: Matlab实现彩色图像的转换、平滑、锐化与分割-matlab图像处理第20期(附完整代码)
QQ44650067
博客等级 码龄9年 1085粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值