上一页 1 ··· 40 41 42 43 44 45 46 47 48 ··· 74 下一页
摘要: 随机游走类似布朗运动,就是随机的向各个方向走吧。虽然代码没什么技术含量,不过产生的图像实在太漂亮了,所以还是贴上来吧。产生的图像:matlab代码如下:clear all;close all;clcn=70000; %游走的步数。也是图像中像素个数,有些位置可能重复,所以白像素小于等于nx=0; %初始x坐标y=0; %初始y坐标pix=zeros(n,2); %游走产生的像素坐标neighbour=[-1 -1;-1 0;-1 1;0 -1;0 1;1 -1;1 0;1 1]; %当前像素邻域for i=1:n r=floor... 阅读全文
posted @ 2013-07-12 19:14 Dsp Tian 阅读(12456) 评论(0) 推荐(1) 编辑
摘要: 学习这个算法是为学习图像处理中的图割算法做准备的。基本概念:1.最大流是一个有向图。2.一个流是最大流,当且仅当它的残余网络中不包括增广路径。3.最小割就是网络中所有割中值最小的那个割,最小割是不唯一的,不过最小割的值是唯一的。4.最大流的流量等于某一最小割的容量。算法思想就是Ford-Fulkerson方法。具体流程:1.首先使用广度优先搜索找到源节点到汇节点的一条路径,为增广路径。2.如果找不到新的从源到汇的增广路径,则上一次求得的网络就是最大流,否则向下执行。3.找出增广路径中最小的路径的值。5.用路径中最小的值构造最大流网络,原网络包含这个网络。4.将增广路径中所有的路径减去最小路径这 阅读全文
posted @ 2013-07-12 11:09 Dsp Tian 阅读(9872) 评论(0) 推荐(0) 编辑
摘要: 好不容易写一个不编程的随笔了。题目写出来,目的就已经很明确了,我就不详细解释原因了。其实一年前多就已经配置成功了,写这篇随笔主要是给自己做一个备份,如果顺便能帮助其他人,也算功德无量了。我就从最开始配置说起。环境是Windows 7下的,XP下应该也可以。首先需要下载Chrome并安装。下载地址在这里。然后需要在Chrome中安装ProxySwitchSharp插件。下载地址在这里。安装完之后右上就会出现一个灰色的小地球仪,至于旁边那个插件叫adblock,屏蔽广告用的。如下图:然后鼠标右击点选项进去,如下图:进去之后,点导入/导出选项卡,然后点从文件恢复。我已经配置好文件了,在这里下载。好了 阅读全文
posted @ 2013-07-10 20:17 Dsp Tian 阅读(4621) 评论(0) 推荐(0) 编辑
摘要: 图的相关算法也算是自己的一个软肋了,当年没选修图论也是一大遗憾。图像处理中,也有使用图论算法作为基础的相关算法,比如图割,这个算法就需要求最大流、最小割。所以熟悉一下图论算法对于图像处理还是很有帮助的。Dijkstra和Bellman-Ford类似,都是解决单源最短路径问题,不同的是这个方法只能解决边为非负的问题,实现的好的Dijkstra算法运行时间要快于Bellman-ford。算法步骤如下:1.首先设置队列,所有节点入列,源节点值为0,其他节点值为无穷。2.然后在队列中找值最小的节点并出列。3.计算出列的节点所有后继节点的距离。4.松弛方法,如果新计算的距离小于上次计算的距离,那么更新距 阅读全文
posted @ 2013-07-10 13:49 Dsp Tian 阅读(16961) 评论(6) 推荐(0) 编辑
摘要: 该算法可以用来解决一般(边的权值为负)的单源最短路径问题,而dijkstra只能解决权值非负的情况。此算法使用松弛技术,对每一个顶点,逐步减少源到该顶点的路径的估计值,直到达到最短的路径。算法运算结果:matlab代码如下,netplot函数在这里,不过当时函数中表示两节点没有路径用的是0,而现在需要改成inf:clear all;close all;clc%初始化邻接压缩表b=[1 2 6; 1 4 7 2 3 5; 2 4 8; 2 5 -4; 3 2 -2; 4 3 -3; 4 5 9; 5 1 2; 5 3 7];m=max(max(b(:,1:2... 阅读全文
posted @ 2013-07-10 10:53 Dsp Tian 阅读(6628) 评论(0) 推荐(0) 编辑
摘要: 如此经典的算法竟一直没有单独的实现过,真是遗憾啊。广度优先搜索在过去实现的二值图像连通区域标记和prim最小生成树算法时已经无意识的用到了,深度优先搜索倒是没用过。这次单独的将两个算法实现出来,因为算法本身和图像没什么关系,所以更纯粹些。广度优先搜索是从某一节点开始,搜索与其线连接的所有节点,按照广度方向像外扩展,直到不重复遍历所有节点。深度优先搜索是从某一节点开始,沿着其搜索到的第一个节点不断深入下去,当无法再深入的时候,回溯节点,然后再在回溯中的某一节点开始沿另一个方向深度搜索,直到不重复的遍历所有节点。广度优先搜索用的是队列作为临时节点存放处;深度优先搜索可以递归实现(算法导论就是用递归 阅读全文
posted @ 2013-07-05 20:37 Dsp Tian 阅读(26169) 评论(2) 推荐(7) 编辑
摘要: 模拟退火首先从某个初始候选解开始,当温度大于0时执行循环。在循环中,通过随机扰动产生一个新的解,然后求得新解和原解之间的能量差,如果差小于0,则采用新解作为当前解。如果差大于0,则采用一个当前温度与能量差成比例的概率来选择是否接受新解。温度越低,接受的概率越小,差值越大,同样接受概率越小。是否接受的概率用此公式计算:p=exp(-ΔE/T)。这里ΔE为新解与原解的差,T为当前的温度。由于温度随迭代次数逐渐降低,因此获得一个较差的解的概率较小。典型的模拟退火算法还使用了蒙特卡洛循环,在温度降低之前,通过多次迭代来找到当前温度下比较好的解。这里使用模拟退火解旅行商问题,因为这个问题本身是一个NP难 阅读全文
posted @ 2013-07-02 19:50 Dsp Tian 阅读(54254) 评论(10) 推荐(7) 编辑
摘要: 还是这本书上的内容,不过我看演化计算这一章是倒着看的,这里练习的算法正好和书中介绍的顺序是相反的。演化策略是最古老的的演化算法之一,和上一篇DE算法类似,都是基于种群的随机演化产生最优解的算法。算法步骤如下:1.设定种群个体数和需要迭代的次数。2.选择父代中的个体按照公式z1=sqrt(-2*ln(u1))*sin(2*pi*u2)*m,z2=sqrt(-2*ln(u1))*cos(2*pi*u2)*m进行演化。这里u1,u2都是随机值,m是控制因子,演化次数越多m,m越小,父代通过与z1,z2相加得到后代。3.计算后代的适应性。4.选择后代中最优的适应性作为全局最优适应性。其实整个过程和DE 阅读全文
posted @ 2013-07-01 19:37 Dsp Tian 阅读(4173) 评论(0) 推荐(0) 编辑
摘要: 这两天在看M.Tim Jones的《人工智能》,书中不只介绍原理,而且都有相应的c代码实现。虽然代码不完全,不过缺少的部分完全可以自己补完。差异演化和昨天实现的PSO很类似,都属于优化算法。算法步骤:1.设定种群个体个数和需要迭代的次数。当然也可以设定条件,然后判断是否停止迭代。2.定义交叉概率CR,个体有一定概率进行变异,如果变异则进行第3步,如果不变异则下一代个体和当前个体一样。3.在种群中随机选出三个互不相同的个体进行变异,变异公式如下(有博士论文总结了一大堆变异公式):Xi,g+1=Xr1,g+F(Xr2,g-Xr3,g)其中X是种群中个体特征向量,这里就是x和y坐标。g是种群的代数。 阅读全文
posted @ 2013-06-27 20:19 Dsp Tian 阅读(3583) 评论(0) 推荐(2) 编辑
摘要: 算法没有和图像处理直接相关,不过对于图像分类中的模式识别相关算法,也许会用到这个优化算法。算法步骤:1.首先确定粒子个数与迭代次数。2.对每个粒子随机初始化位置与速度。3.采用如下公式更新每个粒子的位置与速度。Px=Px+Pv*t; %位置更新公式 Pv=Pv+(c1*rand*(Gx-Px))+(... 阅读全文
posted @ 2013-06-26 21:22 Dsp Tian 阅读(39206) 评论(11) 推荐(8) 编辑
上一页 1 ··· 40 41 42 43 44 45 46 47 48 ··· 74 下一页