2012-09-10 13 views
6

पर अनचाहे अपवाद मैंने अभी OpenCV2.4.2 स्थापित किया है और सीएमके का उपयोग करके ओपनसीवी प्रोजेक्ट बनाया है। मुझे कोई संकलन त्रुटियां नहीं मिलती हैं। मैं प्रसंस्करण छवियों के लिए कई कार्य है और मैं 2 आवेदन: एक वीडियो सेOpenCV2.4.2 VideoCapture

2- प्रक्रियाओं नकली डेटा

1- प्रक्रियाओं डेटा।

दोनों एप्लिकेशन वीडियो से डेटा निष्कर्षण को छोड़कर समान हैं।

समस्या: आवेदन प्रसंस्करण वीडियो program.exe पहुँच उल्लंघन पढ़ने स्थान 0x049f08c0 में 0x75d8a048 पर

क्रिया के अपवाद के साथ दुर्घटनाओं।

यह कोड के इस हिस्से में दुर्घटनाओं, जब फ्रेम पढ़ने:

cv::VideoCapture _video; 
while(1) 
{  
     // grab the frame 
     _video >> frame; <-------------CRASHES HERE 
       processFrame(frame); 
} 

तो मुझे लगता है कि OpenCV 2.4.2 में cv::VideoCapture वर्ग के साथ कोई समस्या हो सकती है। मैं समस्या का पता कैसे लगा सकता हूं और इसे हल कर सकता हूं?

OpenCV Error: Assertion failed (m.dims >= 2) in unknown function, file ..\..\..\ 
src\opencv\modules\core\src\matrix.cpp, line 268 
OpenCV Error: Assertion failed (0 <= _rowRange.start && _rowRange.start <= _rowR 
ange.end && _rowRange.end <= m.rows) in unknown function, file ..\..\..\src\open 
cv\modules\core\src\matrix.cpp, line 283 
+0

के लिए सुरक्षित पक्ष पर होना करने के लिए तुम्हारा के कुछ वास्तविक कोड को देखने के लिए की आवश्यकता है। – count0

+0

आप डीबग कर सकते हैं और देख सकते हैं कि वास्तव में क्या हुआ –

+0

ठीक है, मैं इस पर हूं –

उत्तर

4

आप जाँच कर रहे हैं पर कब्जा वास्तव में फ़ाइल/कैमरा खोला:

संपादित

वीडियो कैमरा मैं त्रुटि संदेश पकड़ने में सफल साथ

?

if(_video.isOpened()) { // check if capture succeeded 
     // do stuff 
    } 

सभी कोडेक प्रति डिफ़ॉल्ट समर्थित नहीं हैं। यह उस लाइब्रेरी पर निर्भर करता है जिसका उपयोग आप वीडियो खोलने के लिए करते हैं। (यह ffmpeg या quicktime हो सकता है)।

इसके अलावा, आप अपने आप को अपवाद पकड़ कर सकते हैं, बस भविष्य की समस्याओं

try { 
    _video >> frame; 
} catch (cv::Exception) { 
    cout << "An exception has accurred" << endl; 
}; 
+0

हाँ के डीबग डीएल खो रहे हैं हां, मैं जांच रहा हूं और यह खोला गया है। मैं रिकॉर्ड वीडियो का उपयोग करता हूं। सबकुछ ठीक से किया जाता है क्योंकि मैं ओपनसीवी 2.3.1 के साथ इस कोड का उपयोग करता हूं और इससे समस्याएं नहीं मिलीं –

+0

यह शायद वीडियो लाइब्रेरी के साथ एक मुद्दा है, इसे चलाने के बावजूद एक डीबगर आपको कॉल पर अधिक अंतर्दृष्टि देगा, और किस वीडियो के साथ उपप्रणाली यह वास्तव में परेशानी का कारण बनती है। – count0

+0

मैंने अपवाद हैंडलर की कोशिश की लेकिन प्रोग्राम क्रैश हो गया और बंद हो गया ताकि अपवाद कैच नहीं किया जा सके। यह आपके कोड की दूसरी पंक्ति पर रुक जाता है ... –