Re: [討論] 請問LAPLACE的遮罩銳化已回收
※ 引述《wade0222 (熱火一哥)》之銘言:
: 這個遮罩矩陣是[-1 -1 -1
: -1 9 -1
: -1 -1 -1]
: %拉普拉斯
: g_output=zeros(h,w);
: for i=2:h-1
: for j=2:w-1
: sum=0;
: for m=-1:1
: for n=-1:1
: if m==0 & n==0
: sum;
: else
: sum=sum+as1(i+m,j+n); <==這行我的理解是把遮罩大小
: end 做出來的意思
: end
: end
: g_output(i,j)=9*as1(i,j)-sum; <==這行,我不理解
: end 我覺得應該是寫出遮罩中間9的意思
: end 但是不懂為什麼要-sum
: 不懂哪裡有做出周圍的-1
: 請前輩教教我這個迴圈到底要怎麼看@@拜託了
: 感謝!!
我想你應該知道遮罩是怎麼運算的, 就是乘上遮罩各對應位置的係數後加總,所以
針對第一個問題, sum=sum+as1(i+m, j+n); 這行就是把遮罩-1的部份加起來,
但是注意這裡它加起來是正數. 而g_output(i,j)=9*as1(i,j)-sum;
可以看成g_output(i,j)=9*as1(i,j)+(-sum); 這裡的-sum就是個負數了,
這樣應該明白了吧.
我稍微改寫一下程式,跟原程式是做同樣的事情,看這樣你會不會比較清楚
g_output = zeros(h,w);
Mask = [-1,-1,-1; -1,9,-1; -1,-1,-1]; %宣告一個遮罩
for i = 2 : h-1
for j = 2 : w-1
sum = 0;
for m = -1 : 1
for n = -1 : 1
%下面這行是as1裡的元素值各自乘上遮罩裡相對應位置的係數,
%然後加總
sum = sum + as1(i+m,j+n)*Mask(m+2,n+2);
end
end
g_output(i,j) = sum;
end
end
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.38.3.97
推
01/15 06:18, , 1F
01/15 06:18, 1F
→
01/15 06:23, , 2F
01/15 06:23, 2F
→
01/15 06:28, , 3F
01/15 06:28, 3F
→
01/15 06:28, , 4F
01/15 06:28, 4F
→
01/15 06:52, , 5F
01/15 06:52, 5F
※ 編輯: james1022jk 來自: 114.38.8.31 (01/15 07:03)
→
01/15 15:02, , 6F
01/15 15:02, 6F
→
01/15 15:05, , 7F
01/15 15:05, 7F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):