私はOpenCV 3.2のバージョンを使用しています。OpenCVのVideoCaptureから取得した画像とスカラーとの整数分け
私はデフォルトのカメラ開く:
VideoCapture cap;
cap.open(0);
を、現在のフレームをつかむ:
Mat frame;
cap.read(frame);
は、今私は、画像に示されている色の数を減らしたいです。したがって、私は整数部を行い、同じスカラー値でイメージを掛けます。例えば10とします。これはC++演算子のオーバーロードで簡単に行うことができます。
Mat processedFrame = (frame/10) * 10
ただし、frame
の値は浮動小数点形式です。除算は整数除算として実行されず、色の減少は達成されない。
整数除算を行う前に、frame
のキャストを整数値にすることで修正できると思います。カメラが1(グレースケール)または3(BGR)のカラーチャンネルで画像を取得できることを考慮して、このキャストをどのように行うことができますか?
@Muscampesterはい、私が試してみました 'マットprocessedFrame =(static_castを>(フレーム)/ 10)* 10;'。これは私に全体の黒い画像を返します( 'frame'の値は>> 10です)。 –