(完整版)数字图像处理大作业
数字图像处理大作业

1、下图是一用于干涉原理进行测试的干涉场图像,要求判读条纹的间距,请给出图像处理的方案并说明每一步的作用及其对其它处理步骤可能产生的影响。
解:步骤与思路:○1.进行模糊处理,消除噪声○2.边缘检测,进行图像增强处理○3.二值化图像,再进行边缘检测,能够得到很清晰的边界。
○4.采用横向标号法,根据值为1像素在标号中的相邻位置可以确定间距I=imread('xz mjt.bmp');I1=medfilt2(I); %对图像中值滤波imshow(I1);[m,n]=size(I1);for i=1:mfor j=1:nif(I1(i,j)<100) %阈值为100I1(i,j)=255;elseI1(i,j)=0; %进行二值化endendendfigure;imshow(I1);Y1=zeros(1,25);y2=y1;c=y2;i=100;for j=1:1200if (I1(i,j)==255&&I1(i,j+1)==0)Y1=j+1;endif (I1(i,j)==0&&I1(i,j+1)==255)Y2=j;endendfor i=1:25c=Y2(i)-Y1(i)endc %找出每两个条纹之间的距离2. 现有8个待编码的符号m0,……,m7,它们的概率分别为0.11,0.02,0.08,0.04,0.39,0.05,0.06,0.25,利用哈夫曼编码求出这一组符号的编码并画出哈夫曼树。
3. 请以图像分割方法为主题,结合具体处理实例,采用期刊论文格式,撰写一篇小论文。
各种算子对图像进行边缘检测效果的研究图像分割是根据需要将图像划分为有意义的若干区域或部分的图像处理技术。
通过边缘检测在Matlab中实现方法,及用四叉数分解函数进行区域分割的方法,掌握了Matlab区域操作函数的使用和图像分析和理解的基本方法,并学到了'roberts','sobel','prewitt','canny','log'算子对图像进行边缘检测的不同效果。
《数字图像处理》期末大作业(1)

《数字图像处理》期末大作业大作业题目及要求:一、题目:本门课程的考核以作品形式进行。
作品必须用Matlab完成。
并提交相关文档。
二、作品要求:1、用Matlab设计实现图形化界面,调用后台函数完成设计,函数可以调用Matlab工具箱中的函数,也可以自己编写函数。
设计完成后,点击GUI图形界面上的菜单或者按钮,进行必要的交互式操作后,最终能显示运行结果。
2、要求实现以下功能:每个功能的演示窗口标题必须体现完成该功能的小组成员的学号和姓名。
1)对于打开的图像可以显示其灰度直方图,实现直方图均衡化。
2)实现灰度图像的对比度增强,要求实现线性变换和非线性变换(包括对数变换和指数变换)。
3)实现图像的缩放变换、旋转变换等。
4)图像加噪(用输入参数控制不同噪声),然后使用空域和频域进行滤波处理。
5)采用robert算子,prewitt算子,sobel算子,拉普拉斯算子对图像进行边缘提取。
6)读入两幅图像,一幅为背景图像,一幅为含有目标的图像,应用所学的知识提取出目标。
3、认真完成期末大作业报告的撰写,对各个算法的原理和实验结果务必进行仔细分析讨论。
报告采用A4纸打印并装订成册。
附录:报告模板《数字图像处理》期末大作业班级:计算机小组编号:第9组组长:王迪小组成员:吴佳达浙江万里学院计算机与信息学院2014年12月目录(自动生成)1 绘制灰度直方图,实现直方图均衡化 (5)1.1 算法原理 (5)1.2 算法设计 (5)1.3 实验结果及对比分析 (5)2 灰度图像的对比度增强 (5)2.1 算法原理 (5)2.2 算法设计 (5)2.3 实验结果及分析 (5)3 图像的几何变换 (5)3.1 算法原理 (5)3.2 算法设计 (5)3.3 实验结果及分析 (5)4 图像加噪(用输入参数控制不同噪声),然后使用空域和频域进行滤波处理 (5)4.1 算法原理 (5)4.2 算法设计 (6)4.3 实验结果及分析 (6)5 采用robert,prewitt,sobel,拉普拉斯算子对图像进行边缘提取 (6)5.1 算法原理 (6)5.2 算法设计 (6)5.3 实验结果及分析 (6)6 读入两幅图像,一幅为背景图像,一幅为含有目标的图像,应用所学的知识提取出目标 (6)6.1 算法原理 (6)6.2 算法设计 (6)6.3 实验结果及分析 (6)7 小结(感受和体会) (6)1 绘制灰度直方图,实现直方图均衡化1.1 算法原理图像增强是指按特定的需要突出一幅图像中的某些信息,同时,消弱或去除某些不需要的信息的处理方法。
数字图像处理大作业

