21

私はOpenCVに非常に慣れていません(2日前に使用を開始しました)。Kinectから取得した深度画像から手の画像を切り取ろうとしています。ジェスチャ認識のために手の画像が必要です。タイプとして画像を持っていますcv::Mat。私の質問は次のとおりです。

  1. メソッドを使用して関心領域を取得できるように変換する方法はありcv::Matますか?cvMatcvGetSubRect
  2. cv::Mat画像の一部を取得するために使用できる方法はありますか?

使いたかったのIplImageですが、今はどこかで読んでいcv::Matます。

4

2 に答える 2

45

:でオーバーロードされた関数呼び出し演算子を使用できます。cv::Mat

cv::Mat img = ...;
cv::Mat subImg = img(cv::Range(0, 100), cv::Range(0, 100));

詳細および。をとるオーバーロードされた関数については、 OpenCVのドキュメントを確認してくださいcv::Rect。この形式のスライスを使用すると、新しいマトリックスヘッダーが作成されますが、データはコピーされないことに注意してください。

于 2011-07-04T00:44:22.707 に答える
20

多分他のアプローチは次のようになります:

//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)

これがお役に立てば幸いです。

于 2016-03-07T16:10:07.970 に答える