2
我正在編寫一個使用OpenCV的程序,它涉及內部和失真參數。這些參數是從保存在光盤上的.xml文件中加載的。我用下面的命令在我開的聲明載入的文件:如何防範cvLoad失敗?
CvMat *intrinsic = (CvMat*)cvLoad("Intrinsics.xml");
CvMat *distortion = (CvMat*)cvLoad("Distortion.xml");
這隻要文件是在程序的工作目錄工作正常。當它們不是時,程序崩潰而沒有任何跡象表明錯誤的性質。我犯了多次之前沒有正確定位xml文件的錯誤,並且我希望將來能夠更輕鬆地進行故障排除。
我想創建一個防範未能加載文件的警惕。也許如果他們不存在我的程序可能會顯示錯誤信息並正常退出。我看到了方法建議here,它應該爲我工作,但我想知道是否有一個更乾淨的方式來做到這一點,而不包括另一個頭。
例如,OpenCV函數cvQueryFrame返回0,如果它不返回一個幀。我使用代碼
frame = cvQueryFrame(capture);
if(!frame)
{
printf("ERROR: Could not get frame from webcam.");
exit(-1);
}
如果cvQueryFrame無法返回幀,則退出程序。我想用我的矩陣加載命令做類似的事情。這是可能的,如果是這樣,我該怎麼做?
我檢查了OpenCV文檔,找不到指定文件的cvLoad行爲描述,因此我不知道如何繼續。
我寫這個項目在C++和Windows 7
是的,工作完美。謝謝! – user1505243 2012-08-10 22:04:50