1、下图是一用于干涉原理进行测试的干涉场图像,要求判读条纹的间距,请给出图像处理的方案并说明每一步的作用及其对其它处理步骤可能产生的影响。
解:步骤与思路:○1.进行模糊处理,消除噪声○2.边缘检测,进行图像增强处理○3.二值化图像,再进行边缘检测,能够得到很清晰的边界。
○4.采用横向标号法,根据值为1像素在标号中的相邻位置可以确定间距I=imread('xz mjt.bmp');I1=medfilt2(I); %对图像中值滤波imshow(I1);[m,n]=size(I1);for i=1:mfor j=1:nif(I1(i,j)<100) %阈值为100I1(i,j)=255;elseI1(i,j)=0; %进行二值化endendendfigure;imshow(I1);Y1=zeros(1,25);y2=y1;c=y2;i=100;for j=1:1200if (I1(i,j)==255&&I1(i,j+1)==0)Y1=j+1;endif (I1(i,j)==0&&I1(i,j+1)==255)Y2=j;endendfor i=1:25c=Y2(i)-Y1(i)endc %找出每两个条纹之间的距离2. 现有8个待编码的符号m0,……,m7,它们的概率分别为0.11,0.02,0.08,0.04,0.39,0.05,0.06,0.25,利用哈夫曼编码求出这一组符号的编码并画出哈夫曼树。
3. 请以图像分割方法为主题,结合具体处理实例,采用期刊论文格式,撰写一篇小论文。
各种算子对图像进行边缘检测效果的研究图像分割是根据需要将图像划分为有意义的若干区域或部分的图像处理技术。
通过边缘检测在Matlab 中实现方法,及用四叉数分解函数进行区域分割的方法,掌握了Matlab 区域操作函数的使用和图像分析和理解的基本方法,并学到了'roberts','sobel','prewitt','canny','log'算子对图像进行边缘检测的不同效果。
数字图像处理大作业报告

