0

6x6 の画像を 120x120 にサイズ変更できません。リサイズされた画像が 1 ピクセルずれたように見えます。これはcvResizecv::resizeで発生します。私のコードは次のようになります。

warpPerspective(greyImg, warpedImg, homography, Size(6, 6));
Mat bigWarpedImg = Mat(120,120,CV_8UC1);
resize(warpedImg, bigWarpedImg, Size(0,0), 20, 20, INTER_NEAREST);

warpedImgは次のようになります (認識しやすいように gimp でサイズを変更しました): http://picasaweb.google.com/103165673068768416583/Opencv#5565090881969794706

bigWarpedImgは次のようになります: http://picasaweb.google.com/103165673068768416583/Opencv#5565090880773608210

ご覧のとおり、bigWarpedImg では、左と上の境界線が小さすぎますが、右と下の境界線が太すぎます。OpenCVのバグのようです。これはこれですか、それともこの機能を間違って使用していますか?

4

2 に答える 2

2
Mat bigWarpedImg = Mat(120,120,CV_8UC1);

この行は不要です -resizeターゲットを割り当てMatて適合させるので、Mat bigWarpedImg問題ありません。

サイズ変更についてよくわからない - 私はいつも

resize(warpedImg, bigWarpedImg, Size(120,120), 0, 0, INTER_NEAREST);

の形でresizeあり、そのような行動に気づいたことはありません。私はそれがバグだと思いますが、ドキュメントからはそのように振る舞うべきではありません。

于 2011-01-22T21:48:52.040 に答える
0

最も近い補間を使用している可能性があります。より良いものを試してください(バイキュービックだと思います)。

于 2011-01-24T13:38:11.993 に答える