4

Android用のコンピュータービジョンプロジェクトを実装しており、Android NDKでOpenCVを使用しています。PreviewCallback からバイト配列でカメラから YUV NV21 形式のデータを受け取り、アプリのネイティブ部分を呼び出します。
私の問題は、YUV データを使用して 3 チャネルのマ​​ットを作成し、しきい値処理を行う方法がわからないことです。しきい値処理のために、このコードを使用したい

Mat* threshold = new Mat(height, width, CV_8UC1);    
Scalar low(yuvPixel[0] - 50, yuvPixel[1] - 10, yuvPixel[2] - 10);
Scalar up(yuvPixel[0] + 50, yuvPixel[1] + 10, yuvPixel[2] + 10);
inRange(image, low, up, *threshold);

私が知っているのは、次を使用して 1 チャンネルのマットを作成する方法です。

Mat image(height + height/2, width, CV_8UC1, (unsigned char *)frameData);

このマットを 3 チャンネルのマットに変換する簡単な方法はありますか?
前もって感謝します。

4

1 に答える 1