導航:首頁 > 源碼編譯 > matlab運算元演算法

matlab運算元演算法

發布時間:2022-06-28 17:07:38

① matlab不使用內置函數edge等等,如何根據原理直接實現LOG運算元

edge不是matlab的內置函數,如何判斷可以用
>>type edge 是否能顯示其函數內容,如能顯示就不是內置函數。
如不用edge函數,可以根據LOG運算元(邊緣檢測演算法)來實現edge函數的功能。
實現LOG運算元的步驟:(1) 採用二維高斯濾波器平滑濾波; (2) 採用二維拉普運算元進行圖像增強; (3) 依據二階導數零交叉進行邊緣檢測。

② matlab遺傳演算法中的交叉運算元函數應該怎麼編寫

function [xv,fv]=myGA(fitness,a,b,NP,NG,Pc,Pm,eps)
L = ceil(log2((b-a)/eps+1)); %根據離散精度,確定二進制編碼需要的碼長
x = zeros(NP,L);
for i=1:NP

x(i,:) = Initial(L); %種群初始化

fx(i) = fitness(Dec(a,b,x(i,:),L)); %個體適應值

end
for k=1:NG

sumfx = sum(fx); %所有個體適應值之和

Px = fx/sumfx; %所有個體適應值的平均值
PPx = 0;

PPx(1) = Px(1);

for i=2:NP %用於輪盤賭策略的概率累加

PPx(i) = PPx(i-1) + Px(i);

end
for i=1:NP

sita = rand();

for n=1:NP

if sita <= PPx(n)

SelFather = n; %根據輪盤賭策略確定的父親

break;

end

end

Selmother = floor(rand()*(NP-1))+1; %隨機選擇母親

posCut = floor(rand()*(L-2)) + 1; %隨機確定交叉點

r1 = rand();

if r1<=Pc %交叉

nx(i,1:posCut) = x(SelFather,1:posCut);

nx(i,(posCut+1):L) = x(Selmother,(posCut+1):L);

r2 = rand();

if r2 <= Pm %變異

posMut = round(rand()*(L-1) + 1);

nx(i,posMut) = ~nx(i,posMut);

end

else

nx(i,:) = x(SelFather,:);

end

end
x = nx;

for i=1:NP

fx(i) = fitness(Dec(a,b,x(i,:),L)); %子代適應值

end

end
fv = -inf;
for i=1:NP

fitx = fitness(Dec(a,b,x(i,:),L));

if fitx > fv

fv = fitx; %取個體中的最好值作為最終結果

xv = Dec(a,b,x(i,:),L);

end

end
function result = Initial(length) %初始化函數
for i=1:length
r = rand();
result(i) = round(r);
end
function y = Dec(a,b,x,L) %二進制編碼轉換為十進制編碼
base = 2.^((L-1):-1:0);
y = dot(base,x);
y = a + y*(b-a)/(2^L-1);

③ matlab canny運算元邊緣檢測函數代碼是什麼

I = imread('lena.bmp'); %%如果是其他類型圖像,請先轉換為灰度圖

%%沒有雜訊時的檢測結果

BW_sobel = edge(I,'sobel');

BW_prewitt = edge(I,'prewitt');

BW_roberts = edge(I,'roberts');

BW_laplace = edge(I,'log');

BW_canny = edge(I,'canny'); figure(1);

subplot(2,3,1),imshow(I),xlabel('原始圖像');

subplot(2,3,2),imshow(BW_sobel),xlabel('sobel檢測');

subplot(2,3,3),imshow(BW_prewitt),xlabel('prewitt檢測');

subplot(2,3,4),imshow(BW_roberts),xlabel('roberts檢測');

subplot(2,3,5),imshow(BW_laplace),xlabel('laplace檢測');

subplot(2,3,6),imshow(BW_canny),xlabel('canny檢測');

%%加入高斯雜訊(μ=0,σ^2=0.01)檢測結果

I_g1 = imnoise(I,'gaussian',0,0.01);

BW_sobel = edge(I_g1,'sobel');

BW_prewitt = edge(I_g1,'prewitt');

BW_roberts = edge(I_g1,'roberts');

BW_laplace = edge(I_g1,'log');

BW_canny = edge(I_g1,'canny'); figure(2);

