gen_arbitrary_distortion_map
名称
gen_arbitrary_distortion_map —生成投影图,该投影图描述任意失真的图像和校正后的图像之间的映射。
签名
gen_arbitrary_distortion_map(:地图:GridSpacing,行,列,GridWidth,ImageWidth,ImageHeight,地图类型:)
描述
gen_arbitrary_distortion_map计算 任意失真的图像和校正后的图像之间的映射图。行和列的坐标描述了扭曲的网格,该网格将映射到校正图像中的常规网格上。(变形的)网格点的坐标必须在Row和Column中逐行传递。GridWidth是点网格的宽度(以网格点为单位)。GridSpacing是经过校正的图像中两个相邻网格点之间的距离。由于网格点始终映射到其相应像素的中心,因此网格单元需要( GridSpacing +1)x(整流图像中的GridSpacing +1)像素。但是请注意,当然,相邻的网格单元重叠一个像素。
要计算映射Map,还必须传递要校正的图像的width ImageWidth和height ImageHeight。
MapType用于指定输出Map的类型。如果选择“双线性”插值,则“地图”由一个包含五个通道的图像组成。在结果图像中每个像素的第一通道中,存储输入图像中像素的线性化坐标,该坐标相对于变换后的坐标位于左上角。其他四个通道包含用于双线性插值的转换坐标的四个相邻像素的权重,顺序如下:
2 | 3 |
4 | 5 |
例如,第二通道包含相对于转换后的坐标位于左上方的像素的权重。如果选择“ coord_map_sub_pix”,则“地图”由一个矢量场图像组成,其中,对于所得图像的每个像素,将存储输入图像中的子像素精确坐标。
如上所述,在失真图像中需要四个相邻像素来内插映射图像中一个像素的灰度值。如果这些像素中的至少一个位于失真图像的外部,则无法计算灰度值。相应的Map 域的域将相应减少。
在相反gen_grid_rectification_map, gen_arbitrary_distortion_map当坐标(用于行,列的网格点的失真图像中)是已知的或在图像的相关部分包括规则的栅格结构,其坐标可以衍生自的。
如果要在另一个程序中重新使用创建的地图,则可以使用操作符write_image将其另存为多通道图像,格式为 'tiff'。
并行化
多线程类型:可重入(与非排他运算符并行运行)。
多线程作用域:全局(可以从任何线程调用)。
未经并行处理。
参量
包含映射数据的图像。
扭曲图像中网格点的行坐标。
点网格的宽度(网格点数)。
结果
如果所有参数值均正确,则gen_arbitrary_distortion_map返回2(H_MSG_TRUE)。如有必要,将引发异常。

