MATLAB-实现数字图像锐化处理
MATLAB实现数字图像锐化处理

MATLAB实现数字图像锐化处理作者:金献珍吴艳来源:《商场现代化》2008年第36期[摘要] 讨论了数字图像增强技术中空域图像锐化的四种算法及其用MATLAB的实现;同时给出了利用四种算法进行图像锐化后的对照图像。
[关键词] MATLAB 线性锐化非线性锐化 sobel算子 prewitt算子 log 算子MATLAB全称是MatrixLaboratory(矩阵实验室),一开始它是一种专门用于矩阵数值计算的软件,从这一点上也可以看出,它在矩阵运算上有自己独特的特点。
实际运用中MATLAB 中的绝大多数的运算都是通过矩阵这一形式进行的,这一特点决定了MATLAB在处理数字图像上的独特优势。
理论上讲,图像是一种二维的连续函数,然而计算机对图像进行数字处理时,首先必须对其在空间和亮度上进行数字化,这就是图像的采样和量化的过程。
二维图像均匀采样,可得到一幅离散化成M×N样本的数字图像,该数字图像是一个整数阵列,因而用矩阵来描述该数字图像是最直观最简便的。
而MATLAB的长处就是处理矩阵运算,因此用MATLAB处理数字图像非常的方便。
MATLAB支持五种图像类型,即索引图像、灰度图像、二值图像、RGB图像和多帧图像阵列;支持BMP,GIF,HDF,JPEG,PCX,PNG, XWD,CUR,ICO等图像文件格式的读、写和显示。
MATLAB对图像的处理功能主要集中在它的图像处理工具箱(Image Processing Toolbox)中。
图像处理工具箱是由一系列支持图像处理操作的函数组成,可以进行诸如几何操作、线性滤波和滤波器设计、图像变换、图像分析与图像增强、二值图像操作以及形态学处理等图像处理操作口。
数字图像处理中图像锐化的目的有两个:一是增强图像的边缘,使模糊的图像变得清晰起来;这种模糊不是由于错误操作,就是特殊图像获取方法的固有影响。
二是提取目标物体的边界,对图像进行分割,便于目标区域的识别等。
利用Matlab进行图像去噪和图像增强

利用Matlab进行图像去噪和图像增强随着数字图像处理技术的不断发展和成熟,图像去噪和图像增强在各个领域都有广泛的应用。
而在数字图像处理的工具中,Matlab凭借其强大的功能和易于使用的特点,成为了许多研究者和工程师首选的软件之一。
本文将介绍如何利用Matlab进行图像去噪和图像增强的方法和技巧。
一、图像去噪图像去噪是指通过一系列算法和技术,将图像中的噪声信号去除或减弱,提高图像的质量和清晰度。
Matlab提供了多种去噪方法,其中最常用的方法之一是利用小波变换进行去噪。
1. 小波变换去噪小波变换是一种多尺度分析方法,能够对信号进行时频分析,通过将信号分解到不同的尺度上,实现对图像的去噪。
在Matlab中,可以使用"dwt"函数进行小波变换,将图像分解为低频和高频子带,然后通过对高频子带进行阈值处理,将噪声信号滤除。
最后通过逆小波变换将去噪后的图像重构出来。
这种方法能够有效抑制高频噪声,保留图像的细节信息。
2. 均值滤波去噪均值滤波是一种基于平均值的线性滤波方法,通过计算像素周围邻域内像素的平均值,替代原始像素的值来去除噪声。
在Matlab中,可以使用"imfilter"函数进行均值滤波,通过设置适当的滤波模板大小和滤波器系数,实现对图像的去噪。
二、图像增强图像增强是指通过一系列算法和技术,改善图像的质量、增强图像的细节和对比度,使图像更容易被观察和理解。
Matlab提供了多种图像增强方法,以下将介绍其中的两种常用方法。
1. 直方图均衡化直方图均衡化是一种通过对图像像素值的分布进行调整,增强图像对比度的方法。
在Matlab中,可以使用"histeq"函数进行直方图均衡化处理。
该函数能够将图像的像素值分布拉伸到整个灰度级范围内,提高图像的动态范围和对比度。
2. 锐化增强锐化增强是一种通过增强图像边缘和细节来改善图像质量的方法。
在Matlab中,可以使用"imsharpen"函数进行图像的锐化增强处理。
基于MATLAB的数字图像平滑和锐化处理算法分析

