1

境界パディング ピクセルが透明な歪んだ画像を作成しようとしています。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などの写真編集ソフトウェアを確認すると)。

4

2 に答える 2

3

...そして、入力画像を4チャンネル画像にする方法は

cv::cvtColor(myImage, myImage, CV_BGR2BGRA);
于 2014-02-17T10:02:17.027 に答える
0

warpPerspectiveは、宛先イメージがソースと同じタイプになるように設定します。myImage も CV_8UC4 にする必要があります。そのため、操作後の myWarpedImage には 3 つのチャネルしかありません。

于 2013-09-06T08:37:25.737 に答える