
正如你在这张图中看到的,我有3条“线”,它们与其间的0(或NaNs)值不是线性的。
我想要创建一张图片,有3个填充区域,通过平均所有的值在“线”部分,并填充他们的区域下面的零。
平均不是问题,使用填充或补丁命令也不是问题,这里我的问题是如何根据形状识别内容不是线性或同质的数据,并有效地创建三个数据切片,因为矩阵中的实际值必须保持不变。
任何想法都会很感谢!
谢谢
发布于 2012-08-29 10:44:11
从这样的色表中辨别有点困难,但看起来列中的不均匀性更严重。如果是这样,那么最好将每列的值与两个相邻列的值进行比较,并创建一个偏差指数。
试一试--我将用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看起来最高的值反映了你的不均匀性,那么你就是在做生意,只需选择一个阈值并重新计算高于它的值即可。如果没有,那么我会考虑尝试贝叶斯方法。
可能不需要说,但任何NaNs都很容易找到和删除。
https://stackoverflow.com/questions/12169806
复制相似问题