我在Mat对象中有两个图像,它们都具有相同的维度,我想创建一个bix cv::Mat对象来保存它们
新矩阵的维数为: widthNew = widthOld x数,高度不变。
我发现这样一份副本可以使用以下方法完成:
void cvCopy(const CvArr* src, CvArr* dst, const CvArr* mask=NULL)但是,如何才能为这三个矩阵定义三个不同的时间?
你好,莫阿塔斯
发布于 2012-06-13 16:42:47
您可以使用roi定义一个图像,它实际上是目标图像的一个区域,然后复制到它。请参阅复制一个cv::Mat在另一个ROI中
发布于 2015-12-16 15:58:47
我认为有一个简单的方法可以做到。OpenCV有一个没有文档化的方法,名为hconcat()和vconcat()。第一个是水平级联,第二个是垂直级联。
您可以以这种方式使用它们:
Mat A, B;
... //In this part you initialize the Mat A and Mat B.
Mat H, V; //These are the destination matrices
hconcat(A, B, H);
vconcat(A, B, V);我希望这能帮上忙。
发布于 2012-06-13 21:14:07
您可能想看看cvShowManyImages(),它是一个函数,它接受多个图像作为输入,并将它们连接到一个单独的3通道图像中以显示:
使用的方法是设置单个大图像的ROIs,然后调整输入图像的大小并将其复制到单个大图像上。
如果您创建一个足以容纳其他图像的目标图像,则不需要调整它们的大小。
如果您想知道如何在IplImage <-> cv::Mat之间进行转换,请检查这条线。
https://stackoverflow.com/questions/11019272
复制相似问题