基于MATLAB的数字图像平滑和锐化处理算法分析卞凤杰2141141摘要:本文主要内容是利用MATLAB 对图像进行频域平滑和锐化处理。
本文先对图像进行空域平滑、锐化处理,然后再进行频域平滑滤波、锐化等操作,可以简单比较空域和频域下对图像进行处理的不同效果,并且通过改变参数确定效果最佳的平滑和锐化处理算法,同时给出了运用MATLAB 进行图像处理的前后对照图像。
关键词:MATLAB;图像处理;图像平滑;图像锐化Abstract:In this paper, the main content is to use MATLAB to do image smoothing and sharpening processing in the frequency-domain.Firstly,this article to do spatial smoothing, sharpening processing of the image, and then to frequency-domain smoothing filtering, sharpening, etc.This can be simply compare the different results of image processing in spatial domain and frequency domain. Secondly, by changing the parameters to determine the best smoothing and sharpening processing algorithm, and gives a comparison before and after using MATLAB image processing image.Keywords:MATLAB;Image Processing;Image smoothing;Image sharpening1、引言数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。
基于MATLAB的数字图像锐化

吉林化工学院信息与控制工程学院专业设计说明书专业综合设计任务书一.设计题目:基于Matlab的图像锐化设计二.适用专业电子信息工程专业三.设计目的1.熟悉Matlab软件的使用;2.掌握图像处理的基本步骤;3.掌握图像锐化基本原理。
四.设计任务及要求使用Matlab软件对传统空域锐化和频域锐化算法进行研究和仿真。
通过仿真结果的对比和分析。
1.应用Matlab实现传统的图像锐化算法;2.通过编程对一张实际图片进行试验对比;3.撰写专业综合设计报告。
五.设计内容1.应用Matlab实现Roberts、Prewitt、Sobel和Laplacian算法中的任意两种。
2.利用Matlab对高通滤波法中的理想高通滤波法、巴特沃斯滤波法、梯度高通滤波、指数高通滤波方法中任意两种进行实验测试;3.对一张实际图片不同方法进行试验对比;4.撰写专业综合设计报告。
六.设计时间及进度安排设计时间共三周(2015.09.07~2015.09.27),具体安排如下表:I基于MATLA的数字图像锐化设计七、指导教师评语及学生成绩II吉林化工学院信息与控制工程学院专业设计说明书目录专业综合设计任务书 (I)目录............................................................................................................................................................. I II 第1章概述 ................................................................................................................................................... - 1 -1.1专业综合设计的目的...................................................................................................................... - 1 -1.2图像锐化的研究背景...................................................................................................................... - 1 -1.3图象锐化的目的 .............................................................................................................................. - 1 - 第2章图像锐化基本原理 .......................................................................................................................... - 2 -2.1图像锐化........................................................................................................................................... - 2 -2.1.1图像锐化基本概况............................................................................................................... - 2 -2.1.2图像锐化算法 ....................................................................................................................... - 2 -2.2.1 Prewitt锐化算法................................................................................................................... - 3 -2.2.2 Sobel锐化算法..................................................................................................................... - 3 -2.2.3 Laplacian算法 ...................................................................................................................... - 3 -2.3 频域锐化算法.................................................................................................................................. - 4 -2.3.1 理想高通滤波器.................................................................................................................. - 4 -2.3.2 巴特沃斯高通滤波器.......................................................................................................... - 5 -2.3.3 指数高通滤波器.................................................................................................................. - 5 -2.3.4 梯形高通滤波器.................................................................................................................. - 5 - 第3章基于MATLAB的数字图像锐化设计.......................................................................................... - 7 -3.1 sobel算法锐化 ................................................................................................................................. - 7 -3.1.1程序设计流程 ....................................................................................................................... - 7 -3.1.2运行结果与分析................................................................................................................... - 8 -3.2 Laplacian算法锐化.......................................................................................................................... - 9 -3.2.1程序设计流程 ....................................................................................................................... - 9 -3.2.2运行结果与分析................................................................................................................... - 9 -3.3 理想高通滤波器 ........................................................................................................................... - 10 -3.3.1程序设计流程 ..................................................................................................................... - 10 -3.3.2运行结果与分析................................................................................................................. - 11 -3.4 巴特沃斯高通滤波器................................................................................................................... - 12 -3.4.1程序设计流程 ..................................................................................................................... - 12 -3.4.2运行结果与分析................................................................................................................. - 13 - 第四章结论 ................................................................................................................................................. - 14 - 参考文献 ....................................................................................................................................................... - 15 -III基于MATLA的数字图像锐化设计附录................................................................................................................................................................ - 16 -IV吉林化工学院信息与控制工程学院专业综合设计说明书第1章概述1.1专业综合设计的目的专业综合设计是学生理论联系实际的重要实践教学环节,是对学生进行的一次综合性专业设计训练。
基于MATLAB的图像锐化及边界提取

