如何将一个斜放的矩形从一个图像里复制出来?
大致思路如下: 1、创建一个与源图像src 的 size 相同的单通道矩阵 mask ,并 cvZero( mask ); 2、用 cvPolyLine() 将已知的4个角点连成一个四边形,画在 mask 上; 3、用 cvFillConvexPoly 或 cvFillPoly 将 mask 上的四边形涂色; 4、用 cvCopy(src, dst, mask) 将四边形区域复制到 dst。 |
在 cvCopy 之后可以用 cvResize 将图像转换至较小的一幅图像上,具体地:
1-4 ……;
5、求出能包含已知角点的、水平/垂直的最小矩形 minrect (可以用 cvBoundingRect 、也可以自行编程获取 minrect);
6、创建一幅与 minrect 相同大小的图像 scaled_dst ;
7、将 cvCopy 所得的 dst 图像的 ROI 设置为 minrect 的位置:cvSetImageROI(dst, minrect) ;
8、获得所需的小图像:cvResize(dst, scaled_dst)
1-4 ……;
5、求出能包含已知角点的、水平/垂直的最小矩形 minrect (可以用 cvBoundingRect 、也可以自行编程获取 minrect);
6、创建一幅与 minrect 相同大小的图像 scaled_dst ;
7、将 cvCopy 所得的 dst 图像的 ROI 设置为 minrect 的位置:cvSetImageROI(dst, minrect) ;
8、获得所需的小图像:cvResize(dst, scaled_dst)
这个过程是复制出了这个矩形,但这个矩形在新的scaled_dst仍为斜的&#x