2
mRgbaと呼ばれるopencvカメラのフレームの明るさを調整したいと思います。私はラボのチャンネルを分割した後。私はLチャンネルを調整したいと思いますが、Lチャンネルの値を変更する方法はわかりません。OpenCvはアンドロイドのチャンネルで値を分割して変更します
Mat lab_image = new Mat();
//mRgba is the frame which shows in the camera
Imgproc.cvtColor(mRgba, lab_image, Imgproc.COLOR_mRGBA2RGBA);
Imgproc.cvtColor(lab_image, lab_image, Imgproc.COLOR_RGBA2RGB);
Imgproc.cvtColor(lab_image, lab_image, Imgproc.COLOR_RGB2Lab);
// Extract the L channel
List<Mat> lab_list = new ArrayList(3);
Core.split(lab_image,lab_list);
//lab_list.get(0).copyTo(mRgba);
Mat result_image = new Mat();
Core.merge(lab_list,result_image);
Imgproc.cvtColor(result_image, mRgba, Imgproc.COLOR_Lab2RGB);
Imgproc.cvtColor(mRgba, mRgba, Imgproc.COLOR_RGB2RGBA);
Imgproc.cvtColor(mRgba, mRgba, Imgproc.COLOR_RGBA2mRGBA);
setTo()を使用して色を設定しようとしましたが、全体の色が変わります。
lab_list.get(0).setTo(new Scalar(255,255,255,0.1));
明るさ全体を高めるために値を追加したいと思います。最終結果が次の写真になることを願っています。助けてください。ありがとうございました。
Mat dst = new Mat();
Core.add(lab_list.get(0), Scalar(50), dst);
lab_list.set(0, dst);
をそして、あなたはすでにやるようにチャンネルをマージ:
http://i.stack.imgur.com/dSr4L.png
ありがとうございました。私はまずそれを試してみる。私はもう1つの質問をしたい。 Android用opencvでガンマ補正(http://www.pyimagesearch.com/2015/10/05/opencv-gamma-correction/)を適用できますか?私は主なポイント私はアンドロイドで次の機能を適用する方法を知らないと思う。誰も私にいくつかの提案を与えることができますか? テーブル= np.array([((I/255.0)** invGamma)* np.arangeにおけるI 255 (0、256)])。astype( "UINT8") cv2.LUT(画像、テーブル) – ng2b30
はい、あなたはそれを行うことができます。 [LUT関数](http://docs.opencv.org/java/2.4.2/org/opencv/core/Core.html#LUT)もAndroid用に用意されています。チュートリアルのpythonコードをJavaに翻訳しようとするだけです。 – Sunreef
npはどうですか?これはどこから来たのですか? – ng2b30