【问题标题】:Halcon - get area of region in world coordinatesHalcon - 获取世界坐标中的区域面积
【发布时间】:2020-09-08 04:27:07
【问题描述】:

我有以下代码:

image_points_to_world_plane (CamParam, Pose, intersection_points_row, intersection_points_col, 'mm', X1, Y1)
distance_pp (X1[2], Y1[2], X1[3], Y1[3], Measure1)

此代码返回以 mm 为单位的值。

现在代码如下所示,我需要 Regions1 的面积(以 mm² 为单位)。相反,我以像素为单位获取它们..

access_channel(Image, ImageMono, 1)

threshold(ImageMono, Region, 0, 100)
fill_up(Region, RegionFillUp)

reduce_domain(ImageMono, RegionFillUp, ImageReduced)

threshold (ImageReduced, Regions1, 230, 255)
connection (Regions1, Connection)
select_shape(Connection, Labels, 'area', 'and', 2000, 99999)
area_center(Labels, AreaLabels, RowLabels, ColumnLabels)

AreaLabels 以 px² 为单位,我需要它以 mm² 为单位。但是找不到 region_to_world_plane 之类的东西……怎么办?

【问题讨论】:

    标签: coordinates region halcon


    【解决方案1】:

    尝试查看运算符“image_to_world_plane”。它将转换图像,使像素大小以公制单位(或您喜欢的任何单位)为单位。它还会扭曲图像,使其看起来好像是直接从头顶拍摄的。然后,您在此转换后的图像上执行的任何面积计算都将采用您指定的单位(mm、m 等)。

    【讨论】:

    • 谢谢你,Jake,我已经尝试过了,它成功了,但想知道是否可以在不扭曲图像的情况下完成它。我仍在尝试和学习,因此探索不同的路径来解决问题。 . 谢谢!
    • 嘿,我不确定最好的方法,但“image_to_world_plane”对我来说似乎最简单。由于您向我们展示的图像的视角,该区域中的每个像素都会有不同的大小(即更远的像素 = 更小的区域)。 “image_to_world_plane”扭曲图像的原因是现在每个像素的大小都相同。如果您将相机直接放在顶部而不是某个角度,则可以直接将 px^2 转换为 mm^2 并获得一个很好的近似值。但前提是您的相机直接安装在零件顶部。
    • 感谢我现在正在使用该系统进行尝试,并且情况很好。我在一个新问题上发布了一些问题。非常感谢!
    • 您也可以在技术上尝试“projective_transform_region”。这将占用您的区域并对其进行扭曲。您需要为其计算转换矩阵。同样,必须像您的相机直接在您的部分上方一样计算此转换。然后你可以直接将单位从 px^2 转换为 mm^2 等。
    • 比你!你有时间看看这个问题,因为它与你的答案密切相关吗? stackoverflow.com/questions/61951550/…
    猜你喜欢
    • 2020-03-26
    • 2020-06-28
    • 2021-10-22
    • 1970-01-01
    • 2018-08-27
    • 2021-06-13
    • 2016-02-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多