[問題] 只針對矩陣中的某個區域做運算

作者: waterCoka (Coka)   2015-01-17 20:15:19
有個5x5矩陣M如下:
M = [ A B C o o ;
D E F o o ;
G H I o o ;
o o o o o ;
o o o o o ;
]
A B C
D E F
如果我想針對 G H I 的3x3區域做運算,讓E跟它鄰近的值做計算後存回去
例如把(E*A)/2、(E*B)/2、(E*C)/2、...、(E*I)/2的值加總起來,接著把加總的值
除以這些鄰居的數量,最後存回E中
最後的需求是矩陣中的每個位置都套用此方法run過一便,就像是matlab中的imfilter
不希望使用到迴圈的原因是,當矩陣過大時,耗時會很久
(1)這有點類似於imfilter的概念,請問該如何做會比較好?
(2)另外想到的問題,拿上面的例子來說,假設已經有一個3x3的R矩陣可以讓目前的
位置跟它的鄰居做計算。但如果我把這個R矩陣套用到A的位置時,要怎麼得知A的
附近只有B、D、E這3個鄰居呢? (p.s.這樣做上面提到的運算時才知道要除以幾)
希望各位先進能夠給點建議或方法
謝謝
作者: shane (皇上)   2015-01-19 02:25:00
conv2, kernel=[1 1 1;1 0 1;1 1 1]
作者: waterCoka (Coka)   2015-01-19 20:34:00
謝謝你 我已經了解了

Links booklink

Contact Us: admin [ a t ] ucptt.com