opencv中的affineTranform仿射变换

仿射变换主要是将图像旋转,拉伸,它通过一个矩阵将源图像像素变换到指定的目标图像的位置,这个矩阵成为变换矩阵。仿射变换分为两步,第一步是得到变换矩阵,第二步是进行变换。

void CImgPro::SetAffineTranform(const string strPic)
{
	Mat imgSrc = imread(strPic);
	Point2f ptSrc[3];
	Point2f ptDst[3];
	Mat warp(2, 3, CV_32FC1);
	Mat warpDst = Mat::zeros(imgSrc.rows, imgSrc.cols, imgSrc.type());
	ptSrc[0] = Point2f(0, 0);
	ptSrc[2] = Point2f(0, imgSrc.rows - 1.f);
	ptSrc[1] = Point2f(imgSrc.cols - 1.f, 0);

	ptDst[0] = Point2f(imgSrc.cols*0.0f,imgSrc.rows*0.33f);
	ptDst[1] = Point2f(imgSrc.cols*0.85f, imgSrc.rows*0.25f);
	ptDst[2] = Point2f(imgSrc.cols*0.15f, imgSrc.rows*0.7f);
	warp = getAffineTransform(ptSrc, ptDst);
	warpAffine(imgSrc, warpDst, warp, warpDst.size());
	imshow("变换后的图", warpDst);
	imshow("变换前的图", imgSrc);
	waitKey(0);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值