MATLAB Answers

ガウスfilterによるfitting

4 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))

Community Treasure Hunt

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

Start Hunting!