react 前端框架如何驱动企业数字化转型与创新发展
999
2022-09-27
opencv放射warpAffine函数和getRotationMatrix2D函数
int main(int argc, char** argv) { Mat src = imread("test1.jpg", 1); //定义两组点,代表两个三角形 Point2f srcTriangle[3]; Point2f dstTriangle[3]; Mat rotMat(2, 3, CV_32FC1); Mat warpMat(2, 3, CV_32FC1); Mat src1, src2, src3; // 设置目标图像的大小和类型与源图像一致 src1 = Mat::zeros(src.rows, src.cols, src.type()); //设置源图像和目标图像上的三组点以计算仿射变换 srcTriangle[0] = Point2f(0, 0); srcTriangle[1] = Point2f(static_cast
C++: Mat getRotationMatrix2D(Point2fcenter, double angle, double scale)
第一个参数,Point2f类型的center,表示源图像的旋转中心。
第二个参数,double类型的angle,旋转角度。角度为正值表示向逆时针旋转(坐标原点是左上角)。第三个参数,double类型的scale,缩放系数。C++: void warpAffine(InputArray src,OutputArray dst, InputArray M, Size dsize, int flags=INTER_LINEAR, intborderMode=BORDER_CONSTANT, const Scalar& borderValue=Scalar())第一个参数,InputArray类型的src,输入图像,即源图像,填Mat类的对象即可。第二个参数,OutputArray类型的dst,函数调用后的运算结果存在这里,需和源图片有一样的尺寸和类型。第三个参数,InputArray类型的M,2×3的变换矩阵。第四个参数,Size类型的dsize,表示输出图像的尺寸。第五个参数,int类型的flags,插值方法的标识符。此参数有默认值INTER_LINEAR(线性插值),可选的插值方式如下:
INTER_NEAREST - 最近邻插值INTER_LINEAR - 线性插值(默认值)INTER_AREA - 区域插值INTER_CUBIC –三次样条插值INTER_LANCZOS4 -Lanczos插值CV_WARP_FILL_OUTLIERS - 填充所有输出图像的象素。如果部分象素落在输入图像的边界外,那么它们的值设定为 fillval.CV_WARP_INVERSE_MAP –表示M为输出图像到输入图像的反变换,即 。因此可以直接用来做象素插值。否则, warpAffine函数从M矩阵得到反变换。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~