MATLAB程序大全

上传人:壹****1 文档编号:547654786 上传时间:2023-05-12 格式:DOCX 页数:61 大小:1.31MB
返回 下载 相关 举报
MATLAB程序大全_第1页
第1页 / 共61页
MATLAB程序大全_第2页
第2页 / 共61页
MATLAB程序大全_第3页
第3页 / 共61页
MATLAB程序大全_第4页
第4页 / 共61页
MATLAB程序大全_第5页
第5页 / 共61页
点击查看更多>>
资源描述

《MATLAB程序大全》由会员分享,可在线阅读,更多相关《MATLAB程序大全(61页珍藏版)》请在金锄头文库上搜索。

1、MATLAB程序大全1.全景图到穹景图这个程序我最初是用Freelmage写的,这两天改成了 matlab,再不贴上来,我就要忘了。看到一篇文章有这样的变换,挺有意思的,就拿来试了一下,文章点此。全景图到穹顶图变换,通俗的说就是将全景图首尾相接做成一个圆环的样子。先看下面这张图:Panoromicthetamaxi = width phi / 2rfRadialheightj = height theta / thetamaxLinearj = height sin(theta) / sin(thetamax)width2K下面的矩形就是我们要处理的全景图,上面的矩形是变换后的图像。下面图像的

2、底边对应穹顶 图的内圆,顶边对应穹顶图的外圆,当然,反过来也是可以的。程序流程:1 .定义穹顶图内圆和外圆的半径,变换后的像素就填充在这个内外半径的圆环中。2 .遍历穹顶图,当所处理当前像素位于圆环内,则通过极坐标反变换去全景图中寻找相应位置 的像素进行填充。3 .遍历完图像就行了。用的技巧和图像旋转或放大缩小都是类似的。处理结果:原图:结果:matlab代码如下:clear all; close all; clc;iing=imread(tpanjpgt);imshow(img);m,n=size(img);rl=100; %内环半径r2=rl+m;%外环半径Iingn=zeros(2*r2

3、,2*r2);re_m,re_n=size(imgn);for y=l:re_mfor x=l:re_ndis_x=x-re_n/2;dis_y=y-re_m/2;l=sqrt(dis_xA2+dis_yA2);If l=rltheta=O;If vre in/2 g -theta=atan2(dis_jsdis_x);endif y=l & yy=l & xx tabpanel.p 和 tabpanel.m,显然代码用.p 格式进行加密了。2 .建立一个空GUI文件,就起名kong.fig吧。3 .在 kong.fig 上画一个 Static Text,默认的 tag 为 textlo4 .

4、终端运行tabpanel(kongfig,textl);命令,得到如下界面:5.点击add panel就能添加选项卡了,如图:6.选中不同的选项卡,点击edit,就能进入常见的GUI编辑模式:7.编辑完保存下就行了,所有的功能都在kong.m文件中实现。注意,不同选项卡添加的组建 时,tag会有重复,因此需要修改tag名。8.终端输入kong就能得到如下结果:5. structure tensor 结构张量根据结构张量能区分图像的平坦区域、边缘区域与角点区域。 此算法也算是计算机科学最重要的32个算法之一了。链接的文章中此算法名称为 Strukturtensor算法,不过我搜索了一下,Stru

5、kturtensor这个单词好像是德语,翻译 过来就是structure tensor结构张量了。此处所说的张量不是相对论或黎曼几何里的张量,黎曼几何的张量好多论文都叫张量场了。也 不是数学界还没研究明白的对矩阵进行扩展的高阶张量,主要是张量分解。这里的结构张量就 是一个矩阵,一个对图像像素进行组织的数据结构而已。像素组织而成的矩阵如下:E=这个公式太常见了,在harris角点检测中就用到了。其中lx, ly就是原对原图像在x和y 方向求得的偏导。然后求矩阵E的行列式K和迹H。然后根据K和H的关系就能区分图像的区域模式了。模式分以下三类:平坦区域:H=0;边缘区域:H0 & K=0;角点区域:

6、H0 & K0;harris角点检测就用到了第三类判断。当然,在实际应用的时候H和K的值肯定都不会是理想,所以我用的都是近似判断。处理结果如下:原图:平垣区域:边缘区域:角点区域(好像也不全角点,求角点还是harris好了):结构张量行列式与迹的关系:iaoj其中红框为平坦区域,黄框为边缘区域,铝框为角点区域。matlab代码如下:电clear all; close all; clc;img=(loiible(imread(tlenajpg1);m n=size(img);imshow(img9) lx Iy=gradient(img);Ix2=Ix.A2;Iy2=IyZ2;Ixy=Ix.*I

7、y;k=l;lambda=zeros(m*ib2);forl:mfor J=l:n%结构张量%求行列式%求迹%认为是平坦区域%认为是边缘区域%认为是角点区域st=lx2(ij) Ixy(iJ);Ixy(iJ) Iy2(iJ);K=det(st);H=trace(st);%所有的判断都是近似的% if H50 & abs(K)50 & abs(K)0.01*10A(-9) img(ij)=255;endlambda(k9:)=K H;k=k+l;end endfigure;plot(lainbda(:J)Jambda(:92)/.f); ylabel(ttrace,);xlabel(,det,)

8、;figure;iinshow(img9)6. .模糊集图像增强算法有很多变种。不过主要就是以下三步。1 .设计隶属度函数将图像从空间域变换到模糊集域.2 .设计模糊增强算子,在模糊集域对图像进行处理。3 .根据第1步的隶属度函数重新将图像从模糊集域变换到空间域。这和领域处理中的变换反变换不是很像么。我使用的隶属度函数和模糊增强算子在这篇论文里,也算相关算法的经典论文了。处理结果如下:原图:模糊集增强后:matlab代码如下:clear all; close all; clc;iing=(loiible(iinreacl(tlenajpg1);iinshow(iingj)in n=size(img);Fe=l; %控制参数Fd=128;xinax=inax(max(img);u=( 1+(xmax-img)/Fd).A (-Fe);% 空间域变换到模糊域%也可以多次迭代for i=l:m%模糊域增强算子for j=l:nlfu(iJ)0.5u(ij)=2*u(ij”2;elseu(iJ)=l-2*(l-u(iJ)A2;endendendiing=xmax-FcL*(u.A(-l/Fe)-l);% 模糊域变换回空间域figure;imshow(ulnt8(img);7 .随机游走图像随机游走类似布朗运动,就是随机的向各个方向走吧.虽然代码没什么技术含量,不过产生的图像

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

当前位置:首页 > 商业/管理/HR > 营销创新

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