数字图像处理实验报告实验选题:选题二组员:学号:班级:指导老师:实验日期:2019年5月22日一、实验目的及原理1.识别出芯片的引脚2.熟悉并掌握opencv的某些函数的功能和使用方法原理:通过滤波、形态学操作得到二值图,再在二值图中设置条件识别引脚部分。
二、实现方案对图片滤波、调节阈值做边缘检测过滤掉一部分图片中干扰元素;然后通过膨胀、腐蚀操作来减少引脚的空心部分;再通过findContours()函数找到引脚的边缘并得到轮廓的点集,设置特定的长宽比和矩形面积识别引脚部分。
三、实验结果四、源码#include<iostream>#include<cmath>#include"opencv2/highgui/highgui.hpp"#include"opencv2/imgproc/imgproc.hpp"using namespace std;using namespace cv;int main(int argv, char **argc){//载入图片Mat srtImag = imread("2.jpg");Mat G_blur = srtImag.clone();//降噪blur(G_blur, G_blur, Size(5, 5));//imshow("降噪", G_blur);//Canny边缘检测Mat Canny_Imag = G_blur;Canny_Imag = Canny_Imag > 176;Canny(G_blur, Canny_Imag, 300, 50, 3);//imshow("边缘检测", Canny_Imag);//膨胀Mat element = getStructuringElement(MORPH_RECT, Size(10, 10));dilate(Canny_Imag, Canny_Imag, element);//imshow("膨胀", Canny_Imag);//腐蚀Mat element_1 = getStructuringElement(MORPH_RECT, Size(11, 11));erode(Canny_Imag, Canny_Imag, element_1);//imshow("腐蚀", Canny_Imag);//查找轮廓vector<vector<Point>>contours;vector<Vec4i>hierarchy;findContours(Canny_Imag, contours, hierarchy, RETR_CCOMP, CHAIN_APPROX_SIMPLE);vector<vector<Point>> contour_s(contours.size());//该数组共有contours.size()个轮廓的点集vector<Rect> Rec_s(contours.size());//逼近多边形的点集数组//获得每个轮廓点集的逼近多边形的点集for (size_t i = 0; i < contours.size(); i++) {approxPolyDP(Mat(contours[i]), contour_s[i], 3,false);//contour_s存储逼近多边形的点集Rec_s[i]= boundingRect(contour_s[i]); //Rec_s存储最小包围矩形的点集}//筛选合适长宽比的矩形并将其画出来Mat result_Imag = srtImag.clone();for (size_t j = 0; j < contours.size(); j++) {double as_ra;//长宽比as_ra = Rec_s[j].height / Rec_s[j].width;if (as_ra > 3.3 && as_ra < 9.3 && Rec_s[j].area() > 20) { rectangle(result_Imag, Rec_s[j], Scalar(0, 255, 255), 2, 7);}}imshow("result", result_Imag);waitKey(0);return 0;}五、总结经过这次实验,我熟悉了对blur()、Canny()、dilate()、erode()、findContours()、approxPolyDP()等函数的使用,了解了Rect类的构成等。
《数字图像处理》大作业:车牌识别

将图中字符分割出来 将每个字符单独分割出来进行操作方便字 符识别 用d=bwareaopen(d,150);将第二个 和第三个字符中间的点去除点。
分割第一个字符的程序
wide1 = 0 while sum(d(:,wide1+1))<3 && wide1 <= n-2 wide1 = wide1 + 1; end wide2 = wide1; while sum(d(:,wide2+1))>2 && wide2 <= n-2 wide2 = wide2 + 1; end % temp = imcrop(d, [wide1 1 wide2-wide1 m]); % figure;imshow(temp); % tp=3;bottm=m-5; while sum(d(tp,wide1:wide2))==0 tp = tp + 1; end while sum(d(bottm,wide1:wide2))==0 bottm = bottm - 1; end e1 = imcrop(d, [wide1 tp wide2-wide1 bottm-tp]);
%求出一列中满足蓝色区域点的个数
%找出车牌区域左右边界
车牌字符处理
首先要对定位好的车牌图像进行处理,再将车牌 上的字符分割出来,方便后续识别操作。ຫໍສະໝຸດ 图像灰度化图像二值化
图像滤波处理
车牌图像处理
图像处理部分程序
X = im2bw(Plate); 像 [H, L] = size(X); X = imcrop(X, [5 5 L-10 H-10]); %im2bw使用阈值变换法把灰度图 转换成二值图像。
数字图像处理大作业(DOC)

