您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页(完整版)数字图像处理大作业

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

来源:华佗小知识
(完整版)数字图像处理⼤作业

数字图像处理

1.图像⼯程的三个层次是指哪三个层次?各个层次对应的输⼊、输出对象分别是什么?①图像处理

特点:输⼊是图像,输出也是图像,即图像之间进⾏的变换。②图像分割

特点:输⼊是图像,输出是数据。③图像识别

特点:以客观世界为中⼼,借助知识、经验等来把握整个客观世界。“输⼊是数据,输出是理解。2.常⽤的颜⾊模型有哪些(列举三种以上)?并分别说明颜⾊模型各分量代表的意义。①RGB(红、绿、蓝)模型②CMY(青、品红、黄)模型③HSI(⾊调、饱和度、亮度)模型3.什么是图像的采样?什么是图像的量化?1.采样

采样的实质就是要⽤多少点来描述⼀幅图像,采样结果质量的⾼低就是⽤前⾯所说的图像分辨率来衡量。简单来讲,对⼆维空间上连续的图像在⽔平和垂直⽅向上等间距地分割成矩形⽹状结构,所形成的微⼩⽅格称为像素点。⼀副图像就被采样成有限个像素点构成的集合。例如:⼀副0*480分辨率的图像,表⽰这幅图像是由0*480=307200个像素点组成。2.量化

量化是指要使⽤多⼤范围的数值来表⽰图像采样之后的每⼀个点。量化的结果是图像能够容纳的颜⾊总数,它反映了采样的质量。

针对数字图像⽽⾔:

采样决定了图像的空间分辨率,换句话说,空间分辨率是图像中可分辨的最⼩细节。量化决定了图像的灰度级,即指在灰度级别中可分辨的最⼩变化。数字图像处理(第三次课)

调⽤图像格式转换函数实现彩⾊图像、灰度图像、⼆值图像、索引图像之间的转换。图像的类型转换:

对于索引图像进⾏滤波时,必须把它转换为RGB图像,否则对图像的下标进⾏滤波,得到的结果是毫⽆意义的;

2.⽤MATLAB完成灰度图像直⽅图统计代码设计。

6

71011

12131415161718192021222324252627282930

title('lady-lenna');if isrgb(a);

b=rgb2gray(a);%RGB转换为灰度图像end

subplot(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)==k

e(k+1)=e(k+1)+1;%灰度值相同的进⾏累加endend

endend

subplot(2,2,4);

bar(e);%画图像的灰度直⽅图title('灰度直⽅图');c=imrotate(a,20);%图像的旋转subplot(2,2,3);imshow(c);

数字图像处理(第四次课)

编写matlab函数,实现在医学图像中数字减影⾎管造影。即实现两幅图像的差值图像。

1

23

4567实验代码

I=imread('F:\\图像处理\\1.jpg');%原始图像imshow(I);BK=imread('F:\\图像处理\\2.jpg');%背景figure;imshow(BK);

Ip=imsubtract(I,BK);%图像减背景figure;imshow(Ip,[])图像剪切:

任意选择⼀幅图⽚,实现图像的镜像。

其实就是⼀个函数

imcrop()的使⽤⽽已。123456710close all;clear all;clc;

img=imread('F:\\图像处理\\3.jpg');imshow(img);

imgn=imcrop();%这⾥把要裁剪的图像框出来figure;

imshow(imgn)%显⽰裁剪的图像实现图像的镜像:

1

2 3 4 5 6 7 8 910111213141516171819

20 实验代码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.384

1 2 3 4 5 6 7 8 9

1011121314151617181920212223242526272829303132333435363738394041 clcclear all

prob0=[.174.088.086.08.068.058.062.384]; zero0=zeros(1,8);for i=1:8

if i==1

zero0(1)=prob0(1);else

zero0(1,i)=zero0(1,i-1)+prob0(1,i);endendfor i=1:8if i==1

zero0(1)=prob0(1);else

zero0(1,i)=zero0(1,i-1)+prob0(1,i);endend

zero1=zeros(1,8);for i=1:8for j=0:7

a=abs(zero0(i)-j/7);if a<1/14

zero1(j+1)=zero1(j+1)+prob0(i);endendend

b=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 9101112131415

16 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算⼦分析1718

19202122232425262728293031323334

BW8=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('椒盐噪声后梯度算⼦分析')

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务