摘要图像增强是指依据图像所存在的问题,按特定的需要突出一幅图像中的某些信息,同时,削弱或去除某些冗余信息的处理方法。
其主要目的是使得处理后的图像对给定的应用比原来的图像更加有效同时可以有效的改善图像质量。
图像增强技术主要包含直方图修改处理、图像平滑化处理、图像尖锐化处理和彩色处理技术等。
本文先对图像增强的原理进行概述,然后对图像增强的方法分类并给出直方图增强、平滑和锐化等几种常用的增强方法、彩色图像增强的理论基础,通过MATLAB实验得出的实际处理效果来对比各种算法的优缺点,讨论不同的增强算法的技术要点,并对其图像增强方法进行性能评价。
关键词MATLAB ;图像锐化;边界提取AbstractImage enhancement is based on the problems existing in the images, according to the specific need to highlight some of the information in an image, at the same time, to weaken or remove some redundant information processing method. Its main purpose is to make the image after processing for a given application is more effective than the original image at the same time can effectively improve the image quality. Image enhancement technology mainly includes histogram modification, image smoothing processing, image intensification processing and color processing technology, etc. This article first overview of the principle of image enhancement and image enhancement method of classification and histogram enhancement, smoothing and sharpening of several common enhancement method, the theoretical basis of color image enhancement, through practical processing effect of MATLAB experiment compared the advantages and disadvantages of various algorithms, discussed the main technical points of the different enhancement algorithm, and its image enhancement method for performance evaluation.Key wordsMATLAB;image sharpening; edge extraction·目录摘要 0Abstract (1)第一章绪论 (3)1.1 图像锐化及边界提起发展背景和意义 (3)1.2 图像锐化处理的现状和研究方法 (3)1.3MATLAB简介 (4)1.4 MATLAB对图像处理的特点 (4)第二章基于MATLAB的图像锐化 (5)2.1图像锐化概述 (5)2.2 线性锐化滤波器 (5)2.3 非线性锐化滤波器 (6)2.3.1 Roberts算子 (6)2.3.2 Prewitt锐化算子 (7)2.3.3 Sobel锐化算子 (8)2.3.4 一阶微分锐化的效果比较 (9)2.3.5 二阶微分锐化其算法为: (9)第三章基于MATLAB的边界提取 (11)3.1图像边界提取的概念 (11)3.2微分算子法 (11)3.2.1 Sobel算子 (12)3.2.3 prewitt算子 (12)3.2.4 Laplacian算子 (13)3.2.5 Canny边缘检测法 (13)3.2.6各种方法边界提取的图像 (15)3.2.7结论 (17)参考文献 (18)致谢 (19)第一章绪论1.1 图像锐化及边界提起发展背景和意义数字图像处理(Digital Image Processing)又称为计算机图像处理,它最早出现于20世纪50年代,当时的电子计算机已经发展到一定水平,人们开始利用计算机来处理图形和图像信息。
基于MATLAB的图像锐化算法研究与仿真

摘要在获取图像的过程中,由于多种因素的影响,导致图像质量会有所退化。
图像增强的目的在于通过处理有选择地突出便于人或机器分析某些感兴趣的信息,抑制一些无用的信息,以提高图像的使用价值。
图像锐化正是图像增强中空间域局部运算方法中的一种,其目的是增强和判断图像的边缘和轮廓信息。
而图像锐化的具体方法就是通过微分而使图像边缘突出、清晰。
图像锐化最常用的方法是梯度锐化法,但除梯度算法外,图像锐化的方法还有Roberts、Prewitt、Sobel和Laplacian等多种算法,本文对这些方法进行了介绍、比较和分析。
最后对MATLAB做了介绍,并运用MATLAB语言对图像锐化的部分算法进行了实现并记录结果。
通过对各种算法仿真和比较,每种算法都有各自的优缺点。
在分析了本论文采用的图像特点后,有针对性的对Laplacian算法进行了改进,即采用高提升滤波来提高图像的亮度。
实验结果表明,此方法可行,达到了预期的锐化效果。
关键词:图像增强;边缘;MATLAB;图像锐化AbstractIn the process of image acquisiting, the image quality will be degraded due to a variety of factors. Image enhanceing is aimed at highlighting some interested information that is easy to analyze for people and machine and inhibiting some useless information to enhance the image value. Image sharpening is a partion operation method of image enhancing in spatial domain, and its purpose is to enhance and judge the edge of the image and profile information and the specific method of the image sharpening uses differential to make the edge so prominent and clear.The most commonly used method of image sharpening is gradient sharpening. But apart from the gradient algorithm, image sharpening methods also have Roberts, Prewitt, Sobel, Laplacian and etc. These methods were introduced, compared and analyzed. Finally, MATLAB is introduced. And a part of the image sharpening algorithm is achievd and the results afe recorded. Through the simulation and comparison of the various algorithms, each algorithm has its own advantages and disadvantages. After the features of the image using in this paper are analyzed, it improves the Laplacian algorithm contrapositively, namely using high-elevating filtering to improve the brightness of the image. Experimental results show that the method is feasible and achieves the desired sharpening effect.Key words: Image enhancing; Edge;MATLAB; Image Sharpening毕业论文(设计)原创性声明本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工作及取得的研究成果。
图像锐化处理实验报告

