如何在Matlab中计算距离并估计异构网格的质量?

时间:2016-02-29 07:55:00

标签: matlab image-processing

我想评估网格质量,其中所有坐标在实际情况中都不同。 信号是ECG信号,平均寿命为75年。 我的任务是评估测量时的年龄,这是一个反问题。 我认为3D情况的二维逼近很难(由Abo-Zahhad完成here)有三条线(胸部2条,左腿条1条MIT-BIT arrhythmia database):

enter image description here

其中 f 是R ^ 2中的分段连续函数,\ epsilon是误差矩阵, A 是2D矩阵。 现在,我评估x轴(时间)的平均网格距离和y轴(能量)的平均网格距离。 我认为这可以通过Matlab的图像分析工具箱来完成。 但是,我不确定工具箱的方法有多完整。 我认为必须在不均匀和非连续网格的设置中使用变换方法。一种方法是网格线采样形状的精确线性时间欧几里德距离变换 Joakim Lindblad et all。 该方法呈现距离变换(DT),其将每个图像点的最小距离分配给所选择的图像点子集。 这种方法通常是图像分析中许多方法的算法基础。

enter image description here

我用bwdist(二进制图像的距离变换)和棋盘(返回空方矩阵),cityblock,euclidean和quu-euclidean测试了不成功的情况,其中最后三个选项返回完整矩阵。

另一个伪代码

% https://stackoverflow.com/a/29956008/54964
%// retrieve picture
imgRGB = imread('dummy.png');

%// detect lines
imgHSV = rgb2hsv(imgRGB); 
BW = (imgHSV(:,:,3) < 1);
BW = imclose(imclose(BW, strel('line',40,0)), strel('line',10,90));

%// clear those masked pixels by setting them to background white color
imgRGB2 = imgRGB;
imgRGB2(repmat(BW,[1 1 3])) = 255;

%// show extracted signal
imshow(imgRGB2)

我认为这种方法在这里不起作用,因为网格不一定是连续的,也不是理想的。

基于Lumbreras' answer

的pdist

在实际示例中,所有坐标都不同,因此pdist汉明和jaccard在实际数据中始终为1。 选项euclidean,cytoblock,minkowski,chebychev,mahalanobis,cosine,correlation和spearman提供了一些数据描述。 然而,这些选项使我现在对这样的完整矩阵没有多大意义。 我想估计信号能存活多久。

来源

  1. 学家Müller和S. Siltanen。实际应用中的线性和非线性逆问题。
  2. EIT采用D-bar法:不连续的心肺模型。 http://wiki.helsinki.fi/display/mathstatHenkilokunta/EIT+with+the+D-bar+method%3A+discontinuous+heart-and-lungs+phantom于2016年2月29日访问。

2 个答案:

答案 0 :(得分:1)

Matlab中有一个函数被定义为pdist,它计算矩阵中所有行元素之间的对称距离,并允许您选择要使用的距离类型(欧几里得,城市街区,相关性)。你是在经历这样的事吗?不确定我理解你的问题!

喝彩!

答案 1 :(得分:0)

简单地说,不要在后处理中这样做。身体的这些伪像可以是关于光栅图像,关于观察者和/或......在信号生成/处理步骤中的质量保证。 评估原始信号要比它的观点容易得多。