【问题标题】:How can I perform a composition of Mats with emgu (c#)?如何使用 emgu (c#) 执行 Mats 组合?
【发布时间】:2016-03-18 16:59:23
【问题描述】:

我正在尝试同时旋转和移动垫子。 我的第一个矩阵来自以下指令:

CvInvoke.GetRotationMatrix2D(new Point(0, 0), ia.getAngle(), 1.0, 旋转);

我的第二个矩阵来自以下说明:

 Mat translation = CvInvoke.GetAffineTransform(t1, t2);

其中 t1 和 t2 是两个三角形的顶点 我不想你使用矩阵。我想用 Mat 进行操作。

我怎样才能将这两个矩阵相乘以得到最后一个用于应用 CvInvoke.WarpAffine 方法的矩阵。

我试过了: cvInvoke.Multiply, 它不会转换图像。 我目前正在尝试 CvInvoke.Gemm(rotation, translation, 1.0, null, 0.0, final); 但出现异常:

(发生了“Emgu.CV.Util.CvException”类型的未处理异常 在 Emgu.CV.World.dll 中附加信息:OpenCV:a_size.width == len)

任何帮助将不胜感激。

【问题讨论】:

    标签: c# emgucv


    【解决方案1】:

    我的错。在进行翻译时,矩阵的大小必须为 3x3。所以我修改了我的代码并使用了以下方法: CvInvoke.FindHomography(t1, t2, H); CvInvoke.WarpPerspective(img, big_img, H, ROIRotatedArea.Size); 其中 t1 是源图像的点,t2 是变换后图像的对应点,H 是变换矩阵。 t1、t2 和 H 是矩阵类型。

    希望有一天它会对某人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多