图像锐化处理实验报告图像锐化处理实验报告一.实验目的学会用Matlab 中的函数对输入图像按实验内容对图像进行锐化,感受各种不同的图像处理方法对最终图像效果的影响,最后进行综合练习。
二.实验内容1.仔细阅读Matlab 帮助文件中有关以下函数的使用说明,主要有imfilter 、fspecial 、imadjust 等。
2.使用imfilter 函数分别采用Sobel ,Laplacian 算子对cameraman.jpg 图像作锐化运算,显示运算前后的图像。
算子输入方法(两种方法都做):(1)用fspecial 函数产生(fspecial 仅能产生垂直方向sobel 算子,产生Laplacian 算子时alpha 参数选择0)。
(2)直接输入Sobel 算子形式为121000121x d ---⎡⎤=⎢⎥⎢⎥⎣⎦(水平Sobel ) 101202101y d -⎡⎤=-⎢⎥⎢⎥-⎣⎦(垂直Sobel ) Laplacian 算子形式为010141010-⎡⎤--⎢⎥⎢⎥-⎣⎦。
对于Sobel 22x y d d +生成图像;对于Laplacian 算子,直接采用计算结果作为锐化后图像。
3.将skeleton.jpg 图像文件读入Matlab ,按照以下步骤对其进行处理:(1)用带对角线的Laplacian 对其处理,以增强边缘。
对角线Laplacian 算子为111181111---⎡⎤--⎢⎥⎢⎥---⎣⎦。
(2)将(1)结果叠加到原始图像上。
可以看出噪声增强了(Laplacian算子对噪声敏感),应想办法降低。
(3)获取Sobel 图像并用imfilter 对其进行5×5邻域平均,以减少噪声(4)获取2)和3)相乘图像,噪声得以减少。
(5)将(4)结果叠加到原始图像上。
(6)最后用imadjust 函数对5)结果做幂指数为0.2的灰度变换。
4.编写Roberts 梯度锐化函数。
数字图像处理 matlab代码

