我使用這個函數來分割字符圖像,但程序crach,somone可以幫助我,請發現解決方案,爲什麼它crach?opencv字符無效分割
0
A
回答
0
您需要查明導致崩潰的行。爲此我可以用兩種方法來思考:
- 使用調試器;
- 或者如果你害怕的是,使用
printf()
方法:
的printf()
方法包括將一個printf()
調用程序中的每個函數調用後,所以,當你運行你的應用程序,你可以在控制檯中看到什麼是最後的printf()
消息。這將幫助您找到導致崩潰的代碼。例如:
printf("dbg10\n");
IplImage *img_cv = cvLoadImage("plaque.jpg");
printf("dbg20\n");
cvSetImageROI(img_cv,cvRect(8,10,60,35));
printf("dbg30\n");
IplImage *img_pl = cvCreateImage(cvGetSize(img_cv),img_cv->depth,img_cv->nChannels);
printf("dbg40\n");
cvCopy(img_cv,img_pl, NULL);
printf("dbg50\n");
cvResetImageROI(img_cv);
printf("dbg60\n");
//etc
從我在你的代碼看到的,第2個呼叫必須引起程序崩潰的可能性:如果cvLoadImage()
無法加載圖像會返回一個空指針。由於下一個函數將指針作爲參數接收,它將嘗試解除引用空指針並導致崩潰。解? 經常檢查嚇壞回電話,你讓:
IplImage *img_cv = cvLoadImage("plaque.jpg");
if (!img_cv)
{
printf("Failed to load image.\n");
exit(1);
}
cvSetImageROI(img_cv,cvRect(8,10,60,35));
+0
我嘗試添加Printf(),但它不適用於它!!! it crach – Butterflay 2012-04-11 10:33:59
+0
printf調用只是爲了給您提示崩潰發生的位置,它不會解決問題。 – karlphillip 2012-04-11 11:45:01
相關問題
- 1. 無法分割字符串
- 2. 字符串分割的有效方式
- 3. 高效地分割字符串
- 4. 高效分割一個字符向量
- 5. OpenCV分割輪廓
- 6. OpenCV脣部分割
- 7. 無效函數分割錯誤中的字符串錯誤
- 8. get_dummies分割字符
- 9. 分割字符串[]
- 10. 分割字符串
- 11. 分割字符串
- 12. 分割字符串
- 13. 分割字符串
- 14. 分割字符串
- 15. 字符串分割
- 16. 分割字符串
- 17. 分割字符串
- 18. 分割字符串
- 19. 分割字符串
- 20. 分割使用boost ::字符串分割
- 21. 無法使用php分割字符串
- 22. Python Argparse無法分割字符串
- 23. 分割分隔字符串
- 24. C#中的圖像分割(行分割和字符分割)
- 25. 在vb.net中分割一個字符串(無分隔符)
- 26. 用unicode分隔符分割字符串?
- 27. 使用字符分隔符分割列
- 28. 由分隔符分割字符串
- 29. PHP字符串分割由分隔符
- 30. Haskell - 按分隔符分割字符串
可以運行在調試模式下,並告訴我們哪一行崩潰嗎?你使用哪種操作系統和編譯器? – dannyxyz22 2012-04-11 00:52:13
我使用Qt創建器進行編譯,但是我認爲我沒有編譯問題,因爲當我嘗試執行SetImageROI時,只執行了五行,但是當我添加CvFindContours的代碼時,它出現了問題,所以我認爲我有問題在輪廓碼 – Butterflay 2012-04-11 10:30:31
中如果此問題已成功解答,請考慮選擇正確答案,方法是單擊旁邊的複選框。如果不是,請考慮添加自己的答案。 – karlphillip 2012-06-05 23:29:07