matlab图像处理各种程序代码

上传人:s9****2 文档编号:564608755 上传时间:2022-12-15 格式:DOC 页数:12 大小:65.50KB
返回 下载 相关 举报
matlab图像处理各种程序代码_第1页
第1页 / 共12页
matlab图像处理各种程序代码_第2页
第2页 / 共12页
matlab图像处理各种程序代码_第3页
第3页 / 共12页
matlab图像处理各种程序代码_第4页
第4页 / 共12页
matlab图像处理各种程序代码_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《matlab图像处理各种程序代码》由会员分享,可在线阅读,更多相关《matlab图像处理各种程序代码(12页珍藏版)》请在金锄头文库上搜索。

1、图像变换(傅立叶变换), 图像增强, 边缘检测, 滤波, 图像压缩等.实验工具:MATLAB软件课程设计时间:2008年12月实验部分1. 图像变换程序代码及说明clear allN=100;f=zeros(50,50); %产生一个50*50的全0数组f(15:35,23:28)=1;%定义图像数组,从15行到35行,23列到28列附值为1,为白色,其他区域为黑色figure(1) %创建窗口的图形对象,句柄为1imshow(f,notruesize) %显示图像fF=fft2(f,N,N); %在二维傅立叶变换前把f截断或者添加0,使其成为N*N的数组F2=fftshift(abs(F);

2、 %把傅立叶变换的零频率部分移到频谱的中间figure(2)x=1:N;y=1:N; %定义x和y的范围mesh(x,y,F2(x,y);colormap(gray);colorbar%绘制立体网状图,将图形对象的色度改为灰度图像,colorbar给坐标轴添加色彩条%构建一个类似于figure(1)的矩形函数N=200;f=zeros(100,100);f(30:70,45:55)=1;%定义图像数组,从30行到70行,45列到55列附值为1,为白色,其他区域为黑色imshow(f,notruesize);%然后对f进行二维快速傅立叶变换:以下列出你自己编写的代码N=200;f=zeros(1

3、00,100);f(30:70,45:55)=1;imshow(f,notruesize);title(原始图像);F=fft2(f,N,N); %对图像f进行二维快速傅立叶变换grid on %打开网格线axis on %打开坐标轴imshow(F,-1,5,notruesize); %显示傅立叶变换后的图像,图像数据的值域为-1,5x=1:N;y=1:N;title(二维快速傅立叶变换后的图像);mesh(abs(F); %绘制F的频谱图title(傅立叶变换后的频谱图);%然后对上述二维快速傅立叶变换提高分辨率: 要提高二维快速傅立叶变换的分辨率,在采样率一定的情况下,增大采样点数N即可

4、。对应的频谱图见测试结果。N=300;f=zeros(100,100);f(30:70,45:55)=1;figure(1)imshow(f,notruesize);title(原始图像);F=fft2(f,N,N);axis onfigure(2)imshow(F,-1,5,notruesize);title(二维快速傅立叶变换后的图像);x=1:N;y=1:N;figure(3)mesh(abs(F);title(傅立叶变换后的频谱图);N=400;f=zeros(100,100);f(30:70,45:55)=1;figure(1)imshow(f,notruesize);title(原

5、始图像);F=fft2(f,N,N);axis onfigure(2)imshow(F,-1,5,notruesize);title(二维快速傅立叶变换后的图像);x=1:N;y=1:N;figure(3)mesh(abs(F);title(傅立叶变换后的频谱图);系数移动(使用函数fftshift) N=200;f=zeros(100,100);f(30:70,45:55)=1;figure(1)imshow(f,notruesize);title(原始图像);F=fft2(f,N,N);axis onfigure(2)imshow(F,-1,5,notruesize);title(二维快速

6、傅立叶变换后的图像);x=1:N;y=1:N;figure(3)mesh(fftshift(abs(F);%把零频率部分移到频谱的中间title(傅立叶变换后的频谱图);%滤波器频率响应x=1:N;y=1:N;mesh(x,y,F2(x,y);colormap(gray);colorbar%绘制立体网状图,将图形对象的色度改为灰度图像,colorbar给坐标轴添加色彩条测试结果图:1对f进行二维快速傅立叶变换(请自己运行查看) 2对上述二维快速傅立叶变换提高分辨率N=300时: N=400时:N=800时: N=1000时:(请自己运行查看)从傅立叶变换的频谱图中可以看出,提高分辨率以后,其边

7、缘更加平滑,锯齿状明显减弱。但其傅立叶变换后的图像没有明显改变。3DC系数移动其系数移动以后,频谱分量都集中到了频谱的中间。4滤波器频率响应(请自己运行查看)2. 图像增强图像增强是指按特定的需要突出一幅图像中的某些信息,同时,消弱或去除某些不需要的信息的处理方法。其主要目的是使处理后的图像对某些特定的应用比原来的图像更加有效。图像增强技术主要包含直方图修改处理、图像平滑化处理、图像尖锐化处理、和彩色处理技术等。图像增强有图像对比度增强、亮度增强,轮廓增强等等。下面利用直方图统计算法对灰度图像进行增强:程序代码:I=imread(cameraman.tif);subplot(121)imsho

8、w(I);title(原始图像);subplot(122)imhist(I,64) %绘制图像的直方图,n=64为灰度图像灰度级,若I为灰度图像,默认n=256;若I为二值图像,默认n=2。title(图像的直方图);(请自己运行查看)n=256时:(请自己运行查看)下面利用直方图均衡化增强图像的对比度:I=imread(cameraman.tif);J=histeq(I); %将灰度图像转换成具有64(默认)个离散灰度级的灰度图像imshow(I)title(原始图像)figure,imshow(J)title(直方图均衡化后的图像)figure(1)subplot(121);imhist(

9、I,64)title(原始图像的直方图)subplot(122);imhist(J,64)title(均衡化的直方图) (请自己运行查看)分析:从上图中可以看出,用直方图均衡化后,图像的直方图的灰度间隔被拉大了,均衡化的图像的一些细节显示了出来,这有利于图像的分析和识别。直方图均衡化就是通过变换函数histeq将原图的直方图调整为具有“平坦”倾向的直方图,然后用均衡直方图校正图像。下面利用直方图规定化对图像进行增强:I=imread(cameraman.tif);figure,imshow(I);title(原始图像);hgram=50:2:250; %规定化函数J=histeq(I,hgra

10、m);figure,imshow(J);title(直方图规定化后的图像);figure,imhist(I,64);title(原始图像的直方图);figure,imhist(J,64);title(直方图规定化后的直方图);运行结果:(请自己运行查看)变换灰度间隔后的图像和直方图:hgram=50:1:250; hgram=50:5:250;3. 图像重建图像重建的最典型的应用是医学上的计算机断层摄影技术(CT技术)。它用于人体头部、腹部等内部器官的无损伤诊断,其基本方法就是根据人体截面投影,经过计算机处理来重建截面图像。在人体中把需要扫描的部分取出一定厚度的断层面,再把断层面分成许多小的方

11、块。当一束较窄的射线通过每个方块后强度就有一定程度的衰减,衰减的量由此方块的分子构成和组织密度决定。如果通过各种角度重复上述过程以获得一系列强度分布曲线,就有可能从这些数据中计算每一方块的衰减量。这样就能够重建断层或三维图像。目前提出的图像重建方法有以下五种:(1)联立方程法(也称矩阵法);(2)逆投影法;(3)付立叶变换法;(4)滤波逆投影法(也称卷积法);(5)逐次逼近法。滤波逆投影法是当前用得较多的一种图像重建方法,在当代射线CT系统中几乎都用这种方法构成系统。它的特点是精度高,能快速实现。在图像处理的工具箱中,MATLAB提供了一个计算图像沿着指定方向上的投影的函数radon函数。ir

12、adon函数可以实现radon逆变换,radon逆变换通常应用于X线断层摄影术中,可以从投影数据中重构图像。下面利用radon函数和iradon函数计算图像的投影并从投影中重建图像,将Shepp-Logan的大脑图作为测试图。函数radon和函数iradon的调用格式:R,xp=radon(I,theta) 计算图像I在theta向量所指定的方向上的radon变换,I表示待处理的图像,theta表示radon变换的方向角度,可以是标量或向量值,返回值 R的每一列对应图像I在theta某一角度的radon变换值,xp向量表示沿着x轴对应的坐标值。IR=iradon(R,theta) 利用R各列中

13、投影值来构造图像I的近似值。投影数越多,获得的图像越接近原始图像,角度theta必须是固定增量的均匀向量。程序代码:P=phantom(256); %用phantom函数产生Sheep-Logan的大脑图,n为图像p中的行列数,默认为256imshow(P)title(原始图像)%以下为三种不同角度的投影模式theta1=0:10:170;R1,xp=radon(P,theta1); %存在18个角度投影theta2=0:5:175;R2,xp=radon(P,theta2); %存在36个角度投影theta3=0:2:178;R3,xp=radon(P,theta3); %存在90个角度投影figure,imagesc(theta3,xp,R3);colormap(hot);colorbar;%显示图像Sheep-Logan的radon变换title(经radon变换后的图像)xlabel(theta);ylabel(xprime); %定义坐标轴%用三种情况的逆radon变换来重建图像I1=iradon(R1,10);I2=iradon(R2,5);I3=iradon(R3,2);figure,imshow(I1)title(角度增值为10时的iradon变换图像)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号