我需要矩阵的元素方形。在Matlab中,我找到这个代码: 如果A
是矩阵,那么A.^2
计算矩阵的元素明智的平方。 Emgu Cv中有没有相同的功能?EMGU中矩阵的元素方形CV
其实我需要一个矩阵的标准差。如果存在计算标准差的方法计算标准差的功能,那么它对我更有帮助。
我需要矩阵的元素方形。在Matlab中,我找到这个代码: 如果A
是矩阵,那么A.^2
计算矩阵的元素明智的平方。 Emgu Cv中有没有相同的功能?EMGU中矩阵的元素方形CV
其实我需要一个矩阵的标准差。如果存在计算标准差的方法计算标准差的功能,那么它对我更有帮助。
逐元素平方相同与基质本身逐元素乘法。所以,下面的代码行应该做的伎俩(假设Matrix
叫mat
):
mat._Mul(mat);
要知道,虽然这取代了原来的mat
。如果你想拥有它保存的,你可以这样做:
Matrix<byte> squaredMatrix = mat.Copy();
squaredMatrix._Mul(mat);
如果您想要标准偏差,那么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;
}
如果你的数据是一个图像,而不是一个矩阵,可以使用图像(TColor,TDepth).Mul方法:
http://www.emgu.com/wiki/files/2.3.0/document/html/01b9ba23-0058-3167-16ee-206a4befd7f3.htm
下面是代码:
Iamge.Mul(Iamge, 1);
对于一个矩阵的标准偏差,尝试图片(TColor,TDepth).AvgSdv方法。