ガウスfilterによるfitting

조회 수: 4 (최근 30일)
Saito
Saito 2020년 9월 18일
답변: Saito 2020년 10월 12일
添付したファイルのように、xyの7x7のメッシュの座標にガウシアンによってz の値を平滑化した値を表示して3次元で表したいのですが、どのようにZ軸をガウシアンで平滑化したら良いでしょうか?

답변 (2개)

Kenta
Kenta 2020년 9월 26일
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 2020년 10월 12일
試してみたのですが、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))

카테고리

Help CenterFile Exchange에서 平滑化とノイズ除去에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!