subplot(2,3,1),imshow(I_g1),xlabel('加入高斯雜訊(μ=0,σ^2=0.01)圖像');

subplot(2,3,2),imshow(BW_sobel),xlabel('sobel檢測');

subplot(2,3,3),imshow(BW_prewitt),xlabel('prewitt檢測');

subplot(2,3,4),imshow(BW_roberts),xlabel('roberts檢測');

subplot(2,3,5),imshow(BW_laplace),xlabel('laplace檢測');

subplot(2,3,6),imshow(BW_canny),xlabel('canny檢測');

%%加入高斯雜訊(μ=0,σ^2=0.02)檢測結果

I_g2 = imnoise(I,'gaussian',0,0.02);

BW_sobel = edge(I_g2,'sobel');

BW_prewitt = edge(I_g2,'prewitt');

BW_roberts = edge(I_g2,'roberts');

BW_laplace = edge(I_g2,'log');

BW_canny = edge(I_g2,'canny'); figure(3);

subplot(2,3,1),imshow(I_g2),xlabel('加入高斯雜訊(μ=0,σ^2=0.02)圖像');

subplot(2,3,2),imshow(BW_sobel),xlabel('sobel檢測');

subplot(2,3,3),imshow(BW_prewitt),xlabel('prewitt檢測');

subplot(2,3,4),imshow(BW_roberts),xlabel('roberts檢測');

subplot(2,3,5),imshow(BW_laplace),xlabel('laplace檢測');

