51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Halcon MapImage 复刻 remap

之前介绍了 OpenCV 的 remap 函数,Halcon 中也有类似函数 MapImage,本文介绍 MapImage,并将 OpenCV 的 remap 转换为 MapImage。

map_image {#map-image}

  • 函数使用
  • 其中:
    • Image: 需要被映射修改的图像
    • Map: 映射矩阵
    • ImageMapped: 映射结果
  • 可以看到核心在于 Map 矩阵如何定义和使用。
  • Map 为和原始图像一样大小的 5 通道图像,第一个通道格式为 32 bits 深度int4 类型,表示的是每个需要被映射的图像像素位置对应的原始图像像素编号

这是一张宽度 3072 的图像的映射示例,每个像素的值表示的是原始图像的像素编号

  • Map 的第2-5个通道的格式为 16 bits 的 uint2 类型,表示的是插值四个像素的占比,第一个通道指向的是四个相邻像素中左上角的一个
  • 后四个通道指向的分别是四个比例:

  • uint2 表示比例的思路是四个数的和是 65535(可能会有1-2的误差),根据数值占 65535 的比例来决定四个像素的插值比例
  • 每个通道的图像都看起来挺神奇的,这里展示一张示例图像

remap -> map_image {#remap-map-image}

  • OpenCV 的 remap 需要两个 map 作为输入,可以在 C++ 中将这两个 map 转为 halcon 的 map

参考资料 {#参考资料}



文章链接:
https://www.zywvvd.com/notes/coding/halcon/halcon-mapimage/halcon-mapimage/

赞(1)
未经允许不得转载:工具盒子 » Halcon MapImage 复刻 remap