【问题标题】:How to create a line structuring element in EMgu.C如何在 EMgu.C 中创建线结构元素
【发布时间】:2022-03-03 23:25:40
【问题描述】:

我正在尝试在 EmguCv 中创建一个线性结构元素并根据角度旋转它以用于形态学操作。我熟悉形态学运算,并尝试使用 GetStructuringElement 函数,该函数可让我创建正方形、椭圆或交叉核并指定其大小。

Mat kernelTest = CvInvoke.GetStructuringElement(Emgu.CV.CvEnum.ElementShape.Custom, new Size(6, 6), new Point(-1, -1));

我也可以选择自定义,但问题是我不知道如何创建一个包含一行的特定大小的矩阵并将其用作结构元素。

Example: [0 0 0 0]
         [1 1 1 1]
         [0 0 0 0]
         [0 0 0 0]

如果有人知道如何在 EmguCv 或 opencv 中执行此操作,我将不胜感激。

【问题讨论】:

    标签: opencv image-processing emgucv mathematical-morphology


    【解决方案1】:

    您可以使用kernelTest.Row(int) 获得单行。 More info on the EmguCV Documentation.

    使用此方法,您可以循环内核垫的每一行,获取该行并将该行中的值与1 进行比较。

    【讨论】:

    • 谢谢。我会仔细看看的。是否可以使用它来将行中某个元素的值设置为 1,并将其余元素保持为零?我希望能够创建带有线的矩阵,也可能是对角线
    • 要在 Mat 中设置或获取特定值,您必须手动进行。在这个答案(stackoverflow.com/a/32559496/17667233)中,您可以找到 Mat 类的扩展,可以帮助您完成您提到的事情。当然,你可以用它来迭代你的矩阵,也可以从对角线创建垫子。
    猜你喜欢
    • 2019-11-26
    • 1970-01-01
    • 2018-05-21
    • 2016-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    相关资源
    最近更新 更多