我正在尝试创建一个扭曲的图像,其中边框填充像素是透明的。我知道我可以使用 BORDER_CONSTANT = BORDER_TRANSPARENT。但这通过以下方式起作用:
此外,它还提供了 BORDER_TRANSPARENT 方法。这意味着目标图像中的相应像素根本不会被修改。openCV 手册
所以要使边框像素透明,是否需要从透明图像开始。像这个例子:
int cols; // filled
int rows; // filled
Mat myImage; // filled
Mat warpMatrix (3, 4, CV_32FC1); // filled
Mat myWarpedImage;
myWarpedImage.create((cols, rows, CV_8UC4, Scalar(0,0,0,0)); // set all pixels to black, alpha = 0
warpPerspective(myImage, myWarpedImage, warpMatrix, Size(cols, rows), WARP_INVERSE_MAP, BORDER_TRANSPARENT);
这似乎不起作用。我扭曲的图像仍然有黑色背景,没有透明度(当我检查它时,一些照片编辑软件,如 GIMP)。