1. 程式人生 > >OpenCV讀取圖片數量有上限

OpenCV讀取圖片數量有上限

按照如下程式碼塊的方式讀取多張圖片,結果出現了 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 !!

這說明:

  1.  imread() 沒有將影象讀到視訊記憶體,而是記憶體
  2.  imread() 讀取的影象總大小有上限,為1185M。