[英]reading an array of images in c++ (using opencv)
我想用c ++讀取圖像數組,並編寫了以下示例代碼:
std::vector<Mat> ReadInputImages()
{
Mat tmp1=imread("C:/tmp/im1.jpg");
Mat tmp2=imread("C:/tmp/im2.jpg");
Mat tmp3=imread("C:/tmp/im3.jpg");
Mat tmp4=imread("C:/tmp/im4.jpg");
std::vector<Mat> images;
images={tmp1,tmp2,tmp3,tmp4};
return images;
}
但是它不起作用,我在編譯器上報錯
images={tmp1,tmp2,tmp3,tmp4};
從函數返回圖像數組的最佳方法是什么。
C ++ 11初始化語法為
std::vector<Mat> images={tmp1,tmp2,tmp3,tmp4};
要么
std::vector<Mat> images{tmp1,tmp2,tmp3,tmp4};
但是您不需要聲明一個臨時向量,可以直接返回一個:
std::vector<Mat> ReadInputImages()
{
return std::vector<Mat>{imread("C:/tmp/im1.jpg"),
imread("C:/tmp/im2.jpg"),
imread("C:/tmp/im3.jpg"),
imread("C:/tmp/im4.jpg")};
}
如果您不支持C ++ 11,則只需將元素推回現有向量中,
std::vector<Mat> ReadInputImages()
{
std::vector<Mat> images;
images.push_back(imread("C:/tmp/im1.jpg"));
images.push_back(imread("C:/tmp/im2.jpg"));
images.push_back(imread("C:/tmp/im3.jpg"));
images.push_back(imread("C:/tmp/im4.jpg"));
return images;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.