大作业指导书题目:数字图像处理院(系):物联网工程学院专业: 计算机班级:计算机1401-1406指导老师:学号:姓名:设计时间: 2016-2017学年 1学期摘要 (3)一、简介 (3)二、斑点数据模型.参数估计与解释 (4)三、水平集框架 (5)1.能量泛函映射 (5)2.水平集传播模型 (6)3.随机评估方法 (7)四、实验结果 (8)五、总结 (11)基于水平集方法和G0模型的SAR图像分割Abstract(摘要)这篇文章提出了一种分割SAR图像的方法,探索利用SAR数据中的统计特性将图像分区域。
我们假设为SAR图像分割分配参数,并与水平集模型相结合。
分布属于G分布中的一种,处于数据建模的目的,它们已经成功的被用于振幅SAR图像中不同区域的建模。
这种统计数据模型是驱动能量泛函执行区域映射的基础,被引用到水平集传播数值方案中,将SAR 图像分为均匀、异构和极其异构区域。
此外,我们引入了一个基于随机距离和模型的评估过程,用于量化我们方法的鲁棒性和准确性。
实验结果表明,我们的算法对合成和真实SAR 数据都具有准确性。
+简介1、Induction(简介)合成孔径雷达系统是一种成像装置,采用相干照明比如激光和超声波,并会受到斑点噪声的影响。
在SAR图像处理过程中,返回的是斑点噪声和雷达切面建模在一起的结果。
这个积性模型(文献[1])因包含大量的真实SAR数据,并且在获取过程中斑点噪声被建模为固有的一部分而被广泛应用。
因此,SAR图像应用区域边界和目标检测变得更加困难,可能需要斑点去除。
因此,斑点去除是必需的,有效的方法可以在文献[2][3][4][5][6][7][8][9][10]中找到。
对于SAR图像分割,水平集方法构成一类基于哈密顿-雅克比公式的重要算法。
水平集方法允许有效的分割标准公式,从文献[12]中讨论的传播函数项可以得到。
经典方法有着昂贵的计算成本,但现在的水平集的实现配置了有趣的低成本的替换。
完整版数字图像处理作业题及部分答案

1.数字图像与连续图像相比具有哪些优点?连续图像f(x,y)与数字图像I(c,r)中各量的含义是什么?它们有何联系和区别? (To be compared with an analog image, what are the advantagesof a digital image? Let f(x,y) be an analog image, I(r, c) be a digital image, please giveexplanation and comparison for defined variables: f/I, x/r, and y/c)2.图像处理可分为哪三个阶段? 它们是如何划分的?各有什么特点? (We can divide image processing into 3 stages, what are they? how they are divided? What are their features?)答:低级处理---低层操作,强调图像之间的变换,是一个从图像到图像的过程;中级处理---中层操作,主要对图像中感兴趣的目标进行检测和测量,从而建立对图像的描述,是一个从图像到数值或符号的过程;高级处理---高层操作,研究图像中各目标的性质和相互联系,得出对图像内容含义的理解以及对原来客观场景的解释;3.试从结构和功能等角度分析人类视觉中最基本的几个要素是什么?什么是马赫带效应? 什么是同时对比度?它们反映了什么共同问题? (According to the structure and function of theeyes, what are the basic elements in human vision? What is the Mach Band Effect? What is Simultaneous Contrast? What common facts can we infer from both Mach Band Effect and Simultaneous Contrast?)答:人的视觉系统趋向于过高或过低估计不同亮度区域边界的现象称为“马赫带”效应;同时对比度指的是人的视觉系统对某个区域感觉到的亮度除了依赖于它本身的强度,还与背景有关. 马赫带效应和同时对比度现象表明人所感觉到的亮度并不是强度的简单函数.4.比较说明像素邻域、连接、通路以及连通基本概念的联系与区别。
数字图像处理大作业

