StupidBeauty
Read times:1647Posted at:Wed Dec 4 21:11:08 2013
- no title specified

OpenCV2.4.7.0文档翻译:对图像做几何变换,Geometric Image Transformations

warpAffine

对一张图片应用一个仿射变换。

C++: void warpAffine (InputArray src, OutputArray dst, InputArray M, Size dsize, int flags=INTER_LINEAR, int borderMode=BORDER_CONSTANT, const Scalar& borderValue=Scalar())

Python: cv2.warpAffine (src, M, dsize[, dst[, flags[, borderMode[, borderValue]]]]) → dst

C: void cvWarpAffine (const CvArr* src, CvArr* dst, const CvMat* map_matrix, int flags=CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS, CvScalar fillval=cvScalarAll(0) )

Python: cv.WarpAffine (src, dst, mapMatrix, flags=CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS, fillval=(0, 0, 0, 0)) → None

C: void cvGetQuadrangleSubPix (const CvArr* src, CvArr* dst, const CvMat* map_matrix )

Python: cv.GetQuadrangleSubPix (src, dst, mapMatrix) → None

参数:

  • •. src – 输入图片。

  • •. dst – 输出的图片,尺寸为dsize,类型与src 一致。

  • •. M2x3的变换矩阵。

  • •. dsize – 输出图片的尺寸。

  • •. flags – 由插值方法(参考 resize() )和可选的标志位WARP_INVERSE_MAP(它表示M是反向变换( dst src )形成的组合。

  • •. borderMode像素的外插方法(extrapolation method)(参考 borderInterpolate() );当 borderMode=BORDER_TRANSPARENT 时,表示,目标图片中对应于源图片里的“界外点”(“outliers”)的那些像素不会被这个函数修改。

  • •. borderValue – 当指定边界以常量颜色填充时,所使用的颜色值;默认值为0。

当设置了标志位WARP_INVERSE_MAP 时,warpAffine函数使用指定的矩阵来对源图片进行变换:

否则,首先会使用 invertAffineTransform() 来将这个变换做反转,然后使用反转后的矩阵来代替M。这个函数无法进行原地操作。

参考

warpPerspective() resize() remap() getRectSubPix() transform()

注意

cvGetQuadrangleSubPixcvWarpAffine类似,但是那些界外点是使用复制模式来做外插操作的。

英拉

Your opinions
Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands