2017-09-28 39 views

回答

0

我不知道OpenCV的機器人,但通常會

@Override public Mat onCameraFrame(Mat inputFrame){ 
    Mat gray; 
    cvtColor(inputFrame, gray, COLOR_BGR2GRAY); 
    return gray; 
} 
0

在類Mat中沒有這樣的方法gray()。如果您想將圖像轉換爲灰度,使用下面的代碼:

Imgproc.cvtColor(src, dest, Imgproc.COLOR_BGR2GRAY); 
0

inputFrame不是Mat。它必須是CvCameraViewFrame inputFrame。所以它應該是:

public Mat onCameraFrame(CvCameraViewFrame inputFrame) 
+0

它取決於OpenCV版本。在OpenCV 3.X中'onCameraFrame()'有'Mat'參數:['public Mat onCameraFrame(Mat inputFrame);'](http://docs.opencv.org/java/3.1.0/) –

+0

@AndriiOmelchenko It似乎它有兩個:[CvCameraViewListener](http://docs.opencv.org/java/3.1.0/org/opencv/android/CameraBridgeViewBase.CvCameraViewListener.html#onCameraFrame-org.opencv.core.Mat-)有'mat inputFrame'。但[CvCameraViewListener2](http://docs.opencv.org/java/3.1.0/org/opencv/android/CameraBridgeViewBase.CvCameraViewListener2.html#onCameraFrame-org.opencv.android.CameraBridgeViewBase.CvCameraViewFrame-)有'CameraBridgeViewBase。 CvCameraViewFrame inputFrame'。但'inputFrame.gray()'是第二個的一部分。 – ROAR

+0

:)你是對的:但問題是關於在'public Mat onCameraFrame(Mat inputFrame)'中使用'inputFrame.gray()',所以'Imgproc.cvtColor(src,dest,Imgproc.COLOR_BGR2GRAY);'而不是'。灰色()'是答案。 –