正如您在此图中看到的那样,我有 3 条“线”,它们之间的值为零(或 NaN)不是线性的。
我想通过对“线”部分中的所有值进行平均来创建一个具有单个值的 3 个填充区域的图片,并将它们填充到下面的零区域。
平均不是问题,使用填充或补丁命令也不是问题,我的问题是如何通过它的形状来识别这里不是线性或同质的数据,并有效地创建三片数据,因为矩阵中的真实值必须保留。
将不胜感激任何想法!
谢谢
正如您在此图中看到的那样,我有 3 条“线”,它们之间的值为零(或 NaN)不是线性的。
我想通过对“线”部分中的所有值进行平均来创建一个具有单个值的 3 个填充区域的图片,并将它们填充到下面的零区域。
平均不是问题,使用填充或补丁命令也不是问题,我的问题是如何通过它的形状来识别这里不是线性或同质的数据,并有效地创建三片数据,因为矩阵中的真实值必须保留。
将不胜感激任何想法!
谢谢
从这样的颜色图中很难分辨,但看起来列的不均匀性要严重得多。如果是这种情况,那么您最好将每列的值与相邻的两个值进行比较并创建一个偏差索引。
试一试——我会用inhomoge
俚语来形容你不均匀的形象
predictedInhomoge=(inhomoge(1:end-2)+inhomoge(3:end))/2;
biasImage=(predictedInhomoge-inhomoge(2:end-1))./(inhomoge(2:end-1)+predictedInhomoge);
image(255*biasImage/max(biasImage(:)));
如果您的蓝色数据实际上是零,而不仅仅是小值,那么上面的 biasImage 将有很多毫无意义的Inf
值。如果是这种情况,只需将分母从 biasImage 方程中删除,使其不再归一化。
biasImage=(predictedInhomoge-inhomoge(2:end-1));
如果 biasImage 看起来像最高值反映了您的不均匀性,那么您在做生意,只需选择一个阈值并重新计算高于它的值。如果没有,那么我会考虑尝试贝叶斯。
可能不需要说,但任何 NaN 都很容易找到和删除。