2013年2月8日金曜日

OpenCVのプログラム落ちる


OpenCVのAPIに対して、有効でないパラメータを渡すとプログラムが落ちてしまう。

今回は、std::vector<cv::Point>のデータを、cv::fitEllipseに渡すと時々落ちてしまう現象が生じた。
落ちる場所は、わかったのだがなぜ落ちるのかは、すぐにわからなかった。

cv::fitEllipseにも注意書きがない

そこで、まじめにtry {} catch (cv::Exception e) {} で問題箇所を囲ったところ

std::vector<cv::Point>のサイズが5必要というエラーであることがわかった。

教訓
原因が不明な場合は、落ちる場所で、try {} catch (cv::Exception e) {} で囲いましょう

0 件のコメント:

コメントを投稿