Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/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
Java 在void cv::cvtColor(cv::InputArray)中的断言失败(scn==3 | | scn==4)_Java_Android_Opencv - Fatal编程技术网

Java 在void cv::cvtColor(cv::InputArray)中的断言失败(scn==3 | | scn==4)

Java 在void cv::cvtColor(cv::InputArray)中的断言失败(scn==3 | | scn==4),java,android,opencv,Java,Android,Opencv,我试图将Mat转换为灰度值,以便获得像素的数值。我在android上的void cv::cvtColor(cv::InputArray error)中得到一个“断言失败(scn==3 | | scn==4)。我知道我遗漏了一些东西,但我不知道是什么 代码 原木猫 08-18 14:44:37.649 17571-17884/bluemage.systems.displaylatencytester E/cv::error()﹕ OpenCV Error: Assertion failed (s

我试图将Mat转换为灰度值,以便获得像素的数值。我在android上的void cv::cvtColor(cv::InputArray error)中得到一个“断言失败(scn==3 | | scn==4)。我知道我遗漏了一些东西,但我不知道是什么

代码

原木猫

08-18 14:44:37.649  17571-17884/bluemage.systems.displaylatencytester E/cv::error()﹕ OpenCV Error: Assertion failed (scn == 3 || scn == 4) in void cv::cvtColor(cv::InputArray, cv::OutputArray, int, int), file /home/reports/ci/slave_desktop/50-SDK/opencv/modules/imgproc/src/color.cpp, line 3737
08-18 14:44:37.650  17571-17884/bluemage.systems.displaylatencytester E/org.opencv.imgproc﹕ imgproc::cvtColor_10() caught cv::Exception: /home/reports/ci/slave_desktop/50-SDK/opencv/modules/imgproc/src/color.cpp:3737: error: (-215) scn == 3 || scn == 4 in function void cv::cvtColor(cv::InputArray, cv::OutputArray, int, int)
08-18 14:44:37.659  17571-17884/bluemage.systems.displaylatencytester E/AndroidRuntime﹕ FATAL EXCEPTION: Thread-4081
Process: bluemage.systems.displaylatencytester, PID: 17571
CvException [org.opencv.core.CvException: cv::Exception: /home/reports/ci/slave_desktop/50-SDK/opencv/modules/imgproc/src/color.cpp:3737: error: (-215) scn == 3 || scn == 4 in function void cv::cvtColor(cv::InputArray, cv::OutputArray, int, int)
]
        at org.opencv.imgproc.Imgproc.cvtColor_0(Native Method)
        at org.opencv.imgproc.Imgproc.cvtColor(Imgproc.java:4244)
        at bluemage.systems.displaylatencytester.testActivity.onCameraFrame(testActivity.java:117)
        at org.opencv.android.CameraBridgeViewBase.deliverAndDrawFrame(CameraBridgeViewBase.java:387)
        at org.opencv.android.JavaCameraView$CameraWorker.run(JavaCameraView.java:328)
        at java.lang.Thread.run(Thread.java:818)
我在这里看到两个错误。我想您正在尝试提取第一个像素。我不知道您的像素是否是最好的方法,但是
submat()
(参见[此处](,int,int,int)))需要
行开始,行结束,colStart,colEnd
。因此您应该将其更改为
submat(1,2,1,2)


另外,请注意,
rgba()
返回一个
rgba
图像,因此您应该使用
Imgproc.COLOR\u RGBA2GRAY

请测试image.empty()和image.channels()在使用CVTHORKE之前,错误消息告诉你,THW图像应该是一个3或4个频道的彩色图像,但实际上是.NT。我将把.WORE和.NATE放在哪里?不知道如何在Android上调试。在C++终端中,我只会添加一些“如果IpUPimTime.Enter())打印“错误:没有输入图像”和打印IpPuthigia. Chhanns[]()查看它是3还是4,并尝试找出为什么不是3或4。在cvtColor调用之前或在程序崩溃的任何地方执行此操作。没有阅读过任何太多的代码,tbh。我尝试将.empty和.channels放在cvtColor之前,它仍然会崩溃,并出现相同的错误。这些函数用于测试矩阵,它们不会修复它…问题是什么.channels的结果?很好用,非常感谢!!快速提问,如何将灰度像素值打印到日志中?我想您可以使用
get()
08-18 14:44:37.649  17571-17884/bluemage.systems.displaylatencytester E/cv::error()﹕ OpenCV Error: Assertion failed (scn == 3 || scn == 4) in void cv::cvtColor(cv::InputArray, cv::OutputArray, int, int), file /home/reports/ci/slave_desktop/50-SDK/opencv/modules/imgproc/src/color.cpp, line 3737
08-18 14:44:37.650  17571-17884/bluemage.systems.displaylatencytester E/org.opencv.imgproc﹕ imgproc::cvtColor_10() caught cv::Exception: /home/reports/ci/slave_desktop/50-SDK/opencv/modules/imgproc/src/color.cpp:3737: error: (-215) scn == 3 || scn == 4 in function void cv::cvtColor(cv::InputArray, cv::OutputArray, int, int)
08-18 14:44:37.659  17571-17884/bluemage.systems.displaylatencytester E/AndroidRuntime﹕ FATAL EXCEPTION: Thread-4081
Process: bluemage.systems.displaylatencytester, PID: 17571
CvException [org.opencv.core.CvException: cv::Exception: /home/reports/ci/slave_desktop/50-SDK/opencv/modules/imgproc/src/color.cpp:3737: error: (-215) scn == 3 || scn == 4 in function void cv::cvtColor(cv::InputArray, cv::OutputArray, int, int)
]
        at org.opencv.imgproc.Imgproc.cvtColor_0(Native Method)
        at org.opencv.imgproc.Imgproc.cvtColor(Imgproc.java:4244)
        at bluemage.systems.displaylatencytester.testActivity.onCameraFrame(testActivity.java:117)
        at org.opencv.android.CameraBridgeViewBase.deliverAndDrawFrame(CameraBridgeViewBase.java:387)
        at org.opencv.android.JavaCameraView$CameraWorker.run(JavaCameraView.java:328)
        at java.lang.Thread.run(Thread.java:818)
if(rgbMat == null){
    rgbMat = inputFrame.rgba();
    bgrPixel= rgbMat.submat(1,1,2,2).clone();
    grayPixel = new Mat();
    Imgproc.cvtColor(bgrPixel, grayPixel, Imgproc.COLOR_BGR2GRAY,1);
}