0

私は過去にこれを行い、それはうまく機能しましたが、私は奇妙な機能を持っています。画像のROIを抽出しようとしています。これが私のコードです:

cv::Rect roi(x - 1, y - 1, 3, 3);
cv::Mat patch_t(current_frame, roi);

cout << (int)current_frame.at<unsigned char>(y - 1, x - 1) << endl;
cout << (int)patch_t.at<unsigned char>(0, 0) << endl;

これらの2つのcout呼び出しは同じ値を返すはずですが、そうではありません。1つは150を返し、もう1つは37を返します。これは明らかに機能していません。画像をコピーせずに画像のROIを抽出するには、他にどのような方法がありますか?

ありがとう

4

1 に答える 1

1

あなたの入力フレームはカラーフレームですか?

あなたのコードcurrent_frameは、 が CV_8UC1 または CV_8SC1 タイプのマトリックスである場合にのみ機能します。

current_frame.at<Vec3b>(i, j)RGB ピクセルにアクセスするために使用します。また、グレースケール イメージが 3 チャネル マトリックスとして読み取られる場合があることにも注意してください。

于 2012-10-18T16:39:06.747 に答える