繁体   English   中英

将图像数据复制到cv :: mat的向量中

[英]copying image data to a vector of cv::mat

vector <Mat> redAd(adFileName.size());
fill(redAd.begin(), redAd.end(), NULL);
for (int i = 0; i < adFileName.size(); ++i) {
    cout << adFileName[i].c_str() << endl;
    Mat im = imread(adFileName[i].c_str(), 1);
    cout << im.data << endl;
    redAd.push_back(im);
    cout << redAd[i].data << endl;
}

在这里, adFileName是包含图像文件路径的字符串向量。 ath打印正确。 im.data给出一个非空值。 但是将其推入vector <Mat>并打印元素后,显示“应用程序已停止工作”。

应该如何解决?

因为,您将向量大小设置为adFileName.size(),然后push_back新元素。 您应该使用0大小构造矢量并使用push_back或使用insert。

redAd.insert(redAd.begin()+i,1,im);

可以使用默认的向量构造函数vector <Mat> redAd;而不是用NULL fill (这会增加问题) vector <Mat> redAd; 然后调用redAd.reserve(adFileName.size()) ,然后使循环保持原样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM