改变图像的色调

时间:2013-12-07 09:57:07

标签: android opencv image-processing

我已经开始在Android平台上使用opencv了。我想改变图像的色调,而不是整个图像的子部分。 那我们怎么做呢

  • 将完整图像更改为hsv

  • 然后选择特定部分(矩阵)

  • 并改变它的色调
  • 然后将图像转换回rgba(我正在研究android所以它 应该b 4通道。我是对的??)

  • 选择该子部分(矩阵)
  • 将该子部分更改为hsv
  • 改变它的色调
  • 把这个具体部分退回到rgba

我也尝试使用第二种方法的代码我还没有成功。所以我想要一些很好的例子或一些指导如何实现这一点。

1 个答案:

答案 0 :(得分:1)

您可以使用示例文件夹中的OpenCV相机预览示例

尝试以下代码

    //Global variable 
    private Mat src;
    Mat hsv = null;
    private CameraBridgeViewBase mOpenCvCameraView;

    List<Mat> hsv_channel= new ArrayList<Mat>();

    ---------------------------------------
    ----------------------------------------
// Initialize Mat here 
   public void onCameraViewStarted(int width, int height) {
        src = new Mat(height, width, CvType.CV_8UC4);
        hsv = new Mat(height, width, CvType.CV_8UC4);


     }
    -----------------------------------------
    ---------------------------------------
//Process Mat here
   public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
       src = inputFrame.rgba();  
       Imgproc.cvtColor(src, hsv,Imgproc.COLOR_BGR2HSV );     
       Core.split(hsv, hsv_channel);
       Imgproc.equalizeHist(hsv_channel.get(0), hsv_channel.get(0)); //Get hue channel and perform hsitogram equlization
       Core.merge(hsv_channel, hsv);
       Imgproc.cvtColor(hsv, src,Imgproc.COLOR_HSV2BGR );     

       return src;
    }