2015-11-30 20 views
4

我想获得从相机获得的图像的一部分。我正在使用下面的代码。当我返回cameraFrame时,可以显示整个图像。但是当我使用下面的代码时,只显示黑色图像。我究竟做错了什么?当然,从inputFrame.rgba获得的图像的宽度和高度比我想裁剪的要大。我正在使用openCV 3.0。Android - openCV,获取图像的一部分 - 奇怪的行为

public Mat onCameraFrame(CvCameraViewFrame inputFrame) { 
    Mat cameraFrame = inputFrame.rgba(); 

    Rect roi = new Rect(100, 100, 500, 500); 
    Mat cropped = new Mat(cameraFrame, roi); 
    return cropped; 
} 

回答

0

我发现我做错了。 JavaCameraView/CameraViewBase不会以为相机设置的另一个分辨率显示图像。

+0

那么你怎么解决它,请告诉我。 – Rajan1404930

+0

我从'JavaCameraView'中重写'calculateCameraFrameSize',然后通过supportedSizes并选择一个支持并从此方法返回它。 –