数字图像处理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('椒盐噪声后梯度算子分析')。