版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、图片像素的降低与恢复I=imread('2.jpg');%读取图片g=rgb2gray(I); %彩色图像灰度化figure;imshow(I);%显示原图片figure;imshow(g);%显示灰度值图片 %降低图像分辨率g_down_1=g(1:2:end,1:2:end);%512g_down_2=g_down_1(1:2:end,1:2:end);%256g_down_3=g_down_2(1:2:end,1:2:end);%128g_down_4=g_down_3(1:2:end,1:2:end);%64g_down_5=g_down_4(1:2:end,1:2:e
2、nd);%32figure;imshow(g_down_1);%显示figure;imshow(g_down_2);%显示figure;imshow(g_down_3);%显示figure;imshow(g_down_4);%显示figure;imshow(g_down_5);%显示%把降低分辨率的图像恢复原大小G_up_5_near=imresize(g_down_3,8,'nearest');%最近邻法放大G_up_5_bil=imresize(g_down_5,32,'bilinear');%双线性插值法放大G_up_5_bic=imresize(g_do
3、wn_5,32,'bicubic');%三次内插法放大figure;imshow(G_up_5_near);%显示figure;imshow(G_up_5_bil);%显示figure;imshow(G_up_5_bic);%显示图像的四则运算和减法运算clear;clc;%清空变量及工作区I=imread('11.jpg');%读取图片I=rgb2gray(I);%彩色图像灰度化I2=imread('22.jpg');%读取图片I2=rgb2gray(I2);%彩色图像灰度化K=imlincomb(0.6,I,0.4,I2);%计算两幅图像的线
4、性组合K=histeq(K);%进行直方图均衡化imshow(K); figure;I1=imread('1.jpg');I2=imread('2.jpg');I=I1-I2;%图像相减imshow(I);histeq(X)函数实现直方图均衡。因为此函数只能对灰度图像进行直方图均衡。故应先将彩图转为灰度图像位图显示clear;clc;I=imread('aerial.tif');I=double(I);G_7=bitand(I,128);%求灰度值第七位I_7=im2uint8(mat2gray(G_7);%转换为无符号八位整型figure;im
5、show(I_7);%显示第七位位图 G_6=bitand(I,64);%求灰度值第6位I_6=im2uint8(mat2gray(G_6);%转换为无符号八位整型figure;imshow(I_6);%显示第6位位图 G_5=bitand(I,32);I_5=im2uint8(mat2gray(G_5);figure;imshow(I_5); G_4=bitand(I,16);I_4=im2uint8(mat2gray(G_4);figure;imshow(I_4); G_3=bitand(I,8);I_3=im2uint8(mat2gray(G_3);figure;imshow(I_3);
6、 G_2=bitand(I,4);I_2=im2uint8(mat2gray(G_2);figure;imshow(I_2); G_1=bitand(I,2);I_1=im2uint8(mat2gray(G_1);figure;imshow(I_1); G_0=bitand(I,1);I_0=im2uint8(mat2gray(G_0);figure;imshow(I_0); I_restore=G_7+G_6+G_5+G_4+G_3+G_2+G_1+G_0;%读取重新储存的图片figure;imshow(uint8(I_restore);%显示骨骼图的显示%读取图像 I=imread(
7、9;Fig0343(a)(skeleton_orig).tif'); %显示a图像 A=im2double(I); subplot(2,4,1); imshow(A); title('(a)全身骨骼扫描图像');%显示b图像 subplot(2,4,2); A=double(A); w1=fspecial('laplacian',0); B=imfilter(A,w1,'corr','replicate');imshow(B); %得到拉普拉斯变换后的图像 title('(b)经过拉普拉斯操作后的结果');
8、 %显示c图像subplot(2,4,3); C=A+B; %得到A+B的结果 imshow(C); title('(c)图a加图b得到的锐化图像'); %显示d图像 subplot(2,4,4); w1=fspecial('sobel'); %得到水平sobel模板 w2=w1' %转置得到竖直sobel模板G1=imfilter(A,w1); %水平sobel梯度 G2=imfilter(A,w2); %竖直sobel梯度D=abs(G1)+abs(G2); %sobel梯度imshow(D); title('(d)图a经sobel梯度处理后
9、的结果'); %显示e图像 subplot(2,4,5); e=fspecial('average',5); E=imfilter(D,e,'corr','replicate'); imshow(E); title('(e)使用5*5均值滤波器平滑后的sobel图像'); %显示f图像 subplot(2,4,6);C=im2double(C); E=im2double(E); F=C.*E; imshow(F); title('(f)图c和图e相乘形成的掩蔽图像'); %显示g图像subplot(2,4,
10、7); G=abs(A)+abs(F); imshow(G); title('(g)由图a和图f求和得到的锐化后的图像'); %显示h图像 subplot(2,4,8); imshow(imadjust(G,0.5); title('(h)对图g应用幂律变换得到的最终结果');灰度直方图操作clear;clc;I=imread('moon.tif');figure;imshow(I);figure;imhist(I); %显示灰度直方图h=imhist(I,256); %长条图显示,宽度为1, figure;bar(h); h_scale=imh
11、ist(I,25);x=linspace(0,255,25);%创建向量figure;bar(x,h_scale); %长条图显示,宽度为25 I_equ=histeq(I,256); %直方图均衡化figure;imhist(I_equ);figure;imshow(I_equ);figure;bar(imhist(I_equ);图像锐化 梯度算子的应用clear;clc;f=imread('building.tif');f=im2double(f);w1=fspecial('sobel');%得到水平sobel模板w2=w1' %转置得到竖直sobe
12、l模板g1=imfilter(f,w1,'replicate'); %横向梯度算子结果g2=imfilter(f,w2,'replicate'); %纵向梯度算子结果g=abs(g1)+abs(g2);%sobel梯度imshow(f);figure;imshow(g1);figure;imshow(g2);figure;imshow(g);图像锐化 拉普拉斯算子的引用clear;clc;f=imread('moon.tif');w4=fspecial('laplacian',0);%生成拉普拉斯滤波器w8=1 1 1;1 -8
13、1;1 1 1;f=im2double(f);g4=f-imfilter(f,w4,'replicate');%g4=f-imfilter(f,w4,'symmetric');g8=f-imfilter(f,w8,'replicate');%g8=f-imfilter(f,w8,'symmetric');A,B=find(g4<0);%找出矩阵中小于零元素所在行和列,并存在A,B中for i=1:length(A)%从1到length(A)循环 g4(A(i,1),B(i,1)=0;%令这些元素为0 endC,D=find(
14、g4>1);%找出矩阵中大于一元素所在行和列,并存在c,d中for i=1:length(C) %从1到length(C)循环 g4(C(i,1),D(i,1)=1;%令这些元素为1end figure;imshow(f);%g4=im2uint8(mat2gray(g4);%g8=im2uint8(mat2gray(g8);figure;imshow(imfilter(f,w4,'replicate')figure;imshow(g4);figure;imshow(imfilter(f,w8,'replicate')figure;imshow(g8);
15、平滑空间滤波器clear;clc;I=imread('pattern.tif');%读取图像imshow(I);figure;%显示原图h=fspecial('average',14 14);%产生均值滤波器模板g=imfilter(I,h,'replicate');%滤波imshow(g); %阈值分割I=imread('galaxy.tif');h=fspecial('average',15 15);%产生均值滤波器模板g=imfilter(I,h,'replicate');%滤波level =
16、 graythresh(g);%通过计算获得输入图像的阈值BW = im2bw(g,level);%通过阈值变换法把灰度图像转换成二值图像imshow(BW); %中值滤波I=imread('imnoise.tif');g=medfilt2(I,3 3);%窗口大小为3×3的中值滤波%g=medfilt2(I,3 3,'symmetric');imshow(g); %顺序滤波A=imread('imnoise.tif');B=ordfilt2(A,15,true(7),'symmetric');%图像作顺序统计滤波fig
17、ure;imshow(A);figure;imshow(B)图像增强的三种方法% inverse transformationI=imread('breast.tif');g=im2uint8(mat2gray(I);%图像数据类型转换为无符号八位整型。g_inver=255-g;%图像反转figure;imshow(I);figure;imshow(g_inver); %log transformI=imread('fourier.tif');g=im2uint8(mat2gray(log(1+double(I);%对图像进行对数变换figure;imshow
18、(I);figure;imshow(g); % power transform moon.tif aerial.tifI=imread('aerial.tif');g=im2uint8(mat2gray(double(I).(2);%对图像进行幂律变换%g=255-I;figure;imshow(I);figure;imshow(g);理想低通滤波器f=imread('dynamic_range.tif'); 索引形式读入imshow(f); 显示图像title('Ôͼ');f=im2double(f)
19、; 按比例的将其缩放至double类型F=fftshift(fft2(f); 正半轴部分和负半轴部分的图像分别关于各自的中心对称M=size(F,1); 表示维数的第一项N=size(F,2); 表示维数的第二项u=1:M;u=1,2,3,4,Mv=1:N; v=1,2,3,4,NV,U=meshgrid(v,u); 产生两个矩阵,第一个矩阵是由v作为行向量组成,第二个向量由u作为列向量组成D=sqrt(U-(floor(M/2)+1).2+(V-(floor(N/2)+1).2); 计算公式H=zeros(M,N); 产生一个mxn的全零矩阵H(D<=235)=1; 令D<=23
20、5在范围内的为1G=F.*H; 进行卷积G_inv=ifft2(ifftshift(G);进行图像二维离散快速傅里叶变换figure; 建立图形imshow(real(G_inv); 显示图像title('Â˲¨ºó');alpha=sum(abs(F(D<=5).2)./sum(abs(F(:).2) 计算?巴特沃斯低通滤波器f=imread('pattern.tif'); 索引形式读入imshow(f); 显示图像%title('Ôͼ
21、9;);f=im2double(f); 按比例的将其缩放至double类型F=fftshift(fft2(f); 正半轴部分和负半轴部分的图像分别关于各自的中心对称M=size(F,1); 表示维数的第一项N=size(F,2); 表示维数的第二项u=1:M;u=1,2,3,4,Mv=1:N; v=1,2,3,4,NV,U=meshgrid(v,u); 产生两个矩阵,第一个矩阵是由v作为行向量组成,第二个向量由u作为列向量组成D=sqrt(U-(floor(M/2)+1).2+(V-(floor(N/2)+1).2); 计算公式?H=zeros(M,N); 产生一个mxn的全零矩阵D0=235
22、;n=2; %2阶H=1./(1+(D./D0).(2*n);公式?G=F.*H; 进行卷积?G_inv=ifft2(ifftshift(G); 进行图像二维离散快速傅里叶变换figure; 建立图形imshow(real(G_inv); 显示图像%title('Â˲¨ºó')高斯低通滤波器clear;clc;f=imread('broken-text.tif'); 索引形式读入imshow(f); 显示图像%title('Ôͼ');f=im
23、2double(f); 按比例的将其缩放至double类型F=fftshift(fft2(f); 正半轴部分和负半轴部分的图像分别关于各自的中心对称M=size(F,1); 表示维数的第一项N=size(F,2); 表示维数的第二项u=1:M;u=1,2,3,4,Mv=1:N; v=1,2,3,4,N V,U=meshgrid(v,u); 产生两个矩阵,第一个矩阵是由v作为行向量组成,第二个向量由u作为列向量组成D=sqrt(U-(floor(M/2)+1).2+(V-(floor(N/2)+1).2); 计算公式?H=zeros(M,N); 产生一个mxn的全零矩阵D0=80;H=exp(-
24、D.2./(2*D0.2);公式G=F.*H; G_inv=ifft2(ifftshift(G); 进行图像二维离散快速傅里叶变换figure;imshow(real(G_inv);%title('Â˲¨ºó') 高斯高通滤波器(同上)clear;clc;f=imread('chest_xray.tif');imshow(f);%title('Ôͼ');f=im2double(f);F=fftshift(fft2(f);M=size(F,1)
25、;N=size(F,2);u=1:M;v=1:N;V,U=meshgrid(v,u);D=sqrt(U-(floor(M/2)+1).2+(V-(floor(N/2)+1).2); L=zeros(M,N);D0=2; 截止频率=2L=exp(-D.2./(2*D0.2);H=1-L; 低通变成高通 G=F.*H; G_inv=ifft2(ifftshift(G);figure;imshow(real(G_inv),);%title('Â˲¨ºó') 巴特沃斯高通滤波器(同上)f=imread('thumb_
26、print.tif');imshow(f);%title('Ôͼ');f=im2double(f);F=fftshift(fft2(f);M=size(F,1);N=size(F,2);u=1:M;v=1:N;V,U=meshgrid(v,u);D=sqrt(U-(floor(M/2)+1).2+(V-(floor(N/2)+1).2); L=zeros(M,N);D0=25;n=4; 截止频率=25 ,设为4阶L=1./(1+(D./D0).(2*n);H=1-L; 低通变成高通 G=F.*H; G_inv=real(iff
27、t2(ifftshift(G);figure;imshow(G_inv);%title('Â˲¨ºó')I_thresh=G_inv; %指纹处理A,B=find(I_thresh<0); 找出矩阵中I_thresh<0元素所在行和列,并存在A,B中C,D=find(I_thresh>=0); 找出矩阵中I_thresh>=0元素所在行和列,并存在C,D中for i=1:length(A) 取i分别为在1到length(A)的每一个数 I_thresh(A(i,1),B(i,1)=0;令这些元
28、素为0end for i=1:length(C) (同上) I_thresh(C(i,1),D(i,1)=1; 令这些元素为1endfigure;imshow(I_thresh);clear;clc;I=zeros(512,512); 产生一个512x512的全零矩阵I(226:286,240:266)=1;imshow(I);F=fft2(I);F_no_shift=abs(F);F_shift=abs(fftshift(F);% G_no_shift=log(1+F_no_shift);G_shift=log(1+F_shift);%figure;imshow(F_no_shift,);%
29、 figure;imshow(G_no_shift,);figure;imshow(F_shift,);figure;imshow(G_shift,);% % %图像旋转I2=imrotate(I,45,'bilinear','crop');figure;imshow(I2);F2=fft2(I2);F2_shift=abs(fftshift(F2);G2_shift=log(1+F2_shift);figure;imshow(F2_shift,);figure;imshow(G2_shift,);振铃效应f=zeros(512,512);f(128,128)=
30、255;f(128,384)=255;f(384,128)=255;f(384,384)=255;f(256,256)=255;figure;imshow(f); f=im2double(f);F=fftshift(fft2(f);M=size(F,1);N=size(F,2);u=1:M;v=1:N;V,U=meshgrid(v,u);D=sqrt(U-(floor(M/2)+1).2+(V-(floor(N/2)+1).2); H=zeros(M,N);H(D<=5)=1;G=F.*H;G_inv=ifft2(ifftshift(G);figure;imshow(real(G_inv
31、),);拉普拉斯滤波器clear;clc;f=imread('moon.tif');imshow(f);%title('moon');f=im2double(f);F=fftshift(fft2(f);M=size(F,1);N=size(F,2);u=1:M;v=1:N;V,U=meshgrid(v,u);H=zeros(M,N);H=-4*pi2*(U-(floor(M/2)+1).2+(V-(floor(N/2)+1).2); G=F.*H; G1=real(ifft2(ifftshift(G);figure;imshow(G1,);%线性映射0-255G
32、2=G1-min(G1(:);G2=G2/max(G2(:);G3=im2uint8(G2);%figure;imshow(G3)%G3ÏßÐÔÓ³Éä µÈͬÓÚimshow£¨G1,);%title('±ê¶¨ºóµÄͼÏñ');G2=f-G2;figure;imshow(G2,);%title
33、('ÀÆÕÀ˹Ëã×ÓÔöǿͼÏñ'); %空间拉普拉斯算子w4=fspecial('laplacian',0);sp=imfilter(f,w4);g4=f-sp;figure;imshow(sp,);figure;imshow(g4,);第六章edge_functionclear;clc; %清空命令窗口的所有输入和输出I=imread('1.
34、jpg'); %读入wirebond_mask.tif图像 BW_sobel=edge(I,'sobel'); % sobel图像边缘提取imshow(BW_sobel); %显示图像BW_prewitt=edge(I,'prewitt'); %prewitt图像边缘提取figure;imshow(BW_prewitt); %产生新的窗口,显示图像BW_log=edge(I,'log'); %用log算子进行边缘检测figure;imshow(BW_log); %产生新的窗口,显示图像BW_canny th=edge(I,'can
35、ny'); %canny算子检测法检测图像边缘figure;imshow(BW_canny); %产生新的窗口,显示图像 hough_transclear;clc; %清空命令窗口的所有输入输出I=zeros(101,101); % zeros就是生成一个全0的矩阵I(1,1)=1;I(101,1)=1; %第1行第1列,元素为1I(1,101)=1;I(101,101)=1;I(51,51)=1;H,theta,rho=hough(I); subplot(1,2,1);imshow(I);subplot(1,2,2);imshow(imadjust(mat2gray(H),'
36、XData',theta,'YData',rho, . 'InitialMagnification','fit');line_detectionf=imread('1.jpg');f=im2double(f); %把灰度图像f的数据类型转换成转换成双精度浮点类型,返回imshow(f);w=1 1 1;1 -8 1;1 1 1 ; g=imfilter(f,w,'replicate'); % imfilter 根据指定操作进行多维滤波figure;imshow(g,)figure,imshow(abs(g)
37、,);g(g<0)=0;figure;imshow(g,);T=0.5*max(g(:);m=g>=T;figure;imshow(m,);line_direction_detectionf=imread('wirebond_mask.tif');f=im2double(f);imshow(f);w_h=-1 -1 -1;2 2 2;-1 -1 -1;w_v=w_h'w_45=-1 -1 2;-1 2 -1;2 -1 -1;w_n45=2 -1 -1;-1 2 -1;-1 -1 2;g_h=imfilter(f,w_h,'replicate'
38、);g_v=imfilter(f,w_v,'replicate');g_45=imfilter(f,w_45,'replicate');g_n45=imfilter(f,w_n45,'replicate');% figure;imshow(g_h,)% figure;imshow(g_v,)% figure;imshow(g_45,)% figure;imshow(g_n45,) T_h=0.5*max(g_h(:);m_h=g_h>=T_h;figure;imshow(m_h,); T_v=0.5*max(g_v(:);m_v=g_v&g
39、t;=T_v;figure;imshow(m_v,); T_45=0.5*max(g_45(:);m_45=g_45>=T_45;figure;imshow(m_45,); T_n45=0.5*max(g_n45(:);m_n45=g_n45>=T_n45;figure;imshow(m_n45,); smooth_line_detectionclear;clc;f=imread('building_original.tif');f=im2double(f);imshow(f);h=fspecial('average',5 5);f=imfilter
40、(f,h,'replicate');wh=fspecial('sobel');wv=wh'gh=abs(imfilter(f,wh,'replicate');gv=abs(imfilter(f,wv,'replicate');figure;imshow(gh);figure;imshow(gv);g_all=gh+gv; Th=0.5*max(gh(:);mh=gh>=Th;figure,imshow(mh); Tv=0.5*max(gv(:);mv=gv>=Tv;figure,imshow(mv); T_al
41、l=0.3*max(g_all(:);m_all=g_all>=T_all;figure,imshow(m_all); spot_detectionf=imread('turbine_blade_black_dot.tif');f=im2double(f);imshow(f);w=1 1 1;1 -8 1;1 1 1 ;g=imfilter(f,w,'replicate');figure;imshow(g,)T=0.9*max(g(:);m=g>=T;figure,imshow(m);threshold_segI=imread('polyme
42、rsomes.tif');T=graythresh(I); % graythresh函数功能:使用最大类间方差法找到图片的一个合适的阈值(threshold)。在使用im2bw函数将灰度图像转换为二值图像时,需要设定一个阈值,这个函数可以帮助我们获得一个合适的阈值。imshow(I);g=I>=T*255;figure,imshow(g);同态滤波器clear;clcf=imread('dynamic_range.tif'); figure;imshow(f);f=im2double(f); F=fftshift(fft2(log(f+eps);M=size(F,
43、1);N=size(F,2);u=1:M;v=1:N;V,U=meshgrid(v,u); % meshgrid用于生成网格采样点的函数。D=sqrt(U-(floor(M/2)+1).2+(V-(floor(N/2)+1).2);H=zeros(M,N);D0=2;c=1.5;%1.5;H=1.5*(1-exp(-c*D.2./D0.2)+0.5; G=F.*H;G1=ifft2(ifftshift(G);g=real(exp(G1); %real, 复数的实部数值% g=mat2gray(g); %mat2gray 实现图像矩阵的归一化操作。 所谓"归一化&q
44、uot;就是使矩阵的每个元素的值都在0和1之间。该函数在数字图像处理中经常用到。g_min=min(g(:);g_cor=g-g_min;g_cor=g_cor./max(g_cor(:);%g_cor=histeq(g_cor); %直方图均衡化figure;imshow(g_cor,);% title('同态滤波图');%直方图均衡化¯figure;imshow(histeq(f)%幂次变换g_gama=im2uint8(mat2gray(f).2); % im2uint8把图像 数据类型转换为无符号八位整型。如果输入图像是无符号八位整型的,返回的图像和
45、源图像相同。如果 源图像不是无符号八位整型的,该函数将返回和源图像相同但 数据类型为uint8的图像(必要时对图像进行调整)。figure;imshow(g_gama,);a=8,1,6;3,5,7;4,9,2;b=1,1,1;1,1,1;1,1,1;c1=conv2(a,b); %conv2二维卷积运算函数a(5,5)=0;b(5,5)=0;%扩展矩阵,因为ab卷积结果是5*5c2=ifft2(fft2(a).*fft2(b);function:在MATLAB中不是它的自带函数就可以完成所有功能,更多的时候是自己编写程序来实现我们要的功能,这时就要用到此命令,调用格式为:function *( ) 括号外面为函数名称,括号中为函
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年预制菜消费者体验创新报告
- 2026年汽车施工顾问服务合同
- 2025年绵阳市安州区网格员招聘考试真题
- 2026年数据保密协议合同三篇
- 港口给排水工程监理实施细则
- 2026年校园安全教育工作计划校园安全教育工作方案
- 领航未来:船舶创新之路-打造全球领先的船舶制造企业
- 精神科护理风险评估与管理实践指南
- 神经外科:未来展望-面向未来探索神经外科创新
- 排水管网雨水收集与利用技术方案
- 十期牛黄清心丸
- 缠论-简单就是美
- JT-T-798-2019路用废胎胶粉橡胶沥青
- 手术室应对特殊感染手术的应急预案
- 2.1科学探究感应电流的方向课件-高二物理(2019选择性)
- (正式版)JBT 14793-2024 内燃机质量评价规范
- GB/T 42793-2024航空用铝合金板材通用技术规范
- 2022届上海高考语文调研试测卷详解(有《畏斋记》“《江表传》曰…”译文)
- 乘用车行李移动对乘员伤害的安全要求编辑说明
- 乡镇宴席酒推广方案
- 徐州网约车考试试题及答案
评论
0/150
提交评论