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 回答