假设我有一个200x200像素的图像。我想要一个800x800像素的版本,我基本上复制200x200图像,并填充800x800图像(将较小的图像平铺到较大的图像中)。
在openCV中你会怎么做呢?看起来很简单,但我不知道如何创建另一个与模式类型相同的cv::Mat,但尺寸更大(Canvas尺寸),或者如果可以使用原始的200x200像素图像并增加它的行和列,然后简单地使用循环将角粘贴到图像的其余部分。
我用的是openCV 2.3,我已经对固定尺寸的图像做了一些处理,但是当涉及到增加矩阵的尺寸时,我有点不知所措。
3条答案
按热度按时间bweufnob1#
你可以使用repeat函数:
a2mppw5e2#
仅供参考-@karlphillip回复中的博客,基本思想是使用
cvSetImageROI
和cvResetImageROI
。两者都是C API。在以后的版本中,例如v2.4和3.x,可以定义具有所需位置和尺寸的
Rect
,并将所需部分称为img(rect)
。C API中的示例(函数式风格):
在C++ API中使用类:
C++中的另一种方法(复制图像):
8i9zcol23#
在C++中,你可以这样做: