实例介绍
1 读取BIP 、BIL、 BSQ文件 2 均值滤波 中值滤波 3 边缘信息提取 4 DFT FFT 5 主成分变换 6 缨帽变换 7 图像分类(K—均值分类、最小距离分类、最大似然分类) 8 大气校正 反射率 地表温度的反演 9 Habib教授课程总结
N=6 for 1=I N img=fopen (D: MATLAB Sample BIP,rb,) bo=fread(img, i-1,uint8); b=fread(img, lines*samples,'uinL8, (N-1) band cov=reshape(b, samples, lines) band cov 2=band Cov: 0/0x0A band uint8=uint&(band cov2); tif - imadjust(band uint8) mkdir(E: MATLAB, tifbands') name=[E: MATLAB \tifbands tif, int2str(i), tif imwrite(tif, name, tif ); %imwrite(A, filename, fmt) lL='波段 subplot(3, 2, 1), imshow ( tif); title(tilt) fclose(img); 3.读取BIL的源代码 clear all clc lines =400 samples=640 N=6: for i=l:N bi-zeros(lines, samples) for j=l: samples img=fopen(D: MATLAB\Sample BIL, 'rb) bb=fread(img, (i-1)*640, uint8) bo=fread(img, IG-1),uint8); bandi linej-fread(img, lines, uint8, 1(N*Samples-1) fclose(img) i( j)=bar band uint8=uint(bi) tif-imadjust(band uint8) mkdir(D: MATLAB, tifbands') name=l'D: MATLAB\tifbands tif, int2str(),tit imwrite til,name, til tit[波段,int2str() subplot(3, 2, 1), imshow(tif) title(tilt end 四、运行结果 波段 淀段4 波段 派段 图1:读取文件的六个波段图 实习2均值/中值滤波、边缘信息提取 、实验目的与原理 各种图像滤波算子可以实现图像的增强,去噪,边缘提取等。图像增强的目 的在于:1.釆用一系列技术改善图像的视觉效果,提高图像的清晰度,2.将图像 转换成一种更适合于人或机器进行分析处理的形式。它不是以图像保真度为原 则,而是通过处理,设法有选择地突出便于人或机器分析某些感兴趣的信息,抑 制一些无用的信息,以提高图像的使用价值。图像增强方法从增強的作用域出发 可分为空间域增强和频率域增强。空间域增强就是直接对图像像素灰度进行操 作;频率域増强是对图像经傅里叶变换后的频谱成分进行操作,然后经傅里叶逆 变换获得所需结果。 图像滤波可分为空间域滤波和频率域滤波,前者通过窗口或卷积核进行,它 参照相邻像素改变单个像素的灰度值。后者对图像进行傅立叶变换,然后对频谱 进行滤波。空间域图像滤波称为平滑和锐化,强调像素与其周围相邻像素的关系 去噪滤波为平滑滤波包括均值滤波和中值滤波。锐化滤波包括罗伯特梯度、索伯 尔梯度、拉普拉斯算法、定向检测,用以提取线状地物和边缘。此实验用 Matlab 采用各种滤波对图像进行了处理,处理结果如下 二、算法描述 1.用 imread读取图像文件,并用size获取图像的大小 2.设计各种滤波算了。 3利用卷积公式对图像的没一个像素进行处理,得到滤波后的图像。 4.用 imshow显示滤波后的图像 三、 Matlab源代码 1.均值滤波源码: clear all img=imread(2. jpg,) Trow, column, band]=size(img) img=double(img; fl=1/9;f2=1/9;fl3=1/9; 21=19;f2=1/9;f23=1/9; f31=1/9;f32=1/9;f33=1/9 imgl-img0(:, 1, ) img0( : ) img0(, column, 1 img2limgl(1, ) img 1(: ) imgI(row,: I filtered=zeros(row, column, band) for ii=1: row for jj=1: column filtered(iii )=f1l*img 2 (i1,11, f12img2(11, 1j+1, ) f13*img2(i1,1j +2, ) f21*img2(i+1j,)+12*img2(i+1.j+1,)十 f23*mg2(+j+2,)+ 31*img2(i+2i;) 门32*ing2(i+2.i+1,)+ f33img2(i计+2j+2;); end filtered 1=uint& (filtered subplot(1,2,1) ashow(ing);itlc图1原始RGB图像) subplot(1,2,2), imshow( filtered 1); title((图2均值滤波后的图像'); imwrite(filtered1, flower filtered mean.jpg) 2中值滤波代码: image=imread(flower. jpg,) Im, n,p=size(image); mage0-double(image); image l=limage0(, 1, image(; ) imageD(, n,: ) image2=limagel(,; imagel(;,: imagel(m, ) clear imagel imagel=zeros(m, n, p) ori=l: m fori=1: n A- image 2 (i: 1+2, j: j+2, B- reshape(A, 33, 3); imagel(i, j, )=median(B) end end imagel=uint8(image1) subplot(1,2,1), dshow( image; c title(图1:原始的RGB图像) subplot(1,2,2), imshow( imagel);tte图2:中值滤波后的图像); 3.边缘提取滤波源代码 clear all img=imread(2.jpg) row, column, band]=size(img) img=double(img); 门11-=1;n2-0;n3=1 f21=1:f22=0;f23=-1; f3|=1:f32=0;f33=-1; ingl=[img(, 1, ) img(: ) img( column, ) img2-[ingl(1, imgI(: ) imgI(row, )1: filtered=zeros(row, column, band) for jj=1: column filtered (ii, jj, )=fl I*img2(11,1j>: f2*img(i1,1j+I, f13*1img2(i1+2,)+… 21*ing2(i+1,j,)+2*ing2(i+1j+1,)+ f23img2(i+1、j+2,)+… f31*img2(i+2,j,)+f32*img2(i+2.ij+1;)+ f33*img2(i计+2j+2,); end filteredl-uint8 (filtered) subplot(1,2,1) imshow(img);itlc图1RGB原图像) subplot(1,2,2), imshow( filtered1); title(图2边缘提取后的图像); imwrite(filtered1, flower filtered edge. jpg,) 四、运行结果 图1原始的RGB图象 图2均佰源波后的裂俊 图1:原始RGB图像 图2:均值滤波后的图像 2中值滤汹后约原像 图2漆液尼的图騫 图3:中值滤波后的图像 图:边缘提取后的图像 实习3傅里叶变换、傅里叶逆变换,及频域滤波 、实验目的 按照信号处理理论,根据滤除的频率特征,滤波冇3种:1.低通滤波。低通滤 波是对频率域的图像通过滤波器H(u,ⅴ)削弱或抑制高频部分而保留低频部分 的滤波方法。由于图像上的噪声主要集中在高频部分,所以低通滤波可以起到压 噪声的作用。同时,由于强调了低频成分,图像会变得比较平滑。2.高通滤波 高通滤波是对频率域的图像通过滤波器来突岀图像的边缘和轮廓,进行图像镋化 的方法。3.带通滤波。仅保留指定频率范围的滤波,范围外的频率被阻止。 将空间域中的图像变换到频率域中进行计算。空间増强技术强调像元位置和 像元之间的关系,但随着考虑的像元数目增多,计算的复杂度增加而且非常耗费 计算运算吋间,特别是当模板越来越大吋,这种现象尤为明显。 频率域增强方法: 1.频率域平滑:保留图像的低频部分而抑制髙频部分 2.频率域锐化:保留图像的高频部分而削弱低频部分。 首先将空间域图像fxy)通过傅立叶变换为频率域图像F(uy),然后选择合适的滤 波器Huυν)对F(u、)的频谱成分进行增强得到图像Gu、,再经过傅立叶逆变换将 G(u变换到空间域,得到增强后的图像g(xy) 根据傅里叶变换的原理,用 Matlab实现对图像的傅里叶变换,再设计各种频 率滤波器,包括理想滤波器、巴特汏斯滤波器、指教滤波器等髙通或低通滤波器, 用这些滤波器对频率图像进行滤波,将得到的滤波后的频率图像经过傅里叶逆变 换后得到想要的图像。本实验,对这些滤波器都进行了设计,处理结果如下图: 算法描述 1读取RGB图像,并获得其某个波段。 2调用ft2对某波段进行傅里叶变换,川 fftshift频移函数,使得图像的低频部分 移动到频谱的中心。 3设置低通高通滤波器,对频谱图像进行滤波处理,去除其高频或低频部分 4.用if对频谱图像进行逆傅里叶变换,得到滤波后的图像。 5.对图像进行归一化,使像素值在0-255之间。 6. imshow显小频谱图像和滤波后的图像。 、 Matlab源代码 1理想低通滤波源代码 clear all a=imread(2. jpg); [X,Y,Z]size(a) al=a(: : 1); bl= fft2(aD) b2-fishil(b1) F-abs(b2): h=zeros(X, Y); cutoff=0.7: threshold=1-cutoff lowx=round(X 2-threshold*X/2) upx=round(X /2+threshold X/2) lowy=round(Y/2-threshold=Y/ 2) upy=round(Y/2threshold*Y/ 2) h(lowx upx, lowy: upy)=1; lowpass=b2. h do=ifft(lowpass ); result=abs(do) result=uint8(result); Fl=loglo(reshape(F, XY,1) F2=uint8(((F1-min(F1)/(max(F1)-min(F1)))*255 ) F3=reshapeF2,X, Y); subplot(1,3,1), imshow(F3), lille(Fig.1傅旦叶频谱) subplot(1,3,2), imshow(h), title('Fig.2珥想低通滤波器); subplot1,3,3), ashow( result) title((Fig.3,理想低通滤波结果); 2.巴特沃斯低通滤波代码: clear all a=imread( 2. jpg); IX,Y, zI-size(a) al-a(:;,1),b1=ft2(a1) b2=fftshift(b1) F=abs(b2 h=∠eros(X,Y); lowpass zeros(X,Y) nl=round(X/2) n2=round(Y/2) dmax=sqrt(n1 2+n2 2) cutoff-0.7; d0=(l-cutoff)*dmax for x=l x or y d=sqrt(x-nl)^2-(y-n2)^2); h(x,y)=1/(1+(dd0^(2*n) owpass(x, y)=b2(x, y). h(x,y) Ip=ifft(lowpass); result=abs(p: result=uint&(result); F1-log10(reshape (F, X*Y, 1)); F2-uint8(((F1- min(F1))(max(F1)-min (F1)*255) F3=reshapeF2,X,Y); subplot(1,3,1), imshow(F3), title(Fig.,傅旦叶频谱); subplot(1,3,2), imshow(h), title(Fig2巴特沃斯低通滤波器); subplot(13,3), ashow( result),te'ig3巴特沃斯低通滤波结果) 3指数低通滤波的主要代码: for x=l: X y=1:Y d=sqr(xn1)^2-(y-n2)^2); h(x,y)=|/(+exp(-(dd0)^(-n); lowpass(x,y)=b2(x, y). h(x,y) 4.指数高通滤波的主要代码: for x=l: X for y=I: Y d=sqrt(x-nl)^2-(y-n2)^2); h(x, y=1/(1+exp(-(d/do)"(n)) lowpass(x, y)=b2(x,y).h(x,y) d 四、运行结果 h1傅里叶掀谱 图1:傅里叶频谱 Fig2低通滤器 「ig3傅叶低诵漓波结果 图2:理想低通滤波器 图3:傅里叶低通滤波结果 ng2高通派波器 Fig3傅里叶高通滤波结果 图4:理想高通滤波器 图5:傅里叶高通滤波结果 Fig2巳沃斯低通滤波器 Fug3巴特斯低迫迥结朱 图6:巴特沃斯低通滤波器 图7:巴特沃斯低通滤波结果 hg2巴特沃圩高通滤波器 Fig3巴特沃斯高通滤)果 图8:巴特沃斯高通滤波器 图9:巴特沃斯高通滤波结果 c2指数高通滤波答 ˉg3指数高通滤结果 WER 图10:指数高通滤波器 图11:指数高通滤波结果 【实例截图】
【核心代码】
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论