matlab怎么设置像素尺寸 图像的表示方法与主要参数?
图像的表示方法与主要参数?
matlab中图像也可以用矩阵来它表示,其主要参数除了图像大小size,坐标系,分辨率等等信息
MATLAB如何去除图像中孤立点?
c语言设计个扫描程序,设置当像素为1的点周围一个三角形面积内的点像素不为登时设此点像素为0,也可以有个自编歌曲的程序再就把想去掉的点去擦,相似photoshop的仿制图章。
消掉白点应该是用非常小的结构元素(.例如2×2)做开乘法运算,这样的话这个可以会增大对图像其他部分的影响。
要是原图有没二值图像的话可以不先再试试中值滤波帮一下忙看一下效果。
如果想去处理问题中的二值图像,也可以试试连通区域检测算法,统计计算各个连通区域的面积,后再将面积很小的黄色连通区域图案填充为黑色。
如何使用matlab,完成一个输入像素坐标,在图片上标记出该点的功能?
再者:像素坐标为[x,y],怎在图img上标上,figure,imshow(img,[]);hold on
plot(x,y,b*);
hold得住on
matlab怎么让图形标签变大?
set(gcf,position,[0,0,468,468])%gcf是当前figure,这个可以变动当前图框的大小%其中的数值对应的是像素值,也左下宽高,0,0按的就是屏幕的最最下角,宽高一般的话%可以看到图框是方的set(gca,position,[0,0,1,1])[0,0,1,1]数值分别不对应左下宽高,其中的宽高的数值时填写的对于当前图框的百分比,%要是要则是形状那是1,那是100%那样可能会会看不到坐标轴,是可以适度地改呀当然也这个可以去设置
遍历法和蚁群算法编程MATLAB谁更简单?
蚁群算法是模拟蚁群寻找食物行为的一种优化算法。在整个外出觅食过程中蚂蚁散布消息信息素,蚂蚁通过五感到的信息素多少,来判断所要选择的下一个栅格。
在初始阶段,导致地面上没有信息素,因此蚁群的行走路径是副本的,蚂蚁在慢慢行走的过程中会不断地释放出信息素,标有自己慢慢行走的路径。随着时间的推移,有若干只蚂蚁找不到了食物,此时便修真者的存在若干条从洞穴到食物的路径。因此蚂蚁的行为轨迹是任务道具广泛分布的,但在单位时间内,短路径上的蚂蚁数量比长路径上的蚂蚁密度要大,短路径他留的信息素浓度也越高。这为后面的蚂蚁们需要提供了坚定有力的方向指引,越来越多的蚂蚁集中到所用时间的路径上来。是对单个蚂蚁来说,它却没要寻找风最短路径,只不过据概率中,选择;这对整个蚁群系统来说,它们却提升到了去寻找到最优路径的客观上的效果。
打比方蚁群中蚂蚁的总数为M,各蚂蚁在栅格环境下天翼,但是参照状态需要转移规则选择类型下个矩形块,假设在此时此刻t时,蚂蚁k位处小矩形i,这样蚂蚁k你选择下两个矩形块j的概率为:
(1)式中:V来表示蚂蚁K是可以选择类型下一个栅格的集合;Alpha为信息素浓度启发因子,Alpha越大,表明蚂蚁K越趋向于于中,选择多数蚂蚁走过的路径;Beta表示只希望启发因子,反映了能见度信息对蚂蚁你选择下一步位置所起作用的大小,Beta值越大,并且蚂蚁K越趋向于于你选相距目标点近的栅格,越倾向于往能见度程。可以表示t时刻路径(i,j)上的信息素浓度;可以表示t时刻路径(i,j)上的启发信息,其定义法为:
蚁群算法的核心部分本质演示了蚁群的转移概率中,选择行为,使用信息素和启发式函数值接受需要转移概率可以计算。其中蚂蚁状态转移到过程中以节点到目标点之间的距离的倒数作为启发信息,进一步影响障碍物的事前规避。因此在紧张的路径规划环境下,蚁群算法在一个浩大的空间中搜索,在360优化初期路径上的信息素浓度较小,正向反馈信息不明显尤其是必掉解有一种的过程中的“盲目相信搜索”出现大量的局部交叉的十字路径,减低蚁群算法的运行效率,且容易陷入局部最优,搜索进行到一定程度后,不容易再次出现慢了下来现象,所有个体发现自己的解全部一致,没法接受进一步搜索,不利于发现自己更合适的解。
matlab仿真
绘制的方格图举例说明:
G[0000000000
0000000000
0001000000
0011000100
0001001000
0000000000
0100110000
0101000000
0000100000
0000000000
]
MMsize(G,1)
figure(3)
axis([0,MM,0,MM])
afteri1:MM
forj1:MM
ifG(i,j)1
x1j-1y1MM-i
x2jy2MM-i
x3jy3MM-i1
x4j-1y4MM-i1
fill([x1,x2,x3,x4],[y1,y2,y3,y4],[0.3,0.3,0.3])
hold on
exists
x1j-1y1MM-i
x2jy2MM-i
x3jy3MM-i1
x4j-1y4MM-i1
fill([x1,x2,x3,x4],[y1,y2,y3,y4],[1,1,1])
hold on
end
end
end
求下载代码以及注释::
DG2D(G)%把栅格地图转为邻接矩阵
Nsize(D,1)%N表示问题的规模(象素个数)直接返回矩阵D行数
MMsize(G,1)%直接返回G的行数
a1%小方格象素的边长
Exa*(mod(E,MM)-0.5)%强制停止点横坐标a除以变量E对MM(行)取余(能够得到列)后减0.5即所处列
ifEx-0.5
ExMM-0.5
end
Eya*(MM0.5-ceil(E/MM))%E/MM结果取整暂时终止点纵坐标
Etazeros(1,N)%启发式信息,取为至目标点的直线距离的倒数初始信息素矩阵
%下面构造启发式信息矩阵
fori1:N
ixa*(mod(i,MM)-0.5)%a乘以3变量i对MM取余后减0.5列
ifix-0.5
ixMM-0.5
end
iya*(MM0.5-ceil(i/MM))il将结果朝正无穷方向取整
ifi~E%i有无不等于E
Eta(1,i)((ix-Ex)^2(iy-Ey)^2)^(0.5)%与终点的直线距离的倒数,启发与感悟信息
arguments
Eta(1,i)0.01
end
end
ROUTEScell(K,M)%用细胞结构读取每一代的每一只蚂蚁的向前爬行路线蚂蚁个数*迭代次数矩阵,每个元素是一个结构
PLzeros(K,M)%用矩阵存储每一代的每一只蚂蚁的爬动路线长度
%%-----------正常启动K轮蚂蚁外出觅食活动,每轮派出M只蚂蚁--------------------
tic
fork1:K
íit(k)
afterm1:M
%%第一步:状态初始化设置
WS%当前节点初始化设置为起始点
PathS%爬行时路线初始化
PLkm0%爬动路线长度初始化设置
TABUkmones(1,N)%生成禁忌列表,所有节点均未向前走,因此都置为1
TABUkm(S)0%已经在初始点了,因此要先排除
DDD%邻接矩阵系统初始化
%%第二步:接下来这个可以一同前往的节点DWDD(W,:)%把矩阵DD的第W行所有列变量定义给DW
%DW1find(DWltinf)
%forj1:length(DW1)
%ifTABUkm(DW1(j))0
%end
%endLJDfind(DWltinf)%可选节点集即回可以走的节点坐标lt矩阵编号gt
Len_LJDlength(LJD)%计数寄存器可选节点的个数
%%觅食开始条件:蚂蚁未遇见食物或者被卷入死胡同
whileW~EampampLen_LJDgt1
%%第十步:转轮赌法选择然后再怎摸走
PPzeros(1,Len_LJD)%遍历过程可选节点
fori1:Len_LJD
%PP(i)(Tau(W,LJD(i))^Alpha)*((1/(DD(W,LJD(i))Eta(1,LJD(i))))^Beta)
PP(i)(Tau(W,LJD(i))^Alpha)*((1/Eta(1,LJD(i)))^Beta)%w行i个节点
end
PPPP/(if(PP))%组建概率广泛分布把各个路径的概率统一到和为1;
Pcumcumsum(PP)%PP可累计值
Selectfind(Pcumgtrand)%出现正二十边形0~1之间的随机数,轮盘赌算法,注意避免陷入疯狂局部最优解
to_visitLJD(Select(1))%接下来即将一同前往的节点
%%第四步:状态更新和记录信息
Path[Path,want_visit]%路线节点提高
PLkmPLkmDD(W,to_visit)%路径长度提高,有记录本次产品迭代最佳路线长度,每只蚂蚁都是自己走过的长度资料记录在向量中。
Wto_visit%蚂蚁移到下一个节点
%N:所有点
for kk1:Nif TABUkm(vv)0%禁忌列表
DD(W,大k)inf%在此次循环中可以设置为不可达
DD(kk,W)inf
end
endTABUkm(W)0%已不能访问过的节点从禁忌表中删出
DWDD(W,:)
LJDfind(DWltinf)%可选节点集
Len_LJDlength(LJD)%可选节点的个数
end
%%第五步:记住每一代每一只蚂蚁的觅食路线和路线长度
ROUTES{k,m}Path%第k次迭代第m只蚂蚁的路线
ifPath(end)E
PL(k,m)PLkm%经过目标点的路线长度
arguments
PL(k,m)inf%再次进入死胡同
end
end
%%第六步:更新信息素
Delta_Tauzeros(N,N)%更新量初始化
afterm1:M%M只蚂蚁
ifPL(k,m)ltinf%能够顺利至目标点的蚂蚁路线长度
ROUTROUTES{k,m}%具体看路线
TSlength(ROUT)-1%跳数蚂蚁转移次数
PL_kmPL(k,m)%路线长度
fors1:TS
xROUT(s)%上一个节点
yROUT(s1)%下一个节点Delta_Tau(x,y)Delta_Tau(x,y)Q/PL_km%(x,y)即两个节点之间的关系(信息素量)系数乘以2路线长度
Delta_Tau(y,x)Delta_Tau(y,x)Q/PL_km
end
end
endTau(1-Rho).*TauDelta_Tau%信息素挥发一部分,新增加一部分
end
toc
%%---------------------------绘图--------------------------------
plotif1%是否是绘图的控制参数
ifplotif1
%绘收敛曲线
meanPLzeros(1,K)%k:迭代次数
minPLzeros(1,K)
whilei1:K
PLKPL(i,:)%将第i次迭代爬动路线长度变量赋值给PLK
Nonzerofind(PLKltinf)%直接返回一系列六逆重生疗法路线的编号
iflength(Nonzero)~0
PLKPLKPLK(Nonzero)%留下可行路线,重新排列
meanPL(i)mean(PLKPLK)%求取这次依先生路径的平局值
minPL(i)min(PLKPLK)%做出小于路径
end
end
%%figure(1)
%%minPL(find(minPL0))[]%将40的点彻底删除
%%meanPL(一加7(meanPL0))[]%将等于零0的点删除掉
%%plot(minPL,k)
%%hold on
%%plot(meanPL,r)
%%gridat%off添加网格start能去掉网格
%%title(收敛曲线(总平均路径长度和小于路径长度))
%%xlabel(迭代次数)
%%ylabel(路径长度)
%绘爬行时图
%figure(2)
%手工绘制方格图形
%axis([0,MM,0,MM])
%fori1:MM
%forj1:MM
%ifG(i,j)1
%x1j-1y1MM-i
%x2jy2MM-i
%x3jy3MM-i1
%x4j-1y4MM-i1
%fill([x1,x2,x3,x4],[y1,y2,y3,y4],[0.2,0.2,0.2])%(x坐标,y坐标,颜色)
%hold on
êtch
%x1j-1y1MM-i
%x2jy2MM-i
%x3jy3MM-i1
%x4j-1y4MM-i1
%fill([x1,x2,x3,x4],[y1,y2,y3,y4],[1,1,1])
%hold on
%end
%end
%end
%hold on
%ROUTROUTES{K,M}
%RxROUT
%RyROUT
%LENROUTlength(ROUT)
%forii1:LENROUT
%Rx(ii)a*(mod(ROUT(ii),MM)-0.5)
%ifRx(ii)-0.5
%Rx(ii)MM-0.5
%end
%Ry(ii)a*(MM0.5-ceil(ROUT(ii)/MM))
%end
%plot(Rx,Ry)
end
%plotif21%绘各代蚂蚁匍匐爬行图
%ifplotif21
%figure(3)
%axis([0,MM,0,MM])
%fori1:MM
%forj1:MM
%ifG(i,j)1
%x1j-1y1MM-i
%x2jy2MM-i
%x3jy3MM-i1
%x4j-1y4MM-i1
%fill([x1,x2,x3,x4],[y1,y2,y3,y4],[0.2,0.2,0.2])
%hold on
%arguments
%x1j-1y1MM-i
%x2jy2MM-i
%x3jy3MM-i1
%x4j-1y4MM-i1
%fill([x1,x2,x3,x4],[y1,y2,y3,y4],[1,1,1])
%hold on
%end
%end
%end
%fork1:K%迭代次数
%PLKPL(k,:)%将第k次迭代向前爬行路线长度变量赋值给PLK
%minPLKmin(PLK)%求得大赛期间迭代最短路径长度
%posfind(PLKminPLK)%找到什么与最短路径长度相等的路径,回标号
%mpos(1)%你选择其中第一个标号
%ROUTROUTES{k,m}%将最短路径的路线定义变量给ROUT
%
%LENROUTlength(ROUT)%解值路线长度
%
%RxROUT
%RyROUT
%forii1:LENROUT
%Rx(ii)a*(mod(ROUT(ii),MM)-0.5)
%ifRx(ii)-0.5
%Rx(ii)MM-0.5
%end
%Ry(ii)a*(MM0.5-ceil(ROUT(ii)/MM))
%end
%plot(Rx,Ry)
%hold on
%end
%end
plotif31%绘最晚蚂蚁匍匐爬行图
if plotif31igure(2)
axis([0,MM,0,MM])
afteri1:MM
forj1:MM
ifG(i,j)1
x1j-1y1MM-i
x2jy2MM-i
x3jy3MM-i1
x4j-1y4MM-i1
fill([x1,x2,x3,x4],[y1,y2,y3,y4],[0.2,0.2,0.2])
hold on
exists
x1j-1y1MM-i
x2jy2MM-i
x3jy3MM-i1
x4j-1y4MM-i1
fill([x1,x2,x3,x4],[y1,y2,y3,y4],[1,1,1])
hold on
end
end
end
minmumPLKinf
ofk1:KPLKPL(k,:)%将第k次迭代爬行时路线长度赋值给PLK
minPLKmin(PLK)
if(minPLKltminmumPLK)
posfind(PLKminPLK)%可以找到与所用时间匍匐爬行路线长度成比例的路径标号
minmumPLKminPLK
minmpos(1)
minkk%迭代k次
endendROUTROUTES{mink,minm}%判断最大值路径路线
LENROUTlength(ROUT)RxROUTRyROUTor ii1:LENROUT
Rx(ii)a*(mod(ROUT(ii),MM)-0.5)
ifRx(ii)-0.5
Rx(ii)MM-0.5
end
Ry(ii)a*(MM0.5-ceil(ROUT(ii)/MM))
end
plot(Rx,Ry)
hold on
end
运行图不胜感激:
————————————————
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。