图像的几何变换是指在不改变图像像素值的前提下对图像像素及逆行空间集合变换,常见的几何变换有距离变换、坐标映射、平移、镜像、旋转、缩放、仿射变换等
坐标映射
图像的坐标映射是通过原图像与目标图像之间建立一种映射关系,这种映射关系有两种:一种是计算原图像任意像素在映射后图像后的坐标位置;二是计算变换后图像任意像素反应设在原图像的坐标位置。由原图像映射到目标图像称为正映射,相反地,由目标图像通过映射关系得到原图像称为反映射。由于正映射常常会映射不完全以及出现映射重复现象,一般在图像处理的过程中采取反映射的方式来保证输出目标图像的每个像素都可以通过映射关系在源图像中找到唯一的对应像素。
OpenCV中提供重映射相关操作,重映射是指把一个图像中一个位置的像素通过映射关系转换到零一图像的指定位置。对于输入源图像f(x,y),目标图像为g(x,y),映射关系为T,则满足
需要注意的是通过映射关系T实现得到的目标图像可能存在目标图像像素值是非整数的情况,一般可以考虑插值或向上取整。
void remap(InputArray src,OutputArray dst,InputArray map1,InputArray map2,
int interpolation,int borderMode=BORDER_CONSTANT,const Scallar& borderValue=Scalar())
图像重映射操作。map1表示(x,y)点的坐标或x坐标,可以是CV_16SC2,CV_32FC1,CV_32FC2类型;map2表示y坐标,可以是CV_16UC1,CV_32FC1类型,如果map1为(x,y),map2则可以选择不用;interpolation表示插值方法;borderMode表示边界插值类

文章介绍了图像几何变换的概念,包括平移、镜像、旋转和缩放等,重点讨论了坐标映射和OpenCV中的重映射操作。OpenCV的remap函数用于执行重映射,涉及正映射和反映射,以及插值方法处理非整数像素坐标。提供的代码示例展示了如何使用OpenCV进行图像翻转。
最低0.47元/天 解锁文章
2559

被折叠的 条评论
为什么被折叠?



