ガウスfilterによるfitting

6 views (last 30 days)
Saito
Saito on 18 Sep 2020
Answered: Saito on 12 Oct 2020
添付したファイルのように、xyの7x7のメッシュの座標にガウシアンによってz の値を平滑化した値を表示して3次元で表したいのですが、どのようにZ軸をガウシアンで平滑化したら良いでしょうか?

Answers (2)

Kenta
Kenta on 26 Sep 2020
clear;clc;close all
data=importdata('xyz.xlsx');
intensity=data.data;
xmin=min(intensity(:,1));
ymin=min(intensity(:,2));
data2=intensity;
data2(:,1)=data2(:,1)-xmin+1;
data2(:,2)=data2(:,2)-ymin+1;
out=zeros(max(data2(:,1:2)));
ind=sub2ind(size(out),data2(:,1),data2(:,2));
out(ind)=data2(:,3);
Iblur1 = imgaussfilt(out,2);
figure;imshowpair(out,Iblur1,'montage')
こんにちは、このような感じでいかがでしょうか。ガウシアンfilterについてはこちらのURLは役に立ちそうでしょうか?

Saito
Saito on 12 Oct 2020
試してみたのですが、image processing toolboxが必要なようでしたので、以下の式を使ってCurve fiiting toolboxを使って処理して見ました。ただ、ピークがもともとのデータとかなり異なってしまうので、内挿とガウシアンの組み合わせでもう少しFitさせる計算方法は無いか探しています。
z=f(x,y) = c*exp(-(x-x0)^2/(2*sigmax^2)-(y-y0)^2/(2*sigmay^2))

Categories

Find more on フィルター バンク in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!