【问题标题】:emgu cv matrix access row and cloums with channel c#emgu cv矩阵访问行和具有通道c#的cloums
【发布时间】:2011-08-26 00:21:05
【问题描述】:

如何访问具有指定行、列和通道的矩阵?

Matrix<double> tensor = new Matrix<double>(yMax + 1, xMax, 4); //4 channels
CvInvoke.cvZero(tensor);
for(int k  = 0; k<x.Count; ++k)
{
    double gx = Math.Cos(angle[k] * Math.PI / 180 + 90 * Math.PI / 180 + Math.PI);
    double gy = Math.Sin(angle[k] * Math.PI / 180 + 90 * Math.PI / 180 + Math.PI);
    tensor[y[k], x[k]] = gx * gx; //How can I access other channels?
    tensor.Data[y[k], x[k] + 1] = gx * gy; //How can I access other channels?
    tensor.Data[y[k], x[k] + 2] = gx * gy; //How can I access other channels?
    tensor.Data[y[k], x[k] + 3] = gy * gy; //How can I access other channels?
}

【问题讨论】:

    标签: c# matrix channel computer-vision emgucv


    【解决方案1】:

    我认为你应该看看Split() 方法,然后在通道数组上循环。

    【讨论】:

    • 如果您根据我的建议发布代码并将其标记为已回答,这可能会很有用:)
    【解决方案2】:

    这是从Mat的两个独立通道获取像素值的示例:

    var flowResult = new Mat();
    CvInvoke.CalcOpticalFlowFarneback(_scaledDownFrameOneColorImagePrev, scaledDownFrameOneColorImage, flowResult, 0.25, 3, 15, 5, 1, 1.2, OpticalflowFarnebackFlag.Default);
    
    var flowResultChannels = flowResult.Split();
    var flowResultX = flowResultChannels[0];
    var flowResultY = flowResultChannels[1];
    
    for (var r = 0; r < flowResult.Rows; r++)
    {
        for (var c = 0; c < flowResult.Cols; c++)
        {
            var xValue = new float[1];
            Marshal.Copy(flowResultX.DataPointer + (((r * flowResultX.Cols) + c) * flowResultX.ElementSize), xValue, 0, 1);
    
            var yValue = new float[1];
            Marshal.Copy(flowResultY.DataPointer + (((r * flowResultY.Cols) + c) * flowResultY.ElementSize), yValue, 0, 1);
    
            if (Math.Abs(xValue[0]) > 3 || Math.Abs(yValue[0]) > 3)
            {
                Console.WriteLine("{0} {1}", xValue[0], yValue[0]);
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2011-11-04
      • 1970-01-01
      • 1970-01-01
      • 2016-11-16
      • 2014-02-01
      • 1970-01-01
      • 2013-12-21
      • 2012-09-02
      • 1970-01-01
      相关资源
      最近更新 更多