赞
踩
迄今为止所看到的仿射和透视变换实际上是一个更一般过程的具体实例。这两种转换都具有相同的基本行为:它们从源图像中的一个位置获取像素,并将它们映射到目标图像中的另一个位置。事实上,还有其他有用的操作具有相同的结构。下面看看OpenCV如何实现映射转换。
1、从笛卡尔转换为极坐标cv :: cartToPolar():
要从笛卡尔坐标映射到极坐标,使用函数cv :: cartToPolar():
cv::cartToPolar():
void cv::cartToPolar(
cv::InputArray x,
cv::InputArray y,
cv::OutputArray magnitude,
cv::OutputArray angle,
bool angleInDegrees = false
);
前两个参数x和y是单通道数组。这里表示的不仅仅是一个点列表,而是一个矢量场,任何给定点处的矢量场的x和y分量由该点处的数组x和y的值表示。每个数值的大小代表在x和y处该点的向量的长度,角度中的每个点表示该向量的方向。以角度记录的角度默认为弧度,即[0,2π)。但是,如果参数angleInDegrees设置为true,则角度数组将以度[0,360)记录。注意角度是使用atan2(y,x)计算的。
2、从极坐标转换为笛卡尔坐标cv :: polarToCart():
函数cv :: polarToCart ()执行从极坐标到笛卡尔坐标的反向映射。
void cv::polarToCart(
cv::InputArray magnitude,
cv::InputArray
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。