subplot(2,3,6),imshow(BW_canny),xlabel('c

④ Matlab關於圖像邊緣提取,用Sobel運算元、Roberts運算元、Prewitt運算元,加QQ詳談 急用!!

4.2.1 Roberts演算法原理

Roberts運算元是一種最簡單的運算元,是一種利用局部差分運算元尋找邊緣的運算元,他採用對角線方向相鄰兩象素之差近似梯度幅值檢測邊緣。檢測垂直邊緣的效果好於斜向邊緣,定位精度高,對雜訊敏感,無法抑制雜訊的影響。

4.2.2 演算法流程

Roberts運算元在2×2領域上計算對角導數

(4-1)

成為Roberts交叉運算元。在實際應用中為了簡化計算,用梯度函數的Roberts絕對值來近似

(4-2)另外還可以用Roberts 最大運算元來計算

(4-3)

上式能夠提供較好的不變性邊緣取向。對於同等長度但取向不同的邊緣,應用Roberts最大值運算元比應用Roberts交叉運算元所得到的合成幅度變化小。Roberts邊緣檢測運算元的卷積運算元為

Roberts 邊緣運算元方向模版

由上面兩個卷積運算元對圖像運算後,代入(3-7)式,可求得圖像的梯度幅度值,然後選取門限TH,做如下判斷>TH,為階躍狀邊緣點為一個二值圖像,也就是圖像的邊緣圖像。4.4.1 Prewitt 演算法原理

Prewitt邊緣運算元是一種邊緣樣板運算元。Prewitt 從加大邊緣檢測運算元的模板大小出發,由2×2 擴大到3×3 來計算差分運算元,採用Prewitt 運算元不僅能檢測邊緣點,而且能抑制雜訊的影響。
Prewitt 採用計算偏微分估計的方法,由式(4-9)所示的兩個卷積運算元形成了Prewitt邊緣運算元,樣板運算元由理想的邊緣子圖像構成,依次用邊緣樣板去檢測圖像,與被檢測區域最為相似的樣板給出最大值,用這個最大值作為運算元的輸出

(4-9)

另一種方法是,可以將Prewitt運算元擴展到八個方向,每個模版對特定的邊緣方向做出最大響應,所有8個方向中最大值作為邊緣幅度圖像的輸出,這些運算元樣板由離線的邊緣子圖像構成。依次用邊緣樣板去檢測圖像,與被檢測區域最為相似的的樣板給出最大值。定義Prewitt 邊緣檢測的運算元模版如下:

(1)1方向 (2)2方向 (3)3方向 (4)4方

⑤ Matlab中邏輯運算符有哪些運算規則是什麼

Matlab共4種邏輯運算符和運算規則如下:

元素級(Element-Wise)的邏輯運算符用於對標量或矩陣元素進行邏輯運算,得到一個結果標量或結果矩陣。假設操作數為a和b,則元素級邏輯運算符包括:

1、a&b: 與運算,兩標量或兩元素均非0則返回1,否則返回0. 注意,在if條件語句中,兩個表達式的與操作用&&。

2、a|b: 或運算,兩標量或者兩元素至少有一個是非0則返回1,否則返回0. 在條件語句中,兩個表達式的或用||。

3、~a: 非運算,對作用的標量或矩陣元素求補,如果標量或者矩陣元素為0則結果為1,如果標量或矩陣元素不為0則結果為0。

4、xor(a,b): 異或運算,兩標量或兩元素均非0或均為0則返回0,否則返回1。

(5)matlab運算元演算法擴展閱讀:

計算機編程布爾運算(邏輯運算)

邏輯運算通常用來測試真假值。最常見到的邏輯運算就是循環的處理,用來判斷是否該離開循環或繼續執行循環內的指令。

各種編程語言中的邏輯運算符:

C語言:

與:&&

或:||

非:!

異或:^

Pascal:

與:and

或:or

非:not

異或:xor

⑥ 運用Matlab利用運算元法進行數字圖像邊緣檢測(只需三四行 限於本人知識有限 謝謝各位吖)

clear all;
I=imread('**.***');%自己輸入圖片路徑
GryIm=rgb2gray(I);%變灰度,如果是灰度圖,直接刪掉它
BW=edge(GryIm,'sobel');%後邊的參數『sobel』或'roberts'自己改
subplot(2,2,1);imshow(I);title('Oringal Image');
subplot(2,2,2);imshow(BW);title('Edge detect of sobel');

⑦ 基於matlab的邊緣檢測的robert運算元的演算法怎麼寫

matlab本身有庫函數的。直接調用啊
VC代碼:
void BianYuanJianCeDib::Robert()
{
LPBYTE p_data; //原圖數據區指針
int wide,height; //原圖長、寬
int i,j; //循環變數
int pixel[4]; //Robert運算元
p_data=this->GetData ();
wide=this->GetWidth ();
height=this->GetHeight ();
LPBYTE temp=new BYTE[wide*height]; //新圖像緩沖區
//設定新圖像初值為255
memset(temp,255, wide*height);
//由於使用2*2的模板,為防止越界,所以不處理最下邊和最右邊的兩列像素
for(j=0;j<height-1;j++)
for(i=0;i<wide-1;i++)
{
//生成Robert運算元
pixel[0]=p_data[j*wide+i];
pixel[1]=p_data[j*wide+i+1];
pixel[2]=p_data[(j+1)*wide+i];
pixel[3]=p_data[(j+1)*wide+i+1];
//處理當前像素
temp[j*wide+i]=(int)sqrt((pixel[0]-pixel[3])*(pixel[0]-pixel[3])
+(pixel[1]-pixel[2])*(pixel[1]-pixel[2]));
}
//將緩沖區中的數據復制到原圖數據區
memcpy(p_data, temp,wide*height);
//刪除緩沖區
delete temp;
}

閱讀全文

與matlab運算元演算法相關的資料

熱點內容
logback壓縮 瀏覽:888
冰箱壓縮機可以用氣割嗎 瀏覽:531
菜鳥如何加密商品信息 瀏覽:315
程序員那麼可愛小說結局 瀏覽:862
zenity命令 瀏覽:564
監禁風暴哪個app有 瀏覽:865
程序員的愛心是什麼 瀏覽:591
java中對字元串排序 瀏覽:290
單片機用數模轉換生成三角波 瀏覽:634
外網怎麼登陸伺服器地址 瀏覽:134
什麼人要懂編譯原理 瀏覽:150
源碼改單 瀏覽:714
pdfzip 瀏覽:876
壓縮空氣25兆帕會變成液體嗎 瀏覽:56
linux測試伺服器性能 瀏覽:956
dlp硬碟加密 瀏覽:365
應用加密裡面打不開 瀏覽:861
基於單片機的超聲波測距儀的設計 瀏覽:745
xp自動備份指定文件夾 瀏覽:664
我的世界伺服器如何讓世界平坦 瀏覽:173