簡體   English   中英

在C ++中讀取圖像數組(使用opencv)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM