我正在尝试使用OpenCV调整cv::Mat img
的大小。当我使用功能cv::resize()
时,我将src
和dst
img设置为与输入img相同,如cv::resize(img, img)
。当我测试程序时,到目前为止它能正常工作。但是我有点困惑如何实现调整大小功能,因为当我阅读文档时,我们需要在调整大小之前预先分配dst
img。设置src和dst img与opencv调整大小函数相同
任何人都可以解释给我看? 谢谢。
我正在尝试使用OpenCV调整cv::Mat img
的大小。当我使用功能cv::resize()
时,我将src
和dst
img设置为与输入img相同,如cv::resize(img, img)
。当我测试程序时,到目前为止它能正常工作。但是我有点困惑如何实现调整大小功能,因为当我阅读文档时,我们需要在调整大小之前预先分配dst
img。设置src和dst img与opencv调整大小函数相同
任何人都可以解释给我看? 谢谢。
正如@Micka指出的那样,您不需要预先分配dst
。但是,如果你愿意,你可以用不同的调用约定。
功能resize
调整图像大小src
向下或向上为指定的大小。请注意,初始dst
类型或大小未考虑在内。相反,尺寸和类型来源于src
,dsize
,fx
和fy
。如果你想调整src
,使其符合预先创建dst
,你可以调用该函数如下:
// explicitly specify dsize=dst.size(); fx and fy will be computed from that.
resize(src, dst, dst.size(), 0, 0, interpolation);
我想resize()会使用某种缓冲来存储调整大小的img,然后再复制到dst img,对吧?因为我们可以使用调整大小(img,img)。 – Bent 2014-09-29 06:48:09
你不需要在C预先分配DST ++版本。 – Micka 2014-09-26 04:59:50