小编Moh*_*ari的帖子

std :: vector的push_back是否创建了参数的深层副本?

我有一个图像列表存储它几个Mat对象,我需要将它们推入Mat的矢量.

vector<Mat> images; 
Mat image;
for ( i = 0; i < n; i++)
{
   \\ importing the i-th image into a mat image; 
   images.push_back(image);
}
Run Code Online (Sandbox Code Playgroud)

这是否会创建图像的深层副本?

当然

vector<Mat> images;
Mat image (100, 100, CV_8UC(1), Scalar::all(255));
images.push_back(image);
image.release(); 
Mat temp (100,100, CV_8UC(1), Scalar::all(0));
image =  temp;
images.push_back(image);
imshow("black", images[0]);
waitKey(0);
imshow("White",images[1]);
waitKey(0); 
Run Code Online (Sandbox Code Playgroud)

这应该显示一个黑色和一个白色图像.

另一个问题

Mat img;
vector<mat> images;
for (i = 1; i < 5, i++)
{
    img.create(h,w,type); // h,w and type are given correctly
    // input an image from …
Run Code Online (Sandbox Code Playgroud)

c++ opencv vector copy-constructor mat

2
推荐指数
1
解决办法
2534
查看次数

标签 统计

c++ ×1

copy-constructor ×1

mat ×1

opencv ×1

vector ×1