基于matlab进行图像处理学习——从入门到入魔
第一天:
①直方图均衡
②均值滤波、高斯滤波、中值滤波
③拉普拉斯滤波器
关于matlab
matlab基本概况
MATLAB是矩阵实验室(Matrix Laboratory)之意。除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多.
当前流行的MATLAB 5.3/Simulink 3.0包括拥有数百个内部函数的主包和三十几种工具包(Toolbox).工具包又可以分为功能性工具包和学科工具包.功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能.学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类.
开放性使MATLAB广受用户欢迎.除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包.
学习任务
- 使用matlab对四张图片分别进行直方图均衡,并且分别显示原始图像、均衡后图像、以及对应的直方图
- 使用matlab对图像添加强度为0.2的椒盐噪声,并且分别使用3x3的均值滤波器、高斯平滑滤波器和中值滤波器对添加噪声的图像进行平滑滤波,并分别显示原始图像、添加噪声的图像、以及各平滑滤波后图像
- 分别使用拉普拉斯滤波器:
对图像进行锐化
实现
- 使用matlab对四张图片分别进行直方图均衡,并且分别显示原始图像、均衡后图像、以及对应的直方图
% 直方图均衡
H1= imread('Fig0316_1_3e.tif');
H2= imread('Fig0316_2_3e.tif');
H3= imread('Fig0316_3_3e.tif');
H4= imread('Fig0316_4_3e.tif');
% H1
if length(size(H1))>2H1=rgb2gray(H1);
end
subplot(3,2,1);
imshow(H1); title('H1原图');
subplot(3,2,2);
imhist(H1); title('H1原图直方图');
subplot(3,2,5);
H1_=histeq(H1);
imshow(H1_'); title('histeq均衡后图 ');
subplot(3,2,6);
imhist(H1_'); title('histeq均衡后直方图 ')% H2
if length(size(H2))>2H2=rgb2gray(H2);
end
subplot(3,2,1);
imshow(H2); title('H2原图');
subplot(3,2,2);
imhist(H2); title('H2原图直方图');
subplot(3,2,5);
H2_=histeq(H2);
imshow(H2_); title('histeq均衡后图 ');
subplot(3,2,6);
imhist(H2_); title('histeq均衡后直方图')%H3
if length(size(H3))>2H3=rgb2gray(H3);
end
subplot(3,2,1);
imshow(H3); title('H3原图');
subplot(3,2,2);
imhist(H3); title('H3原图直方图');
subplot(3,2,5);
H3_=histeq(H3);
imshow(H3_); title('histeq均衡后图 ');
subplot(3,2,6);
imhist(H3_); title('histeq均衡后直方图')% H4
if length(size(H4))>2H=rgb2gray(H4);
end
subplot(3,2,1);
imshow(H4); title('H4原图');
subplot(3,2,2);
imhist(H4); title('H4原图直方图');
subplot(3,2,5);
H4_=histeq(H4);
imshow(H4_); title('histeq均衡后图');
subplot(3,2,6);
imhist(H4_); title('histeq均衡后直方图')
得到图像如下:
H1
H2
H3
H4
结果分析:
我们发现,在我们对图像进行直方图均衡之后,其直方图的灰度范围(跨度)变得更大了,其图像效果也变得更加明显,所以,我们可以得出结论:
如果一幅图像其灰度直方图跨越整个灰度范围,并且成均匀分布,那么这副图像细节丰富、对比度及动态范围高,视觉质量好
- 使用matlab对图像添加强度为0.2的椒盐噪声,并且分别使用3x3的均值滤波器、高斯平滑滤波器和中值滤波器对添加噪声的图像进行平滑滤波,并分别显示原始图像、添加噪声的图像、以及各平滑滤波后图像
% 添加噪声
t=imread('Fig0507_ckt_board_orig_3e.tif');
subplot(1,2,1),imshow(t),title('原图');
t2=imnoise(t,'salt & pepper',0.2);
figure,subplot(1,2,1),imshow(t2),title('加入噪声密度:0.2的椒盐噪声');% 3x3均值滤波
k1=filter2(fspecial('average',3),t2);
subplot(2,3,3),imshow(uint8(k1));title('均值滤波3*3模板平滑')% 高斯滤波
M = size(t2);
if numel(M)>2gray = rgb2gray(t2);
elsegray = t2;
end% 创建滤波器
W = fspecial('gaussian',[5,5],1);
G = imfilter(gray, W, 'replicate');
figure(1);
subplot(121); imshow(gray); title('原始图像');
subplot(122); imshow(G); title('滤波后图像');% 中值滤波
subplot(2,2,4)
D=medfilt3(t2);
imshow(D,[])
title('中值滤波处理')imshow(t),title('原图');
imshow(t2),title('添加0.2的椒盐噪声');
imshow(k1),title('3x3均值滤波');
imshow(uint8(k1)),title('3x3均值滤波');
imshow(G),title('高斯滤波');
imshow(D),title('中值滤波');
得到图像如下:
原图
添加强度为0.2的椒盐噪声
3x3均值滤波
高斯滤波
中值滤波
结果分析:
从结果可以看出,中值滤波在处理椒盐噪声的问题中有很大的优势
- 使用拉普拉斯滤波器对图像进行锐化
- 四邻域的拉普拉斯算子滤波
A = imread('blurry_moon_3e.tif');
%%%锐化%%%%
f_laplacian = fspecial('laplacian',0)
B3 = imfilter(A,f_laplacian);
figure;
subplot(121);imshow(A);
subplot(122);imshow(-B3);
figure;
subplot(121);imshow(A);
subplot(124);imshow(A-B3);
结果如下:
2. 八邻域的拉普拉斯算子滤波
a = im2double(imread('blurry_moon_3e.tif')); lap = [-1 -1 -1; -1 8 -1; -1 -1 -1]; resp = imfilter(a, lap, 'conv');%// Change - Normalize the response imageminR = min(resp(:));maxR = max(resp(:));resp = (resp - minR) / (maxR - minR);%// 更改-现在添加到原始图像sharpened = a + resp;%// 更改-标准化锐化的结果minA = min(sharpened(:));maxA = max(sharpened(:));sharpened = (sharpened - minA) / (maxA - minA);%// 改变-执行线性对比度增强sharpened = imadjust(sharpened, [60/255 200/255], [0 1]);figure;subplot(1,3,1);imshow(a); title('原始图像');subplot(1,3,2);imshow(resp); title('拉普拉斯滤波图像');subplot(1,3,3);imshow(sharpened); title('锐化图像');
结果如下:
结果分析:
- 锐化的主要目的是突出灰度的过渡部分
- 因此,图像微分增强边缘和其他突变(如噪声)而削弱灰度变化缓慢的区域
总结
今天算是matlab初体验,从安装、配置matlab,到了解其中的函数、包、库、再到最后完成学习任务,在这个过程中我还是学到了很多东西的,不仅感受到了matlab的强大功能,也极大锻炼了我主动学习和自主解决问题的能力,同时加深了我对一些图像处理知识的理解,从理论到实践,我觉得这是一个能够产生质变的过程。
基于matlab进行图像处理学习——从入门到入魔相关推荐
- 基于MATLAB的图像处理的课程设计
基于MATLAB的图像处理的系统 课题介绍 数字图像处理技术是20世纪60年代发展起来的一门新兴学科,随着图像处理理论和方法的进一步完善,使得数字图像处理技术在各个领域得到了广泛应用,并显示出广阔的应 ...
- 基于MATLAB的图像处理技术
基于MATLAB的图像处理技术 摘 要: 一般情况下,拍摄到的图像由于光照不足等原因,可能有较多的噪声,且边界特征不清晰.因此,我们需要对这些图像进行增强或分割处理.介于此,本文介绍了基本的图像处理技 ...
- 基于MATLAB的图像处理系统
目录 设计目的-------..-------.----3 设计要求-------.----------.-.3 设计的内容------..---------.--3 题目分析------------ ...
- 基于matlab的硅晶体模型,基于Matlab的图像处理技术识别硅太阳电池的缺陷
第 44 卷 第 7 期 2010 年 7 月 上 海 交 通 大 学 学 报 JOURNAL OF SHANGHAI J IAOTON G UNIVERSITY Vol. 44 No. 7 Jul. ...
- matlab怎么利用圆形度提取园,基于Matlab+GUI图像处理的物料粒度与圆形度测试.pdf...
基于Matlab+GUI图像处理的物料粒度与圆形度测试.pdf 第36卷第2期 中国农机化学报 Vol_36No.2 2015年3月 JournalofChinese Mechanization Ma ...
- matlab图像类论文,基于matlab图形图像处理技术毕设论文.doc
基于matlab图形图像处理技术毕设论文 基于MATLAB图形图像处理技术 摘 要 本文提出了一种基于MATLAB的数字图像处理技术的设计,系统中包括了图像处理技术的各个方面,涵盖了图像处理领域的个别 ...
- 【基于matlab数字图像处理GUI代码】_数字图像处理考核论文_大作业_项目
基于matlab数字图像处理GUI代码 代码: function varargout = Image_processing_GUI(varargin) % IMAGE_PROCESSING_GUI M ...
- matlab图形图像处理论文,基于matlab图形图像处理技术-本科毕设论文.doc
基于matlab图形图像处理技术-本科毕设论文 基于MATLAB图形图像处理技术 摘 要 本文提出了一种基于MATLAB的数字图像处理技术的设计,系统中包括了图像处理技术的各个方面,涵盖了图像处理领域 ...
- 基于matlab的图像处理系统GUI
基于matlab的图像处理系统GUI,支持图像缩放,剪切,旋转,水平镜像,垂直镜像,参数还可以自己设置,边缘处理的五种算法:laplacian算法,Robert算法,canny算法,prewitt算法 ...
- 显微镜镜头缺陷检测系统 基于matlab的图像处理系统
第一步 可以见到的显微镜镜头的圆形 显示镜头的轮廓 图像处理后,可以框选感兴趣的区域,并且将镜头位置处粗略显示出来 定位一部分缺陷位置 得到缺陷的轮廓 研究了一种sobel改进的方法,并且得到最佳的数 ...
最新文章
- 2018-3-24论文(Grey Wolf Optimizer)note1----------No Free Lunch Theorem
- AI视觉大牛朱松纯担任北大AI研究院院长,提出通过构建大任务平台走向通用AI...
- 三星note5 android版本区别吗,三星Note5哪种颜色好看?三星Note5四种颜色区别对比图解...
- 微博:吃饭砸锅的艺术
- 云炬Qtpy5开发与实战笔记 1开发第一个桌面应用Hello World
- unity协程_[C#进阶]C#实现类似Unity的协程
- Spring Java-based容器配置
- DirectX编译环境配置
- attachEvent中this指向(转)
- JavaEE学习13--Jquery
- thymeleaf 的hello world
- 解决idea中xml注释出现空格和顶格问题
- Linux 中的 fold 命令详解及C/C++代码实现
- Win7下配置PHP+Nginx
- android 什么是有权查看使用情况的应用程序
- 页面5秒钟刷新一次(html,php)均可用
- 文字竖直居中 html,CSS 文字垂直居中
- 天气预报API及城市代码[最详细]
- Android串口通信:串口读写
- java utf8 简繁转换 类库,java 中文繁简体转换工具 opencc4j