OpenCV中如何将独立x、y映射转换为2通道矩阵映射?
完全可以。convertMaps 提到的反向转换,就是用来把拆分存储的x、y两个单通道映射,合并成单张2通道(x,y)格式映射的,刚好匹配你现在的入参需求。
具体调用的时候参数按规则传就行:
- 把存x坐标的单通道映射传给入参
map1,存y坐标的单通道映射传给入参map2,注意两个矩阵的尺寸、数据类型必须完全一致,一般用CV_32FC1浮点格式就不会出兼容性问题 - 输出参数里
dstmap1传你准备存结果的空矩阵,dstmap2传个空的cv::Mat对象即可 - 插值标志
nninterpolation按你实际需要的精度选择,函数执行完成后dstmap1输出的就是CV_32FC2类型的单张2通道映射,直接传入你所用的、仅支持单2通道入参的逆映射算法即可。
补充个实用提示:等你把映射做完逆处理,如果后续要喂回OpenCV的remap()函数使用,还可以再调用一次convertMaps把2通道映射转回拆分的x、y映射,也可以直接转成16位定点格式,能减少运行时内存占用,插值计算速度也会更快。
内容的提问来源于stack exchange,提问作者monopoly_lover
相关产品推荐
相关产品推荐

