2017-02-01 61 views
-4

我有一個包含一些圖像的文件夾。我沒有圖像文件的名稱。我正在用C++使用openCV。我想讀取文件夾中的任何.jpeg圖像,並在讀取圖像時將此圖像的文件名稱作爲字符串。可能嗎?我可以使用imread方法嗎?閱讀任何.jpg OpenCV文件夾中的圖像(C++)

我很欣賞你的幫助

+3

是的,是的。另外我不喜歡這麼說,但如果你是谷歌的「imread opencv」,第一個鏈接是關於如何打開圖像的例子,第二個鏈接是「imread」文檔。 – SingerOfTheFall

+0

可能重複[無法讀取圖像在opencv](http://stackoverflow.com/questions/25904628/can-not-read-image-in-opencv) – Jonas

+0

@SingerOfTheFall感謝您的善意回應! Mr.Mrs Genius,但我想讀取文件中的任何圖像,我沒有圖像文件名稱,我想在讀取時將字符串作爲字符串。我無法在Google上找到任何信息。 – CodeJam

回答

1

如果你有機會獲得提升:

boost::filesystem::directory_iterator itr(boost::filesystem::path("your_folder_path")); 

for(itr; itr != boost::filesystem::directory_iterator(); ++itr) 
{ 
    if(itr->path().extension().string() == ".jpg") 
    { 
     std::string imageFilename = itr->path().filename().string(); 
     imread(imageFilename); 
    } 
} 

如果你沒有/不想使用升壓,您可以使用cv::glob得到的名單文件在目錄中:

vector<String> filenames; 

// Get all jpg in the folder 
cv::glob("your/folder/name/*.jpg", filenames); 

for (size_t i=0; i<filenames.size(); i++) 
{ 
    Mat im = imread(filenames[i]); 
} 
+0

有沒有必要使用提升。你可以使用[cv :: glob](http://stackoverflow.com/a/26536198/5008845) – Miki

+0

@Miki,我知道,但問題已被刪除了一段時間,我還沒有機會編輯我的回答 – SingerOfTheFall

+0

當然,我只是指出了這一點,以防萬一。我會關閉作爲重複,但我已經鑄造了我的投票之前的單詞「文件夾」出現了 – Miki