MATLAB实用源代码图像读取及灰度变换I=imread('cameraman.tif');%读取图像subplot(1,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(1,2,2),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题图像旋转I = imread('cameraman.tif');figure,imshow(I);theta = 30;K = imrotate(I,theta); % Try varying the angle, theta. figure, imshow(K)边缘检测I = imread('cameraman.tif');J1=edge(I,'sobel');J2=edge(I,'prewitt');J3=edge(I,'log');subplot(1,4,1),imshow(I);subplot(1,4,2),imshow(J1);subplot(1,4,3),imshow(J2);subplot(1,4,4),imshow(J3);1.图像反转MATLAB 程序实现如下:I=imread('xian.bmp');J=double(I);J=-J+(256-1); %图像反转线性变换H=uint8(J);subplot(1,2,1),imshow(I);subplot(1,2,2),imshow(H);2.灰度线性变换MATLAB 程序实现如下:I=imread('xian.bmp');subplot(2,2,1),imshow(I);title('原始图像');axis([50,250,50,200]);axis on; %显示坐标系I1=rgb2gray(I);subplot(2,2,2),imshow(I1);title('灰度图像');axis([50,250,50,200]);axis on; %显示坐标系J=imadjust(I1,[0.1 0.5],[]); %局部拉伸,把[0.1 0.5]内的灰度拉伸为[0 1] subplot(2,2,3),imshow(J);title('线性变换图像[0.1 0.5]');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系K=imadjust(I1,[0.3 0.7],[]); %局部拉伸,把[0.3 0.7]内的灰度拉伸为[0 1] subplot(2,2,4),imshow(K);title('线性变换图像[0.3 0.7]');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系3.非线性变换MATLAB 程序实现如下:I=imread('xian.bmp');I1=rgb2gray(I);subplot(1,2,1),imshow(I1);title(' 灰度图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系J=double(I1);J=40*(log(J+1));H=uint8(J);subplot(1,2,2),imshow(H);title(' 对数变换图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系4.直方图均衡化MATLAB 程序实现如下:I=imread('xian.bmp');I=rgb2gray(I);figure;subplot(2,2,1);imshow(I);subplot(2,2,2);imhist(I);I1=histeq(I);figure;subplot(2,2,1);imshow(I1);subplot(2,2,2);imhist(I1);5. 线性平滑滤波器用MA TLAB实现领域平均法抑制噪声程序:I=imread('xian.bmp');subplot(231)imshow(I)title('原始图像')I=rgb2gray(I);I1=imnoise(I,'salt & pepper',0.02);subplot(232)imshow(I1)title(' 添加椒盐噪声的图像')k1=filter2(fspecial('average',3),I1)/255; %进行3*3模板平滑滤波k2=filter2(fspecial('average',5),I1)/255; %进行5*5模板平滑滤波k3=filter2(fspecial('average',7),I1)/255; %进行7*7模板平滑滤波k4=filter2(fspecial('average',9),I1)/255; %进行9*9模板平滑滤波subplot(233),imshow(k1);title('3*3 模板平滑滤波');subplot(234),imshow(k2);title('5*5 模板平滑滤波');subplot(235),imshow(k3);title('7*7 模板平滑滤波');subplot(236),imshow(k4);title('9*9 模板平滑滤波');6.中值滤波器用MA TLAB实现中值滤波程序如下:I=imread('xian.bmp');I=rgb2gray(I);J=imnoise(I,'salt&pepper',0.02);subplot(231),imshow(I);title('原图像');subplot(232),imshow(J);title('添加椒盐噪声图像');k1=medfilt2(J); %进行3*3模板中值滤波k2=medfilt2(J,[5,5]); %进行5*5模板中值滤波k3=medfilt2(J,[7,7]); %进行7*7模板中值滤波k4=medfilt2(J,[9,9]); %进行9*9模板中值滤波subplot(233),imshow(k1);title('3*3模板中值滤波');subplot(234),imshow(k2);title('5*5模板中值滤波');subplot(235),imshow(k3);title('7*7模板中值滤波');subplot(236),imshow(k4);title('9*9 模板中值滤波');7.用Sobel算子和拉普拉斯对图像锐化:I=imread('xian.bmp');subplot(2,2,1),imshow(I);title('原始图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系I1=im2bw(I);subplot(2,2,2),imshow(I1);title('二值图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系H=fspecial('sobel'); %选择sobel算子J=filter2(H,I1); %卷积运算subplot(2,2,3),imshow(J);title('sobel算子锐化图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系h=[0 1 0,1 -4 1,0 1 0]; %拉普拉斯算子J1=conv2(I1,h,'same'); %卷积运算subplot(2,2,4),imshow(J1);title('拉普拉斯算子锐化图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系8.梯度算子检测边缘用MA TLAB实现如下:I=imread('xian.bmp');subplot(2,3,1);imshow(I);title('原始图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系I1=im2bw(I);subplot(2,3,2);imshow(I1);title('二值图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系I2=edge(I1,'roberts');figure;subplot(2,3,3);imshow(I2);title('roberts算子分割结果');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系I3=edge(I1,'sobel');subplot(2,3,4);imshow(I3);title('sobel算子分割结果');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系I4=edge(I1,'Prewitt');subplot(2,3,5);imshow(I4);title('Prewitt算子分割结果');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系9.LOG算子检测边缘用MA TLAB程序实现如下:I=imread('xian.bmp');subplot(2,2,1);imshow(I);title('原始图像');I1=rgb2gray(I);subplot(2,2,2);imshow(I1);title('灰度图像');I2=edge(I1,'log');subplot(2,2,3);imshow(I2);title('log算子分割结果');10.Canny算子检测边缘用MA TLAB程序实现如下:I=imread('xian.bmp');subplot(2,2,1);imshow(I);title('原始图像')I1=rgb2gray(I);subplot(2,2,2);imshow(I1);title('灰度图像');I2=edge(I1,'canny');subplot(2,2,3);imshow(I2);title('canny算子分割结果');11.边界跟踪(bwtraceboundary函数)clcclear allI=imread('xian.bmp');figureimshow(I);title('原始图像');I1=rgb2gray(I); %将彩色图像转化灰度图像threshold=graythresh(I1); %计算将灰度图像转化为二值图像所需的门限BW=im2bw(I1, threshold); %将灰度图像转化为二值图像figureimshow(BW);title('二值图像');dim=size(BW);col=round(dim(2)/2)-90; %计算起始点列坐标row=find(BW(:,col),1); %计算起始点行坐标connectivity=8;num_points=180;contour=bwtraceboundary(BW,[row,col],'N',connectivity,num_points);%提取边界figureimshow(I1);hold on;plot(contour(:,2),contour(:,1), 'g','LineWidth' ,2);title('边界跟踪图像');12.Hough变换I= imread('xian.bmp');rotI=rgb2gray(I);subplot(2,2,1);imshow(rotI);title('灰度图像');axis([50,250,50,200]);grid on;axis on;BW=edge(rotI,'prewitt');subplot(2,2,2);imshow(BW);title('prewitt算子边缘检测后图像');axis([50,250,50,200]);grid on;axis on;[H,T,R]=hough(BW);subplot(2,2,3);imshow(H,[],'XData',T,'YData',R,'InitialMagnification','fit');title('霍夫变换图');xlabel('\theta'),ylabel('\rho');axis on , axis normal, hold on;P=houghpeaks(H,5,'threshold',ceil(0.3*max(H(:))));x=T(P(:,2));y=R(P(:,1));plot(x,y,'s','color','white');lines=houghlines(BW,T,R,P,'FillGap',5,'MinLength',7);subplot(2,2,4);,imshow(rotI);title('霍夫变换图像检测');axis([50,250,50,200]);grid on;axis on;hold on;max_len=0;for k=1:length(lines)xy=[lines(k).point1;lines(k).point2];plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');plot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','yellow');plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Color','red');len=norm(lines(k).point1-lines(k).point2);if(len>max_len)max_len=len;xy_long=xy;endendplot(xy_long(:,1),xy_long(:,2),'LineWidth',2,'Color','cyan');13.直方图阈值法用MA TLAB实现直方图阈值法:I=imread('xian.bmp');I1=rgb2gray(I);figure;subplot(2,2,1);imshow(I1);title(' 灰度图像')axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系[m,n]=size(I1); %测量图像尺寸参数GP=zeros(1,256); %预创建存放灰度出现概率的向量for k=0:255GP(k+1)=length(find(I1==k))/(m*n); %计算每级灰度出现的概率,将其存入GP中相应位置endsubplot(2,2,2),bar(0:255,GP,'g') %绘制直方图title('灰度直方图')xlabel('灰度值')ylabel(' 出现概率')I2=im2bw(I,150/255);subplot(2,2,3),imshow(I2);title('阈值150的分割图像')axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系I3=im2bw(I,200/255); %subplot(2,2,4),imshow(I3);title('阈值200的分割图像')axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系14. 自动阈值法:Otsu法用MA TLAB实现Otsu算法:clcclear allI=imread('xian.bmp');subplot(1,2,1),imshow(I);title('原始图像')axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系level=graythresh(I); %确定灰度阈值BW=im2bw(I,level);subplot(1,2,2),imshow(BW);title('Otsu 法阈值分割图像')axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系15.膨胀操作I=imread('xian.bmp'); %载入图像I1=rgb2gray(I);subplot(1,2,1);imshow(I1);title('灰度图像')axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系se=strel('disk',1); %生成圆形结构元素I2=imdilate(I1,se); %用生成的结构元素对图像进行膨胀subplot(1,2,2);imshow(I2);title(' 膨胀后图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系16.腐蚀操作MATLAB 实现腐蚀操作I=imread('xian.bmp'); %载入图像I1=rgb2gray(I);subplot(1,2,1);imshow(I1);title('灰度图像')axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系se=strel('disk',1); %生成圆形结构元素I2=imerode(I1,se); %用生成的结构元素对图像进行腐蚀subplot(1,2,2);imshow(I2);title('腐蚀后图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系17.开启和闭合操作用MA TLAB实现开启和闭合操作I=imread('xian.bmp'); %载入图像subplot(2,2,1),imshow(I);title('原始图像');axis([50,250,50,200]);axis on; %显示坐标系I1=rgb2gray(I);subplot(2,2,2),imshow(I1);title('灰度图像');axis([50,250,50,200]);axis on; %显示坐标系se=strel('disk',1); %采用半径为1的圆作为结构元素I2=imopen(I1,se); %开启操作I3=imclose(I1,se); %闭合操作subplot(2,2,3),imshow(I2);title('开启运算后图像');axis([50,250,50,200]);axis on; %显示坐标系subplot(2,2,4),imshow(I3);title('闭合运算后图像');axis([50,250,50,200]);axis on; %显示坐标系18.开启和闭合组合操作I=imread('xian.bmp'); %载入图像subplot(3,2,1),imshow(I);title('原始图像');axis([50,250,50,200]);axis on; %显示坐标系I1=rgb2gray(I);subplot(3,2,2),imshow(I1);title('灰度图像');axis([50,250,50,200]);axis on; %显示坐标系se=strel('disk',1);I2=imopen(I1,se); %开启操作I3=imclose(I1,se); %闭合操作subplot(3,2,3),imshow(I2);title('开启运算后图像');axis([50,250,50,200]);axis on; %显示坐标系subplot(3,2,4),imshow(I3);title('闭合运算后图像');axis([50,250,50,200]);axis on; %显示坐标系se=strel('disk',1);I4=imopen(I1,se);I5=imclose(I4,se);subplot(3,2,5),imshow(I5); %开—闭运算图像title('开—闭运算图像');axis([50,250,50,200]);axis on; %显示坐标系I6=imclose(I1,se);I7=imopen(I6,se);subplot(3,2,6),imshow(I7); %闭—开运算图像title('闭—开运算图像');axis([50,250,50,200]);axis on; %显示坐标系19.形态学边界提取利用MATLAB实现如下:I=imread('xian.bmp'); %载入图像subplot(1,3,1),imshow(I);title('原始图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系I1=im2bw(I);subplot(1,3,2),imshow(I1);title('二值化图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系I2=bwperim(I1); %获取区域的周长subplot(1,3,3),imshow(I2);title('边界周长的二值图像');axis([50,250,50,200]);grid on;axis on;20.形态学骨架提取利用MATLAB实现如下:I=imread('xian.bmp');subplot(2,2,1),imshow(I);title('原始图像');axis([50,250,50,200]);axis on;I1=im2bw(I);subplot(2,2,2),imshow(I1);title('二值图像');axis([50,250,50,200]);axis on;I2=bwmorph(I1,'skel',1);subplot(2,2,3),imshow(I2);title('1次骨架提取');axis([50,250,50,200]);axis on;I3=bwmorph(I1,'skel',2);subplot(2,2,4),imshow(I3);title('2次骨架提取');axis([50,250,50,200]);axis on;21.直接提取四个顶点坐标I = imread('xian.bmp');I = I(:,:,1);BW=im2bw(I);figureimshow(~BW)[x,y]=getpts。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB 实现数字图像锐化处理
摘要:讨论了数字图像增强技术中空域图像锐化的四种算法及其用MATLAB的实现;同时给出了利用四种算法进行图像锐化后的对照图像。
比较实验结果,可知运用算法锐化处理后,图像比原来图像清晰。
关键词:MATLAB、线性锐化、非线性锐化、sobel算子、prewitt算子、log算子
1.引言
MATLAB全称是Matrix Laboratory(矩阵实验室),一开始它是一种专门用于矩阵数值计算的软件,从这一点上也可以看出,它在矩阵运算上有自己独特的特点。
实际运用中MATLAB 中的绝大多数的运算都是通过矩阵这一形式进行的,这一特点决定了MATLAB 在处理数字图像上的独特优势。
理论上讲,图像是一种二维的连续函数,然而计算机对图像进行数字处理时,首先必须对其在空间和亮度上进行数字化,这就是图像的采样和量化的过程。
二维图像均匀采样,可得到一幅离散化成M ×N 样本的数字图像,该数字图像是一个整数阵列,因而用矩阵来描述该数字图像是最直观最简便的。
而MATLAB 的长处就是处理矩阵运算,因此用MATLAB 处理数字图像非常的方便。
MATLAB 支持五种图像类型,即索引图像、灰度图像、二值图像、RGB 图像和多帧图像阵列;支持BMP,GIF,HDF,JPEG,PCX,PNG,XWD,CUR,ICO等图像文件格式的读、写和显示。
MATLAB 对图像的处理功能主要集中在它的图像处理工具箱(Image Processing Toolbox)中。
图像处理工具箱是由一系列支持图像处理操作的函数组成,可以进行诸如几何操作、线性滤波和滤波器设计、图像变换、图像分析与图像增强、二值图像操作以及形态学处理等图像处理操作口。
数字图像处理中图像锐化的目的有两个:一是增强图像的边缘,使模糊的图像变得清晰起来;这种模糊不是由于错误操作,就是特殊图像获取方法的固有影响。
二是提取目标物体的边界,对图像进行分割,便于目标区域的识别等。
通过图像的锐化,使得图像的质量有所改变,产生更适合人观察和识别的图像。
2.数字图像的锐化
数字图像的锐化可分为线性锐化滤波和非线性锐化滤波。
如果输出像素是输入像素领域像素的线性组合则称为线性滤波,否则称为非线性滤波。
2.1线性锐化滤波器
线性高通滤波器是最常用的线性锐化滤波器。
这种滤波器必须满足滤波器的中心系数为正数,其他系数为负数。
线性高通滤波器3 ×3 模板的典型系数如表1 所示:
表 1
用线性高通滤波实现图像锐化的程序和图像如下:
F=imread('F:/text.png'); %读入图像
f=rgb2gray(F);
h=double(f); %转化为double 类型
g=[-1 -1 -1; -1 8 -1; -1 -1 -1];%线性高通滤波3×3 模板
j=conv2(h,g,'same');% 线性高通滤波进行图像滤波
subplot(1,2,1);imshow(f);title('原始图像');
J=uint8(j);
subplot(1,2,2);imshow(J);title('滤波后图像');
2.2非线性锐化滤波器
非线性锐化滤波就是使用微分对图像进行处理,以此来锐化由于邻域平均导致的模糊图像。
图像处理中最常用的微分是利用图y 像沿某个方向上的灰度变化率,即原图像函数的梯度。
梯度定义如下:
原始图
像滤波后图像
梯度模的表达式如下:
在数字图像处理中,数据是离散的,幅值是有限的,其发生的最短距离是在两相邻像素之间。
因此在数字图像处理中通常采用一阶差分来定义微分算子。
其差分形式为:
△xf=f(x+1,y)-f(x,y)
△yf=f(x,y+1)-f(x,y)
比较有名的微分滤波器算子包括Sobel 梯度算子、Prewitt 梯度算子和log 算子等等。
用Sobel 梯度算子实现图像锐化的程序和图像如下:
i=imread('F:/text.png');%读入图像
I=rgb2gray(i);
subplot(1,2,1),imshow(I);title('原图像');%显示原图像
H=fspecial('sobel'); %应用sobel 算子锐化图像
I2=filter2(H,I); %sobel 算子滤波锐化
subplot(1,2,2);imshow(I2);%显示sobel 算子锐化图像
title('sobel 算子锐化图像');
用Prewitt 梯度算子实现图像锐化的程序和图像如下:
原图
像sobel 算子锐化图像
i=imread('F:/text.png');%读入图像
I=rgb2gray(i);
subplot(1,2,1),imshow(I);title('原图像');%显示原图像
H=fspecial('prewitt');%应用prewitt 算子锐化图像
I3=filter2(H,I);%prewitt 算子滤波锐化
subplot(1,2,2);imshow(I3); %显示prewitt 算子锐化图像
title('prewitt 算子锐化图像');
用log 梯度算子实现图像锐化的程序和图像如下:
i=imread('F:/text.png');%读入图像
I=rgb2gray(i);
subplot(1,2,1),imshow(I);title('原图像');%显示原图像
H=fspecial('log'); %应用log 算子锐化图像
I4=filter2(H,I); %log 算子滤波锐化
subplot(1,2,2);imshow(I4);%显示log 算子锐化图像
title('log 算子锐化图像');
原图
像prewitt 算子锐化图像
3.结束语
本文就MATLAB 在数字图像锐化处理方面进行了阐述、讨论。
实验结果表明应用MATLAB 进行数字图像处理具有理想的效果和很高的工程价值。
当然,MATLAB 图像处理工具箱中所提供的图像处理功能远不止这些。
可以说,MATLAB 为数字图像处理提供了一种简单、快捷而又有效的方法,大大提高了数字图像处理的效率及效果并且应用到图像处理的各个方向。
参考文献:
[1]韩晓军,苗长云,王亚青.基于标准图像文件格式的数字图像处理方法[J]. 阜新:辽宁工程技术大学学报(自然科学版).2000,19(4)
[2]柏春岚.基于空域图像增强的研究与分析[J].河南城建学院学报.2011,20(1)
[3]关雪梅.基于空域的图像增强技术研究.赤峰学院学报.2012,28(4)
[4]曾嘉亮.基于边缘检测的图像锐化算法.《现代电子技术》.2006,12(227)
[5]卢允伟,陈友荣.基于拉普拉斯算法的图像锐化算法研究和实现. Computer Knowledge and Technology 电脑知识与技术.2009,5(6)
原图
像。