OpenCV讀取圖片數量有上限
阿新 • • 發佈:2019-01-10
按照如下程式碼塊的方式讀取多張圖片,結果出現了 cv::Exception錯誤。
Mat disparityMaps[74]; int num,decade,single; for (int i=0; i<74; i++) { picnum = "D://pictest//"; decade = i/10; single = i%10; if (decade) { picnum += (char)(decade+48); } picnum += (char)(single+48); picnum += ".bmp"; disparityMaps[i] = imread(picnum); }
我是怎麼發現這個BUG的呢?
我需要載入不用尺寸的影象,有的執行正常,有的就報cv::Exception錯誤;單步除錯,發現已經載入的影象大小(1185M)差不多就是視訊記憶體的大小(這裡視訊記憶體是1G)。
於是我就猜測是 imread() 將影象讀取到了視訊記憶體,視訊記憶體滿了就出錯。
但是!!我換了一臺512M視訊記憶體的電腦,讀取的影象大小還是1185M !!
這說明:
- imread() 沒有將影象讀到視訊記憶體,而是記憶體
- imread() 讀取的影象總大小有上限,為1185M。