随笔分类 -  Matlab练习程序

上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 15 下一页
摘要:生成简单多边形后,有时还需要对多边形各顶点的凹凸性做判断。先计算待处理点与相邻点的两个向量,再计算两向量的叉乘,根据求得结果的正负可以判断凹凸性。结果为负则为凹顶点,为正则为凸顶点。凹顶点用o表示,凸顶点用*表示。结果如下:matlab代码如下:clear all;close all;clc;n=2... 阅读全文
posted @ 2014-10-05 00:06 Dsp Tian 阅读(10251) 评论(4) 推荐(2) 编辑
摘要:简单多边形是指各边不相交的多边形。首先计算出所有顶点中心位置。然后求每个顶点与中心的极角。再对极角进行排序。连接排序后的点就行了。结果如下:matlab代码如下:clear all;close all;clc;n=30;p=rand(n,2);cen=mean(p);ang=atan2(p(:,1)... 阅读全文
posted @ 2014-10-04 21:04 Dsp Tian 阅读(3511) 评论(0) 推荐(0) 编辑
摘要:变换使用的模板必须是单连通的,而且模板中心必须在模板内,如果在模板中打个结或是月牙形,这里的程序就处理不了了。虽然非单连通模板也有办法处理,不过不是这里要讨论的。这里用到的方法和矩形变换为圆那片文章中用的方法几乎一样,变换前后像素按比例缩减,不过在判断弧度和图像边界到模板中心距离时略有不同。变换为圆... 阅读全文
posted @ 2014-10-02 23:02 Dsp Tian 阅读(2253) 评论(0) 推荐(0) 编辑
摘要:十一没什么事干,接着看图像算法。这个球面化算法最初是在ps上的球面化滤镜中看到的,感觉挺有意思,就研究了一下。算法的详细推导可以在这篇博客中找到,我比较懒,只在纸上推了一遍,就不在博客上编辑了。不过这里还是要把逆变换公式写一下。公式如下:其中R为球的半径,x,y为目标图像像素坐标,xx,yy为源图像... 阅读全文
posted @ 2014-10-01 20:11 Dsp Tian 阅读(5106) 评论(0) 推荐(1) 编辑
摘要:三角形两角的角平分线就能确定内切圆。结果如下:matlab代码如下:clear all;close all;clc;p=rand(3,2); %(x,y)v12=(p(2,:)-p(1,:))/norm(p(2,:)-p(1,:)); %一个顶点两边的归一化向量v13=(p(3,:)-p... 阅读全文
posted @ 2014-09-27 11:30 Dsp Tian 阅读(3356) 评论(0) 推荐(0) 编辑
摘要:三角形两边的垂直平分线就能确定外接圆。结果如下:matlab代码如下:clear all;close all;clc;p=rand(3,2); %(x,y)cen1=(p(1,:)+p(2,:))/2; %三角形一条边中点cen2=(p(2,:)+p(3,:))/2; ... 阅读全文
posted @ 2014-09-27 00:33 Dsp Tian 阅读(3894) 评论(0) 推荐(0) 编辑
摘要:很简单的算法,这里是把每对线段都进行比较了。还有一种似乎先通过x和y排序再进行交点判断的,不过那种方法我还没看太明白。这里的方法如下:1.根据线段的端点求两条直线的交点。2.判断直线的交点是否在两条线段上。结果如下:matlab代码如下:clear all;close all;clc;n=20;p=... 阅读全文
posted @ 2014-09-26 22:50 Dsp Tian 阅读(9392) 评论(0) 推荐(1) 编辑
摘要:原始算法是sphere,我这里简化为circle了。Ritter's求最小包围圆为线性算法,因为非常简单,所以应用非常广泛。该算法求出的圆比最优圆大概会大个5%到20%左右,求最优圆应该可以用Bouncing Bubble算法,以后有机会可以尝试一下。Ritter's算法如下:1.从点集中随机选出两... 阅读全文
posted @ 2014-09-24 20:13 Dsp Tian 阅读(6255) 评论(0) 推荐(0) 编辑
摘要:Bresenham画线算图形学中最基础的知识了,可惜我并没有选修过图形学,所有还是有必要熟悉一下。上一篇用到的画线函数应该算是数值微分法,也是我最常用的一种方法,不过这种方法似乎并不是很好。这里的画线方法比上一种方法好。算法原理如下:过各行各列象素中心构造一组虚拟网格线。按直线从起点到终点的顺序计算... 阅读全文
posted @ 2014-09-07 11:50 Dsp Tian 阅读(6051) 评论(0) 推荐(0) 编辑
摘要:我只是感觉好玩,写了这样一段程序。原理就是先随机生成两个点,然后根据这两个点画直线,最后在直线上的像素保留,没在直线上的像素丢弃就行了。最后生成了一幅含有很多空洞的图像。当然,对含有空洞的图像是可以用修复算法修复的。我也尝试修复了一下,用的算法我过去也写过,可以看这里。这一次就不贴修复代码了,那段程... 阅读全文
posted @ 2014-09-06 17:47 Dsp Tian 阅读(4249) 评论(0) 推荐(0) 编辑
摘要:自从上次写了Hilbert图像置乱之后,就对图像置乱研究了一下,发现这里面也是有很多置乱算法的。Arnold也算一种比较主要的置乱算法,算法由以下变换公式产生:这里a和b是参数,n是迭代次数,N是图像的高或宽。有了正变换公式,我们还需要反变换公式,正好我最近在学Mathematica,反变换公式就是... 阅读全文
posted @ 2014-09-03 21:32 Dsp Tian 阅读(15793) 评论(1) 推荐(2) 编辑
摘要:正好刚写了Hibert生成曲线,不如再加一篇应用的程序。关于Hilbert图像置乱,我在网上搜的应用领域主要集中在数字水印和图像加密上,而这两个领域我都没怎么接触过。大部分的图像置乱都是如下图的置乱1所示,至于置乱2则是我不小心生成的。置乱1是先把原图按hilbert曲线进行赋值,拉成一条一维数组,... 阅读全文
posted @ 2014-08-30 19:52 Dsp Tian 阅读(8011) 评论(3) 推荐(0) 编辑
摘要:能够使用这样一条线遍历图像中所有的像素,不过这里没有这样做,而只是生成了这样一条曲线。程序中h,w是最终图像的高和宽,n为希尔伯特曲线阶数。这里如果n等于log2(h)或log2(w),则图像就全为白了,也算是正好遍历所有像素了。当然,n很大的话,图像也是全为白的,不过,那样不算正好遍历吧。代码中生... 阅读全文
posted @ 2014-08-30 14:22 Dsp Tian 阅读(9646) 评论(4) 推荐(0) 编辑
摘要:视频制作软件中一般都会有相邻帧切换的特效,我过去用过vagas好像就有很多切换特效。我想这个也算是其中一种吧,虽然我不确定实际中到底有没有这种切换。实际上我只是下班后太无聊了,写着玩的,没什么高深的东西。从lena图转换为rice图的效果如下:matlab代码如下:clear all;close a... 阅读全文
posted @ 2014-08-28 20:58 Dsp Tian 阅读(1774) 评论(0) 推荐(0) 编辑
摘要:提供了两种生成方法,一个是自己编程实现,比较灵活;另一个是调用系统的checkerboard函数,似乎只能生成8*8网格。至于用途,也许可以用来下国际象棋。自己函数生成:系统函数生成:代码如下:clear all;close all;clch=256;w=256;n=8;img=zeros(h,w)... 阅读全文
posted @ 2014-08-08 22:45 Dsp Tian 阅读(9786) 评论(2) 推荐(0) 编辑
摘要:最近对图像坐标的变换很感兴趣啊,这次是将一张图像变换为圆形。变换原理就是按变换前后像素到圆心的距离按比例缩减就行了。改变x,y方向上的系数,应该还可以变换为椭圆,不过我还没有尝试。注意我这里相当于缩小图像了,所以用的是正向插值,如果想生成一个大圆,还是需要逆向插值的。原图如下:处理后效果:matla... 阅读全文
posted @ 2014-07-26 16:50 Dsp Tian 阅读(5568) 评论(3) 推荐(0) 编辑
摘要:还记得过去写过径向模糊,不过当时效果似乎不好。这次效果还可以,程序中用的算法是:1.求当前处理点和图像中心点之间的距离r与角度ang;2.通过对r的修改得到径向模糊。3.通过对ang的修改得到旋转模糊。一看代码就能全部明白,不仔细解释了。原图如下:处理后效果:matlab代码如下:clear all... 阅读全文
posted @ 2014-07-19 21:49 Dsp Tian 阅读(3542) 评论(2) 推荐(0) 编辑
摘要:其实就是用sin或cos对x,y坐标进行变换,处理的时候依然是反向变换。类似的,用不同的函数能得到不同的扭曲效果,比如log,1/x,exp等等。效果如下:代码如下(还给出了如何生成gif图片的代码):clear all;close all;clc;img=imread('lena.jpg');[h... 阅读全文
posted @ 2014-07-19 09:34 Dsp Tian 阅读(4177) 评论(1) 推荐(0) 编辑
摘要:前一段介绍了从矩形图像到圆柱的正向投影,看这里和这里。今天介绍如何从已经投影的图像反映射到原图像上。本来此种变换一定是需要数学公式的,不过这里只是用了一个很简单的方式来完成反映射。具体就把每一列有像素数据的长度拉伸到原图像的高就行了。原图像是这样:处理后:看着感觉还可以,不过这样显然是不合数学公式的... 阅读全文
posted @ 2014-07-17 20:34 Dsp Tian 阅读(2309) 评论(0) 推荐(0) 编辑
摘要:算是一种特效模糊方式吧,算法原理就是用邻域随机像素代替当前所处理的像素就可以了。效果如下图所示:原图:处理后结果:matlab代码如下:clear all; close all;clc;img=imread('lena.jpg');[h,w]=size(img);imgn=img;n=3; %... 阅读全文
posted @ 2014-07-05 10:57 Dsp Tian 阅读(3174) 评论(1) 推荐(0) 编辑

上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 15 下一页