私はOpenCVを初めて使用します(2日前に使用を開始しました)。Kinectから取得した深度画像から手の画像をカットしようとしています。ジェスチャー認識には手の画像が必要です。 cv::Mat
タイプの画像があります。私の質問は:
cvMat
メソッドを使用して関心領域を取得できるように、cv::Mat
をcvGetSubRect
に変換する方法はありますか?cv::Mat
のメソッドはありますか?IplImage
を使いたかったのですが、どこかでcv::Mat
が好ましい方法であると読んでいます。
オーバーロードされた関数呼び出し演算子をcv::Mat
で使用できます。
cv::Mat img = ...;
cv::Mat subImg = img(cv::Range(0, 100), cv::Range(0, 100));
OpenCVドキュメンテーション で詳細とcv::Rect
をとるオーバーロード関数を確認してください。この形式のスライスを使用すると、新しいマトリックスヘッダーが作成されますが、データはコピーされません。
他のアプローチは次のようになります:
//Create the rectangle
cv::Rect roi(10, 20, 100, 50);
//Create the cv::Mat with the ROI you need, where "image" is the cv::Mat you want to extract the ROI from
cv::Mat image_roi = image(roi)
これが役立つことを願っています。