matlab怎么設(shè)置像素尺寸 圖像的表示方法與主要參數(shù)?
圖像的表示方法與主要參數(shù)?matlab中圖像也可以用矩陣來(lái)它表示,其主要參數(shù)除了圖像大小size,坐標(biāo)系,分辨率等等信息MATLAB如何去除圖像中孤立點(diǎn)?c語(yǔ)言設(shè)計(jì)個(gè)掃描程序,設(shè)置當(dāng)像素為1的點(diǎn)周圍一
圖像的表示方法與主要參數(shù)?
matlab中圖像也可以用矩陣來(lái)它表示,其主要參數(shù)除了圖像大小size,坐標(biāo)系,分辨率等等信息
MATLAB如何去除圖像中孤立點(diǎn)?
c語(yǔ)言設(shè)計(jì)個(gè)掃描程序,設(shè)置當(dāng)像素為1的點(diǎn)周圍一個(gè)三角形面積內(nèi)的點(diǎn)像素不為登時(shí)設(shè)此點(diǎn)像素為0,也可以有個(gè)自編歌曲的程序再就把想去掉的點(diǎn)去擦,相似photoshop的仿制圖章。
消掉白點(diǎn)應(yīng)該是用非常小的結(jié)構(gòu)元素(.例如2×2)做開(kāi)乘法運(yùn)算,這樣的話這個(gè)可以會(huì)增大對(duì)圖像其他部分的影響。
要是原圖有沒(méi)二值圖像的話可以不先再試試中值濾波幫一下忙看一下效果。
如果想去處理問(wèn)題中的二值圖像,也可以試試連通區(qū)域檢測(cè)算法,統(tǒng)計(jì)計(jì)算各個(gè)連通區(qū)域的面積,后再將面積很小的黃色連通區(qū)域圖案填充為黑色。
如何使用matlab,完成一個(gè)輸入像素坐標(biāo),在圖片上標(biāo)記出該點(diǎn)的功能?
再者:像素坐標(biāo)為[x,y],怎在圖img上標(biāo)上,figure,imshow(img,[]);hold on
plot(x,y,b*);
hold得住on
matlab怎么讓圖形標(biāo)簽變大?
set(gcf,position,[0,0,468,468])%gcf是當(dāng)前figure,這個(gè)可以變動(dòng)當(dāng)前圖框的大小%其中的數(shù)值對(duì)應(yīng)的是像素值,也左下寬高,0,0按的就是屏幕的最最下角,寬高一般的話%可以看到圖框是方的set(gca,position,[0,0,1,1])[0,0,1,1]數(shù)值分別不對(duì)應(yīng)左下寬高,其中的寬高的數(shù)值時(shí)填寫的對(duì)于當(dāng)前圖框的百分比,%要是要?jiǎng)t是形狀那是1,那是100%那樣可能會(huì)會(huì)看不到坐標(biāo)軸,是可以適度地改呀當(dāng)然也這個(gè)可以去設(shè)置
遍歷法和蟻群算法編程MATLAB誰(shuí)更簡(jiǎn)單?
蟻群算法是模擬蟻群尋找食物行為的一種優(yōu)化算法。在整個(gè)外出覓食過(guò)程中螞蟻散布消息信息素,螞蟻通過(guò)五感到的信息素多少,來(lái)判斷所要選擇的下一個(gè)柵格。
在初始階段,導(dǎo)致地面上沒(méi)有信息素,因此蟻群的行走路徑是副本的,螞蟻在慢慢行走的過(guò)程中會(huì)不斷地釋放出信息素,標(biāo)有自己慢慢行走的路徑。隨著時(shí)間的推移,有若干只螞蟻找不到了食物,此時(shí)便修真者的存在若干條從洞穴到食物的路徑。因此螞蟻的行為軌跡是任務(wù)道具廣泛分布的,但在單位時(shí)間內(nèi),短路徑上的螞蟻數(shù)量比長(zhǎng)路徑上的螞蟻密度要大,短路徑他留的信息素濃度也越高。這為后面的螞蟻們需要提供了堅(jiān)定有力的方向指引,越來(lái)越多的螞蟻集中到所用時(shí)間的路徑上來(lái)。是對(duì)單個(gè)螞蟻來(lái)說(shuō),它卻沒(méi)要尋找風(fēng)最短路徑,只不過(guò)據(jù)概率中,選擇;這對(duì)整個(gè)蟻群系統(tǒng)來(lái)說(shuō),它們卻提升到了去尋找到最優(yōu)路徑的客觀上的效果。
打比方蟻群中螞蟻的總數(shù)為M,各螞蟻在柵格環(huán)境下天翼,但是參照狀態(tài)需要轉(zhuǎn)移規(guī)則選擇類型下個(gè)矩形塊,假設(shè)在此時(shí)此刻t時(shí),螞蟻k位處小矩形i,這樣螞蟻k你選擇下兩個(gè)矩形塊j的概率為:
(1)式中:V來(lái)表示螞蟻K是可以選擇類型下一個(gè)柵格的集合;Alpha為信息素濃度啟發(fā)因子,Alpha越大,表明螞蟻K越趨向于于中,選擇多數(shù)螞蟻?zhàn)哌^(guò)的路徑;Beta表示只希望啟發(fā)因子,反映了能見(jiàn)度信息對(duì)螞蟻你選擇下一步位置所起作用的大小,Beta值越大,并且螞蟻K越趨向于于你選相距目標(biāo)點(diǎn)近的柵格,越傾向于往能見(jiàn)度程??梢员硎総時(shí)刻路徑(i,j)上的信息素濃度;可以表示t時(shí)刻路徑(i,j)上的啟發(fā)信息,其定義法為:
蟻群算法的核心部分本質(zhì)演示了蟻群的轉(zhuǎn)移概率中,選擇行為,使用信息素和啟發(fā)式函數(shù)值接受需要轉(zhuǎn)移概率可以計(jì)算。其中螞蟻狀態(tài)轉(zhuǎn)移到過(guò)程中以節(jié)點(diǎn)到目標(biāo)點(diǎn)之間的距離的倒數(shù)作為啟發(fā)信息,進(jìn)一步影響障礙物的事前規(guī)避。因此在緊張的路徑規(guī)劃環(huán)境下,蟻群算法在一個(gè)浩大的空間中搜索,在360優(yōu)化初期路徑上的信息素濃度較小,正向反饋信息不明顯尤其是必掉解有一種的過(guò)程中的“盲目相信搜索”出現(xiàn)大量的局部交叉的十字路徑,減低蟻群算法的運(yùn)行效率,且容易陷入局部最優(yōu),搜索進(jìn)行到一定程度后,不容易再次出現(xiàn)慢了下來(lái)現(xiàn)象,所有個(gè)體發(fā)現(xiàn)自己的解全部一致,沒(méi)法接受進(jìn)一步搜索,不利于發(fā)現(xiàn)自己更合適的解。
matlab仿真
繪制的方格圖舉例說(shuō)明:
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)%把柵格地圖轉(zhuǎn)為鄰接矩陣
Nsize(D,1)%N表示問(wèn)題的規(guī)模(象素個(gè)數(shù))直接返回矩陣D行數(shù)
MMsize(G,1)%直接返回G的行數(shù)
a1%小方格象素的邊長(zhǎng)
Exa*(mod(E,MM)-0.5)%強(qiáng)制停止點(diǎn)橫坐標(biāo)a除以變量E對(duì)MM(行)取余(能夠得到列)后減0.5即所處列
ifEx-0.5
ExMM-0.5
end
Eya*(MM0.5-ceil(E/MM))%E/MM結(jié)果取整暫時(shí)終止點(diǎn)縱坐標(biāo)
Etazeros(1,N)%啟發(fā)式信息,取為至目標(biāo)點(diǎn)的直線距離的倒數(shù)初始信息素矩陣
%下面構(gòu)造啟發(fā)式信息矩陣
fori1:N
ixa*(mod(i,MM)-0.5)%a乘以3變量i對(duì)MM取余后減0.5列
ifix-0.5
ixMM-0.5
end
iya*(MM0.5-ceil(i/MM))il將結(jié)果朝正無(wú)窮方向取整
ifi~E%i有無(wú)不等于E
Eta(1,i)((ix-Ex)^2(iy-Ey)^2)^(0.5)%與終點(diǎn)的直線距離的倒數(shù),啟發(fā)與感悟信息
arguments
Eta(1,i)0.01
end
end
ROUTEScell(K,M)%用細(xì)胞結(jié)構(gòu)讀取每一代的每一只螞蟻的向前爬行路線螞蟻個(gè)數(shù)*迭代次數(shù)矩陣,每個(gè)元素是一個(gè)結(jié)構(gòu)
PLzeros(K,M)%用矩陣存儲(chǔ)每一代的每一只螞蟻的爬動(dòng)路線長(zhǎng)度
%%-----------正常啟動(dòng)K輪螞蟻外出覓食活動(dòng),每輪派出M只螞蟻--------------------
tic
fork1:K
íit(k)
afterm1:M
%%第一步:狀態(tài)初始化設(shè)置
WS%當(dāng)前節(jié)點(diǎn)初始化設(shè)置為起始點(diǎn)
PathS%爬行時(shí)路線初始化
PLkm0%爬動(dòng)路線長(zhǎng)度初始化設(shè)置
TABUkmones(1,N)%生成禁忌列表,所有節(jié)點(diǎn)均未向前走,因此都置為1
TABUkm(S)0%已經(jīng)在初始點(diǎn)了,因此要先排除
DDD%鄰接矩陣系統(tǒng)初始化
%%第二步:接下來(lái)這個(gè)可以一同前往的節(jié)點(diǎn)DWDD(W,:)%把矩陣DD的第W行所有列變量定義給DW
%DW1find(DWltinf)
%forj1:length(DW1)
%ifTABUkm(DW1(j))0
%end
%endLJDfind(DWltinf)%可選節(jié)點(diǎn)集即回可以走的節(jié)點(diǎn)坐標(biāo)lt矩陣編號(hào)gt
Len_LJDlength(LJD)%計(jì)數(shù)寄存器可選節(jié)點(diǎn)的個(gè)數(shù)
%%覓食開(kāi)始條件:螞蟻未遇見(jiàn)食物或者被卷入死胡同
whileW~EampampLen_LJDgt1
%%第十步:轉(zhuǎn)輪賭法選擇然后再怎摸走
PPzeros(1,Len_LJD)%遍歷過(guò)程可選節(jié)點(diǎn)
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個(gè)節(jié)點(diǎn)
end
PPPP/(if(PP))%組建概率廣泛分布把各個(gè)路徑的概率統(tǒng)一到和為1;
Pcumcumsum(PP)%PP可累計(jì)值
Selectfind(Pcumgtrand)%出現(xiàn)正二十邊形0~1之間的隨機(jī)數(shù),輪盤賭算法,注意避免陷入瘋狂局部最優(yōu)解
to_visitLJD(Select(1))%接下來(lái)即將一同前往的節(jié)點(diǎn)
%%第四步:狀態(tài)更新和記錄信息
Path[Path,want_visit]%路線節(jié)點(diǎn)提高
PLkmPLkmDD(W,to_visit)%路徑長(zhǎng)度提高,有記錄本次產(chǎn)品迭代最佳路線長(zhǎng)度,每只螞蟻都是自己走過(guò)的長(zhǎng)度資料記錄在向量中。
Wto_visit%螞蟻移到下一個(gè)節(jié)點(diǎn)
%N:所有點(diǎn)
for kk1:Nif TABUkm(vv)0%禁忌列表
DD(W,大k)inf%在此次循環(huán)中可以設(shè)置為不可達(dá)
DD(kk,W)inf
end
endTABUkm(W)0%已不能訪問(wèn)過(guò)的節(jié)點(diǎn)從禁忌表中刪出
DWDD(W,:)
LJDfind(DWltinf)%可選節(jié)點(diǎn)集
Len_LJDlength(LJD)%可選節(jié)點(diǎn)的個(gè)數(shù)
end
%%第五步:記住每一代每一只螞蟻的覓食路線和路線長(zhǎng)度
ROUTES{k,m}Path%第k次迭代第m只螞蟻的路線
ifPath(end)E
PL(k,m)PLkm%經(jīng)過(guò)目標(biāo)點(diǎn)的路線長(zhǎng)度
arguments
PL(k,m)inf%再次進(jìn)入死胡同
end
end
%%第六步:更新信息素
Delta_Tauzeros(N,N)%更新量初始化
afterm1:M%M只螞蟻
ifPL(k,m)ltinf%能夠順利至目標(biāo)點(diǎn)的螞蟻路線長(zhǎng)度
ROUTROUTES{k,m}%具體看路線
TSlength(ROUT)-1%跳數(shù)螞蟻轉(zhuǎn)移次數(shù)
PL_kmPL(k,m)%路線長(zhǎng)度
fors1:TS
xROUT(s)%上一個(gè)節(jié)點(diǎn)
yROUT(s1)%下一個(gè)節(jié)點(diǎn)Delta_Tau(x,y)Delta_Tau(x,y)Q/PL_km%(x,y)即兩個(gè)節(jié)點(diǎn)之間的關(guān)系(信息素量)系數(shù)乘以2路線長(zhǎng)度
Delta_Tau(y,x)Delta_Tau(y,x)Q/PL_km
end
end
endTau(1-Rho).*TauDelta_Tau%信息素?fù)]發(fā)一部分,新增加一部分
end
toc
%%---------------------------繪圖--------------------------------
plotif1%是否是繪圖的控制參數(shù)
ifplotif1
%繪收斂曲線
meanPLzeros(1,K)%k:迭代次數(shù)
minPLzeros(1,K)
whilei1:K
PLKPL(i,:)%將第i次迭代爬動(dòng)路線長(zhǎng)度變量賦值給PLK
Nonzerofind(PLKltinf)%直接返回一系列六逆重生療法路線的編號(hào)
iflength(Nonzero)~0
PLKPLKPLK(Nonzero)%留下可行路線,重新排列
meanPL(i)mean(PLKPLK)%求取這次依先生路徑的平局值
minPL(i)min(PLKPLK)%做出小于路徑
end
end
%%figure(1)
%%minPL(find(minPL0))[]%將40的點(diǎn)徹底刪除
%%meanPL(一加7(meanPL0))[]%將等于零0的點(diǎn)刪除掉
%%plot(minPL,k)
%%hold on
%%plot(meanPL,r)
%%gridat%off添加網(wǎng)格start能去掉網(wǎng)格
%%title(收斂曲線(總平均路徑長(zhǎng)度和小于路徑長(zhǎng)度))
%%xlabel(迭代次數(shù))
%%ylabel(路徑長(zhǎng)度)
%繪爬行時(shí)圖
%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坐標(biāo),y坐標(biāo),顏色)
%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%迭代次數(shù)
%PLKPL(k,:)%將第k次迭代向前爬行路線長(zhǎng)度變量賦值給PLK
%minPLKmin(PLK)%求得大賽期間迭代最短路徑長(zhǎng)度
%posfind(PLKminPLK)%找到什么與最短路徑長(zhǎng)度相等的路徑,回標(biāo)號(hào)
%mpos(1)%你選擇其中第一個(gè)標(biāo)號(hào)
%ROUTROUTES{k,m}%將最短路徑的路線定義變量給ROUT
%
%LENROUTlength(ROUT)%解值路線長(zhǎng)度
%
%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次迭代爬行時(shí)路線長(zhǎng)度賦值給PLK
minPLKmin(PLK)
if(minPLKltminmumPLK)
posfind(PLKminPLK)%可以找到與所用時(shí)間匍匐爬行路線長(zhǎng)度成比例的路徑標(biāo)號(hào)
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
運(yùn)行圖不勝感激:
————————————————