image-processing - 如何正确使用cvResize/resize?

我无法将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中的错误。这是一个,还是我使用该功能不正确?

最佳答案

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

这行是不必要的-resize将分配目标Mat以使其适合,因此Mat bigWarpedImg会很好。

不确定调整大小-我总是使用
resize(warpedImg, bigWarpedImg, Size(120,120), 0, 0, INTER_NEAREST);

格式的resize,从没注意到这种行为。我会说这是一个错误,但从文档来看,它不应该那样做。

https://stackoverflow.com/questions/4770031/

相关文章:

image-processing - openCv中的边缘检测导致运行时错误

c# - 即使解决方案中的示例正常工作,emgucv示例的精确副本也无法工作

opencv - 如何使用 EmguCV 检测小 Blob ?

opencv - 在OpenCV中使用libjpeg将IplImage压缩为JPEG

docker - 使用 yum 进行多阶段构建

image-processing - 为什么 cv::Dilate 的第三个参数失败?

opengl - 纹理会影响对象的颜色

android - 适用于Android的OpenCV示例

qt - Qt GUI和OpenCV2.2镜像之间的干扰问题

python - 灰度转换问题