全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:6813
推到 Plurk!
推到 Facebook!

Matlab 邊緣偵測 不用edge或Canny函式

尚未結案
MVP2000
一般會員


發表:13
回覆:16
積分:5
註冊:2007-04-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-11-07 17:22:22 IP:61.231.xxx.xxx 訂閱
因為對Matlab 工具很不熟 也不知道著樣打對不對 請問大家有何種方法可以達到邊緣偵測
不要借用edge函式 Canny函式 Sobel函式來達到邊緣偵測 (我們老師不準我用C寫 只准我用Matlab 而Matlab我又不是很熟)
請問哪些大哥 或 高手 可以指點我嗎?
例如 Matlabe 怎麼像C一樣宣告9個空陣列? 然後怎麼將圖片數值轉換成float 像C的 (float)圖片數值?

[A,map]=imread('homework3.bmp');
[x y] = size(A);
a=[-1 -1 -1 -1 8 -1 -1 -1 -1];
b=[0 0 0 0 0 0 0 0 0];
z=0.00

for i = 1:y
for j = 1:x
b(1)=A(i-1,j-1)
b(2)=A(i-1,j)
b(3)=A(i-1,j 1)
b(4)=A(i,j-1)
b(5)=A(i,j)
b(6)=A(i,j 1)
b(7)=A(i 1,j-1)
b(8)=A(i 1,j)
b(9)=A(i 1,j 1)

end
end

------
May I ask you something ?
MVP2000
一般會員


發表:13
回覆:16
積分:5
註冊:2007-04-03

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-11-08 21:42:24 IP:61.231.xxx.xxx 訂閱
A=imread('homework3.bmp');
a=[-1 -1 -1 -1 8 -1 -1 -1 -1];
b=[0 0 0 0 0 0 0 0 0];
x=235
y=299
for i = 1:y
for j = 1:x
b(1)=A(i-1,j-1)
b(2)=A(i-1,j)
b(3)=A(i-1,j 1)
b(4)=A(i,j-1)
b(5)=A(i,j)
b(6)=A(i,j 1)
b(7)=A(i 1,j-1)
b(8)=A(i 1,j)
b(9)=A(i 1,j 1)
z=(c(1)*b(1) c(2)*b(2) c(3)*b(3) c(4)*b(4) c(5)*b(5) c(6)*b(6) c(7)*b(7) c(8)*b(8) c(9)*b(9))
zz=5*z;
if(zz<0)
-zz;
end
if(zz>255)
zz=255
end
end
end
我出現以下的錯誤 ~ 我不修改 請問有誰會幫我修正一下嗎?
??? Subscript indices must either be real positive integers or logicals.
------
May I ask you something ?
wyLiao2008
一般會員


發表:0
回覆:2
積分:0
註冊:2008-06-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-06-26 20:38:54 IP:203.68.xxx.xxx 訂閱
C語言宣告空間是從0開始 ex. A[17] = A[0] ~ A[16];
MATLAB語言是從1開始 ex. A[17] = A[1] ~ A[17];

所以
for i = 1:y
for j = 1:x
b(1)=A(i-1,j-1) % 當 i, j == 1, b(1) = A(0,0 )
b(2)=A(i-1,j)
b(3)=A(i-1,j 1)


因為是第一次回覆,如果表達不佳,請見諒!
系統時間:2024-12-04 1:15:42
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!