我使用这个函数来分割字符图像,但程序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