3D マトリックスを平滑化する必要がありMます。平滑化の出力は ですS。matlab コードは次のようになります。
S = smooth3(M, 'box', 3);
問題は、平滑化中にマトリックスの一部のみMを考慮する必要があることです。Aこれらの部品の位置を特定するためのマスクがあります。Aは と同じ大きさMで、 の値は1この点を考慮することを意味し、この点0を無視することを意味します。どうやってするか?
たとえば、次のようにMandがあるとAします。
M=zeros(7,7,7); M(2:6,2:6,2:6)=ones(5,5,5); M(4,4,4)=28;
A=zeros(7,7,7); A(2:6,2:6,2:6)=ones(5,5,5);
平滑化の後、次のような結果が必要です。
S=zeros(7,7,7); S(2:6,2:6,2:6)=smooth3(M(2:6,2:6,2:6), 'box', 3);
matlabでマスクを使用してこの種のスムージングを行う方法を知っている人はいますか? 前もって感謝します。