2013-05-13 244 views
0

我需要矩阵的元素方形。在Matlab中,我找到这个代码: 如果A是矩阵,那么A.^2计算矩阵的元素明智的平方。 Emgu Cv中有没有相同的功能?EMGU中矩阵的元素方形CV

其实我需要一个矩阵的标准差。如果存在计算标准差的方法计算标准差的功能,那么它对我更有帮助。

回答

1

逐元素平方相同与基质本身逐元素乘法。所以,下面的代码行应该做的伎俩(假设Matrixmat):

mat._Mul(mat); 

要知道,虽然这取代了原来的mat。如果你想拥有它保存的,你可以这样做:

Matrix<byte> squaredMatrix = mat.Copy(); 
squaredMatrix._Mul(mat); 
1

如果您想要标准偏差,那么Image级别提供方法AvgSdv,该方法包装OpenCV等效函数cvAvgSdv。也许你可以先将Matrix复制到Image

实现下面复制用于信息:

/// <summary> 
/// Calculates the average value and standard deviation of array elements, independently for each channel 
/// </summary> 
/// <param name="average">The avg color</param> 
/// <param name="sdv">The standard deviation for each channel</param> 
/// <param name="mask">The operation mask</param> 
public void AvgSdv(out TColor average, out MCvScalar sdv, Image<Gray, Byte> mask) 
{ 
    average = new TColor(); 
    MCvScalar avgScalar = new MCvScalar(); 
    sdv = new MCvScalar(); 

    CvInvoke.cvAvgSdv(Ptr, ref avgScalar, ref sdv, mask == null ? IntPtr.Zero : mask.Ptr); 
    average.MCvScalar = avgScalar; 
}