问题描述
当cv2.remap(img,map1,map2,interpolation=cv2.INTER_LINEAR)
的形状为map1
而(h,w,2)
的形状为map2
时,(h,w)
会做什么。
这些映射作为对cv2.fisheye.initUndistortRectifyMap
的输出,但是文档不是很清楚。如果将map2
的变量numpy.array([],dtype=np.int16)
更改为map2
,它仍然会为我提供接近输出的输出,而不会省略cv2.remap
,但存在差异。
在此过程中,img
是否更改了node.geometry?.firstmaterial?.diffuse.contents = #imageLiteral(resourceName: “yourimagename”)
的数据类型?
解决方法
是的,遗憾的是文档尚不清楚。但是,如果您查看cv2.remap
和
cv2.computeMaps
告诉您它们的实际含义。
总而言之,cv2.fisheye.initUndistortRectifyMap
的输出提供了两个映射,其中第一个映射是两个通道矩阵,其中第一个通道是x
坐标,第二个通道是y
坐标用于重新映射。现在不同的是,这是定点精度的结果,而不是典型的浮点精度矩阵。定点主要用于计算重新映射的图像时的计算速度。第二张地图是一张插值系数表,因此当您与第一张地图一起使用时,与使用常规浮点精度矩阵相比,它提供的结果几乎相同,但节省了大量计算。
通过省略第二张地图,您仍然会得到不错的结果,但是第二张地图为空会导致精度损失,因为您没有提供插值表来生成如果使用浮点精度会创建的内容地图。这就是为什么您要查看质量稍差的图像。