Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv在android中拆分并更改该频道中的值_Android_Opencv_Colors_Brightness_Opencv4android - Fatal编程技术网

Opencv在android中拆分并更改该频道中的值

Opencv在android中拆分并更改该频道中的值,android,opencv,colors,brightness,opencv4android,Android,Opencv,Colors,Brightness,Opencv4android,我想调整opencv相机中帧的亮度,称为mRgba。在我分割实验室的通道后,我希望调整L通道,但我不知道如何更改L通道中的值 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_imag

我想调整opencv相机中帧的亮度,称为mRgba。在我分割实验室的通道后,我希望调整L通道,但我不知道如何更改L通道中的值

   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);
我想增加整个亮度的附加值。我希望最终结果可以成为下面的照片。请给我一些帮助。多谢各位


假设您希望将L频道增加50

您可以这样做:

Mat dst = new Mat();
Core.add(lab_list.get(0), Scalar(50), dst);
lab_list.set(0, dst);

然后像您已经做的那样合并频道。

非常感谢。我先试试。我想再问一个问题。我们可以在opencv for android中应用gamma correction()之类的东西吗?我想主要的一点是,我不知道如何在android中应用以下功能。谁能给我一些建议吗?table=np.array([((i/255.0)**invGamma)*255表示np.arange(0256)]).astype(“uint8”)cv2.LUT(图像,表格)是的,您可以这样做。Android也可以使用。试着把教程中的python代码翻译成Java。np呢?这是从哪里来的?np指一个名为NumPy的Python库,它允许高效的数组操作。您应该在Android上的OpenCV中具有相同的功能,或者您可以手动完成。非常感谢,还有一个问题XD。颜色空间表示是否有C++和java之间的区别?与hsv一样,java中的最大s和v值为255。在C++中怎么样?还有255?
Mat dst = new Mat();
Core.add(lab_list.get(0), Scalar(50), dst);
lab_list.set(0, dst);