【问题标题】:How to determine high and low threshold value of two matrixes from mean and standard deviation如何从均值和标准差中确定两个矩阵的高低阈值
【发布时间】:2014-04-02 16:54:00
【问题描述】:

我有两个属于高斯分布的矩阵。大小为 3x3。现在,我想估计他们矩阵的上下阈值。我表示每个矩阵的均值和标准差为 μ1;μ2 和 σ1;σ2。高低阈值分别是

T_hight=(μ1+μ2)./2+k1∗(σ1+σ2)./2

T_low=(μ1+μ2)./2-k2∗(σ1+σ2)./2

k1,k2 是常量

我的问题是“我的公式正确吗?因为这是高斯分布,所以 k1=k2,对吗?这是我的代码。你能检查一下吗?”

μ1=mean(v1(:));first matrix 
σ1=std2(v1(:));
μ2=mean(v2(:));second matrix 
σ2=std2(v2(:));
k1=k2=1; 
T_hight=(μ1+μ2)./2+k1∗(σ1+σ2)./2;
T_low=(μ1+μ2)./2-k2∗(σ1+σ2)./2;

【问题讨论】:

  • 我不太清楚你在做什么。什么是k1、k2,“上下阈值”是什么意思?你在添加矩阵吗?如果是这样,请查看 Sum_of_normally_distributed_random_variables 生成的 sd 应该是 sqrt(σ1^2+σ2^2)
  • k1 和 k2 是常量。它们是重量因子。 T_high 和 T_low 是我需要的低阈值和高阈值。我不确定我的公式是否正确?这是第一个问题。你的参考只是两个正态分布的总和。我的分布是两个正态分布的平均值。我认为他们是不同的
  • 平均值只是总和的一半,所以它是(μ1+μ2)./2 +/- k1∗(sqrt(σ1^2+σ2^2))./2

标签: matlab math image-processing probability probability-density


【解决方案1】:

在你使用的公式中,联合标准差是错误的。应该是

T_high=(μ1+μ2)./2+k1∗sqrt((σ1^2+σ2^2)/2);
T_low=(μ1+μ2)./2-k2∗sqrt((σ1^2+σ2^2)/2);

由于您将所有 18 个像素视为属于同一分布,为什么不使用以下方法

v=[v1(:);v2(:)];
μ=mean(v); 
σ=std(v);
k1=k2=1; 
T_high=μ+k1*σ;
T_low=μ-k2∗σ1;

【讨论】:

  • 谢谢。使用std2时我错了。你的方法很好,但如果我的 maxtrix 是大尺寸的呢?能用吗?
  • std2 用于二维矩阵,对于向量,它与 std 相同。所以写std2(v1(:))是可以的,但是写std(v1(:))或者std2(v1)比较地道
  • 如果您的数据是 16 位整数的逻辑 8 位整数的大矩阵,您可能会从使用 std2 中受益。否则,std2 只会调用 std。
猜你喜欢
  • 1970-01-01
  • 2019-10-30
  • 1970-01-01
  • 2021-08-17
  • 2021-10-22
  • 1970-01-01
  • 2014-06-28
  • 1970-01-01
  • 2012-05-10
相关资源
最近更新 更多