b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

word画图板今天来说一下怎么样将这个旋转的文本框矫正,大体(3)

电脑杂谈  发布时间:2018-02-15 00:24:05  来源:网络整理

这是求周长的函数:

float perimeter(const vector<Point2f> &a)//求多边形周长。
{
	float sum = 0, dx, dy;
	for (size_t i = 0;i<a.size();i++)
	{
		size_t i2 = (i + 1) % a.size();
		dx = a[i].x - a[i2].x;
		dy = a[i].y - a[i2].y;
		sum += sqrt(dx*dx + dy*dy);
	}
	return sum;
}

然后就可以看到结果,原来能检测到的两个矩形,只剩下一个了:

接下来就是进行仿射变换:

for (size_t i = 0; i < rotateRects.size(); i++)
	{
		Mat dst(g_src.size(),g_src.type());
		Mat rotMat(2, 3, CV_32FC1);
		float r = (float)rotateRects[i].size.width / (float)rotateRects[i].size.height;
		float  angle = rotateRects[i].angle;
		if (r < 1)
			angle = angle + 90; //修正角度
		rotMat = getRotationMatrix2D(rotateRects[i].center, angle, 1);
		warpAffine(g_src, dst, rotMat, dst.size());
		imshow("最终图像", dst);
		Mat dst1;
		getRectSubPix(dst, rotateRects[i].size, rotateRects[i].center, dst1); //裁剪矩形
		imshow("最终图像2", dst1);
	}

然后得到最终结果:

可以看到我们已经将图片修正

接下来是贴出完整代码:


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-78133-3.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...