我已经开始在Android平台上使用opencv了。我想改变图像的色调,而不是整个图像的子部分。 那我们怎么做呢
将完整图像更改为hsv
然后选择特定部分(矩阵)
或
我也尝试使用第二种方法的代码我还没有成功。所以我想要一些很好的例子或一些指导如何实现这一点。
答案 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;
}