[HW5][24]SA11009045_张海滨大作业1、行模糊、锐化、和直方图均衡化。
程序:I=imread('E:\研一\数字图像处理\作业\HW5\DSC00003.JPG'); figure,imshow(I),title('原始图像');I1=rgb2gray(I);I1=imresize(I1,0.5);figure,imshow(I1),title('灰度图像');h=ones(5,5)/25;I2=imfilter(I1,h);figure,imshow(I2),title('模糊处理');J=double(I1);h1=fspecial('laplacian');I3=filter2(h1,J);figure,imshow(I3),title('锐化处理');I4 = histeq(I1,256);figure,imhist(I1),title('原图像直方图');figure,imshow(I4),title('均衡化处理');figure,imhist(I4),title('均衡化后直方图');进行运算的结果为:原始图像此为进行处理的原始图像。
进行图像灰度化并把图像的大小进行调整为原来的一半,得到图像:对图像分别进行均值滤波器模糊、拉普拉斯算子锐化处理,得到的结果如下图:方图如下所示。
2、边缘检测,程序:I=imread('F:\研一\数字图像处理\作业\HW5\DSC00003.JPG'); I1=rgb2gray(I);I1=imresize(I1,0.5);J=double(I1);H=[0 1 0;1 -4 1;0 1 0];J=conv2(J,H,'same');J=I1-J;subplot(1,2,1);imshow(I1),title('灰度图像');subplot(1,2,2);imshow(J),title('Laplace算子边缘检测');G1 = [-1 -2 -1;0 0 0;1 2 1];G2 = G1';Iedge=I1;I2x = filter2(G1,Iedge);I2y = filter2(G2,Iedge);I2=abs(I2x+I2y);I22 = mat2gray(I2);figure,imshow(mat2gray(abs(I2x))),title('水平方向边缘')figure,imshow(mat2gray(abs(I2y))),title('垂直方向边缘')figure,imshow(I22),title('合成边缘')IFB=im2bw(I22,0.08);figure,imshow(IFB),title('合成边缘二值图像')[m n]=size(I22);I2_edge=I22;for i=1:mfor j=1:nif I2_edge(i,j)>0.15I2_edge(i,j)=1;else if I2_edge(i,j)>0.06I2_edge(i,j)=0.5;endendendendfigure,imshow(I2_edge),title('边缘增强后的图像');可以得到Laplace 算子处理得到的边缘:灰度图像Laplace 算子边缘检测利用Sobel算子获得的图像的水平和垂直边缘。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字图像处理1.图像工程的三个层次是指哪三个层次?各个层次对应的输入、输出对象分别是什么?①图像处理特点:输入是图像,输出也是图像,即图像之间进行的变换。
②图像分割特点:输入是图像,输出是数据。
③图像识别特点:以客观世界为中心,借助知识、经验等来把握整个客观世界。
“输入是数据,输出是理解。
2.常用的颜色模型有哪些(列举三种以上)?并分别说明颜色模型各分量代表的意义。
①RGB(红、绿、蓝)模型②CMY(青、品红、黄)模型③HSI(色调、饱和度、亮度)模型3.什么是图像的采样?什么是图像的量化?1.采样采样的实质就是要用多少点来描述一幅图像,采样结果质量的高低就是用前面所说的图像分辨率来衡量。
简单来讲,对二维空间上连续的图像在水平和垂直方向上等间距地分割成矩形网状结构,所形成的微小方格称为像素点。
一副图像就被采样成有限个像素点构成的集合。
例如:一副640*480分辨率的图像,表示这幅图像是由640*480=307200个像素点组成。
2.量化量化是指要使用多大范围的数值来表示图像采样之后的每一个点。
量化的结果是图像能够容纳的颜色总数,它反映了采样的质量。
针对数字图像而言:采样决定了图像的空间分辨率,换句话说,空间分辨率是图像中可分辨的最小细节。
量化决定了图像的灰度级,即指在灰度级别中可分辨的最小变化。
数字图像处理(第三次课)调用图像格式转换函数实现彩色图像、灰度图像、二值图像、索引图像之间的转换。
图像的类型转换:对于索引图像进行滤波时,必须把它转换为RGB图像,否则对图像的下标进行滤波,得到的结果是毫无意义的;2.用MATLAB完成灰度图像直方图统计代码设计。
6789101112131415161718192021222324252627282930title('lady-lenna');if isrgb(a);b=rgb2gray(a);%RGB转换为灰度图像endsubplot(2,2,2);imshow(b);%显示图像title('ladygaga-lenna');[m,n]=size(a);%返回图像大小e=zeros(1,256);for k=0:255for i=1:mfor j=1:nif a(i,j)==ke(k+1)=e(k+1)+1;%灰度值相同的进行累加endendendendsubplot(2,2,4);bar(e);%画图像的灰度直方图title('灰度直方图');c=imrotate(a,20);%图像的旋转subplot(2,2,3);imshow(c);数字图像处理(第四次课)编写matlab函数,实现在医学图像中数字减影血管造影。
即实现两幅图像的差值图像。
123456789实验代码I=imread('F:\图像处理\1.jpg');%原始图像imshow(I);BK=imread('F:\图像处理\2.jpg');%背景figure;imshow(BK);Ip=imsubtract(I,BK);%图像减背景figure;imshow(Ip,[])实验结果:图像剪切:任意选择一幅图片,实现图像的镜像。
这题其实就是一个函数imcrop()的使用而已。
12345678910close all;clear all;clc;img=imread('F:\图像处理\3.jpg');imshow(img);imgn=imcrop();%这里把要裁剪的图像框出来figure;imshow(imgn)%显示裁剪的图像实验结果:实现图像的镜像:1 2 3 4 5 6 7 8 91011121314151617181920 实验代码clear all;close all;clc;A=imread('F:\图像处理\4.jpg');[height,width,dim]=size(A);tform=maketform('affine',[-100;010;width 01]);B=imtransform(A,tform,'nearest');%B中存储的是经过水平镜像变换后的图像tform2=maketform('affine',[100;0-10;0 height 1]);C=imtransform(A,tform2,'nearest');%C中存储的是经过竖直镜像变换后的图像subplot(1,3,1),imshow(A);title('原图像');subplot(1,3,2),imshow(B);title('水平镜像');subplot(1,3,3),imshow(C);title('坚直镜像');subplot(2,2,3);imshow(c);数字图像处理(第五次课)数字图像增强有哪些方法?图像增强可分成两大类:频率域法和空间域法。
前者把图像看成一种二维信号,对其进行基于二维傅里叶变换的信号增强。
采用低通滤波(即只让低频信号通过)法,可去掉图中的噪声;采用高通滤波法,则可增强边缘等高频信号,使模糊的图片变得清晰。
后者空间域法中具有代表性的算法有局部求平均值法和中值滤波(取局部邻域中的中间像素值)法等,它们可用于去除或减弱噪声。
数字设一幅图像有如下图所示直方图,若对其进行直方图均衡处理,求出增强后的灰度分布,并给出处理后的直方图。
0 1 2 3 4 5 6 70.0.0.0.0.0.1740.0880.0860.080.0680.0580.0620.3841 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435363738394041 clcclear allprob0=[.174.088.086.08.068.058.062.384]; zero0=zeros(1,8);for i=1:8if i==1zero0(1)=prob0(1);elsezero0(1,i)=zero0(1,i-1)+prob0(1,i);endendfor i=1:8if i==1zero0(1)=prob0(1);elsezero0(1,i)=zero0(1,i-1)+prob0(1,i);endendzero1=zeros(1,8);for i=1:8for j=0:7a=abs(zero0(i)-j/7);if a<1/14zero1(j+1)=zero1(j+1)+prob0(i);endendendb=find(zero1==0);zero1(b)=[];prob1=zero1;subplot(121)bar(prob0)title('均衡化前')subplot(122)bar(prob1)title('均衡化后')title('均衡化前')subplot(122)bar(prob1)title('均衡化后')实验结果:数字图像处理(第六次课)利用help,学习imfilter和fspecial函数的用法,编写程序创建3*3的均值滤波器和半径为5的圆形滤波器对图像进行平滑处理;MATLAB提供了基于卷积的图像滤波函数imfilter进行平滑滤波,该函数用指定的滤波器模板对图像进行运算。
其调用格式为:B = imfilter(h,A)B = imfilter(h,A,shape)其中B=imfilter(h,A)返回图像A经算子h滤波后的结果,参数shape指定滤波的计算范围,即:shape=‘full’时,作边界补零shape=‘same’时,返回图像B与输入图像A大小相同shape=‘valid’时,不考虑边界补零,只计算有效输出部分。
此外,也可以使用imfilter函数进行卷积或相关性滤波来实现图像平滑。
该函数的调用格式为:B = imfilter(A,H)B = imfilter(A,H, option1,option2,…)其中B=imfilter(A,H)返回图像A经算子h滤波后的结果;B=imfilter(A,H, option 1, option 2,…)是根据指定的option参数实现图像滤波。
option参数可以有下列取值:边界填充选项对一幅图像进行滤波时,零填充可能会导致图像被一个黑框围绕,为了消除零填充的人工痕迹,imfilter函数支持三种可选的边界填充方法:‘symmetric’ 边界对称‘replicate’ 边界复制,缺省值‘circular’ 边界循环输出尺寸选项其选项与imfilter函数的shape参数相同。
滤波选项‘corr’ 使用相关性来进行滤波,缺省使用此方法‘conv’ 使用卷积方法实现滤波学习ordfilt2函数的用法,编程调用该函数利用不同的统计排序滤波器实现图像滤波。
中文理解函数名就是顺序滤波函数,后面的2表示的是2维滤波,常用的调用形式如下:1.B = ordfilt2(A,order,domain)这种形式中,A为被滤波的矩阵,order表示选取由domain确定的邻域中第order个元素替换A中的元素,存入B中。
示例如下:Y=ordfilt2(X,5,ones(3)) ; //相当于3*3窗口的中值滤波Y=ordfilt2(X,1,ones(3)); //相当于3*3窗口的最小值滤波需要注意的是,domain矩阵中可能会有某些位置为零(不为零的位置为1),这种为零的位置不算在顺序统计的领域之中。
也就是说:Y=ordfilt2(X,1,[0 1 0;1 0 1;0 1 0]) 表示用窗口表示的邻域中不为零的位置的像素值中选择最小的替代原来的像素值。
2.B = ordfilt2(A,order,domain,S)暂时没搞明白S是做啥用的,好像一时半会儿也用不到,先记录着,以后想明白了再更新利用help,学习edge函数的用法,并思考如何利用edge函数使用不同锐化算子对图像进行锐化。
1)利用matlab提供的edge函数,选择三种边缘检测算子,分别对图像Lena.tif和baboon.tif 进行边缘检测显示检测结果。
2)对Lena.tif和baboon.tif分别添加高斯和椒盐噪声,然后对有噪声的图像进行边缘检测,显示检测出的边缘图像1 2 3 4 5 6 7 8 910111213141516 clear all %清空工作空间I=imread('lena.jpg');%读入图像BW=edge(I,'sobel');%sobel算子分析BW2=edge(I,'log');%拉普拉斯算子分析BW3=edge(I,'prewitt');%梯度算子分析J1=imnoise(I,'gaussian',0,0.02);%添加高斯噪声J2=imnoise(I,'salt & pepper',0.02);%添加椒盐噪声BW4=edge(J1,'sobel');%高斯噪声后sobel算子分析BW5=edge(J2,'log');%椒盐噪声后laplace 算子分析BW6=edge(J1,'log');%高斯噪声后laplace 算子分析BW7=edge(J2,'sobel');%椒盐噪声后sobel算子分析171819202122232425262728293031323334BW8=edge(J1,'prewitt');%高斯噪声后梯度算子分析BW9=edge(J2,'prewitt');%椒盐噪声后梯度算子分析figure;%显示所需图像subplot(2,2,1);imshow(I);xlabel('原图')subplot(2,2,2);imshow(BW);xlabel('sobel算子分析')subplot(2,2,3);imshow(BW2);xlabel('拉普拉斯算子分析')subplot(2,2,4);imshow(BW3);xlabel('梯度算子分析')figure;subplot(2,2,1);imshow(J1);xlabel('添加高斯噪声')subplot(2,2,2);imshow(BW4);xlabel('高斯噪声后sobel算子分析')subplot(2,2,3);imshow(BW6);xlabel('高斯噪声后拉普拉斯算子分析')subplot(2,2,4);imshow(BW8);xlabel('高斯噪声后梯度算子分析')figure;subplot(2,2,1);imshow(J2);xlabel('添加椒盐噪声')subplot(2,2,2);imshow(BW5);xlabel('椒盐噪声后拉普拉斯算子分析')subplot(2,2,3);imshow(BW7);xlabel('椒盐噪声后sobel算子分析')subplot(2,2,4);imshow(BW9);xlabel('椒盐噪声后梯度算子分析')。