我无法将6x6图像调整为120x120。看起来调整大小的图像稍微偏移了1个像素。使用 cvResize 和 cv :: 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中的一个错误。是这个还是我不正确地使用这个功能?
答案 0 :(得分:2)
Mat bigWarpedImg = Mat(120,120,CV_8UC1);
此行是必需的 - resize
会分配目标Mat
以使其合适,因此Mat bigWarpedImg
会没问题。
不确定调整大小 - 我总是使用
resize(warpedImg, bigWarpedImg, Size(120,120), 0, 0, INTER_NEAREST);
resize
的形式,从未注意到这种行为。我会说这是一个错误,但从文档中它不应该那样。
答案 1 :(得分:0)
可能是因为你正在使用最近的插值。尝试更好的(我认为是双重的)。