Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/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
Android OpenCV错误_Android_Opencv_Image Processing_Java Native Interface - Fatal编程技术网

Android OpenCV错误

Android OpenCV错误,android,opencv,image-processing,java-native-interface,Android,Opencv,Image Processing,Java Native Interface,我是OpenCV的新手。我在Android Studio中集成了OpenCV 使用的OpenCV SDK版本为:3.4.0 Android Studio的版本为:3.0.1 我的项目结构如下: 在访问Imgproc库时,Canny函数正在运行其他函数,如HoughLines、cornerHarris,。。LineSegmentDetector类中的detect()方法都会引发同一类型的异常,我无法找出引发该异常的原因 我的代码: public class MainActivity extend

我是OpenCV的新手。我在Android Studio中集成了OpenCV

使用的OpenCV SDK版本为:3.4.0

Android Studio的版本为:3.0.1

我的项目结构如下:

在访问Imgproc库时,Canny函数正在运行其他函数,如HoughLines、cornerHarris,。。LineSegmentDetector类中的detect()方法都会引发同一类型的异常,我无法找出引发该异常的原因

我的代码:

public class MainActivity extends AppCompatActivity {
static{ System.loadLibrary("opencv_java3"); }
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ImageView image=findViewById(R.id.image1);
    ImageView image2=findViewById(R.id.image2);
    Bitmap bitmap=BitmapFactory.decodeResource(getResources(),R.drawable.wall);
    image.setImageBitmap(bitmap);
    Mat imageMat=new Mat();
    Utils.bitmapToMat(bitmap,imageMat);
    Bitmap newBitmap=Bitmap.createBitmap(bitmap.getWidth(),bitmap.getHeight(), Bitmap.Config.ARGB_8888);
    Mat lines=new Mat();
    LineSegmentDetector lsd= Imgproc.createLineSegmentDetector(Imgproc.LSD_REFINE_STD,0.75,2,0.6,10,0.6,0.1,2);
    lsd.detect(imageMat,lines);
    //Imgproc.Canny(imageMat,lines,1,60,3,false);
    //Imgproc.HoughLines(imageMat,lines,20,20,10);
    //Imgproc.cornerHarris(imageMat,lines,2,3,0.04);
    //Imgproc.GaussianBlur(imageMat,lines,new Size(3,4),2);
    //Utils.matToBitmap(lines,newBitmap);
    image2.setImageBitmap(newBitmap);}
  }
堆栈跟踪错误:


02-26 17:51:54.845 18690-18690/com.example.bssakala.opencvsample E/cv::error():OpenCV错误:断言失败(!image.empty()&&image.type()=((0)和((1错误消息告诉您调用
detect

第416行:

 CV_Assert(!image.empty() && image.type() == CV_8UC1);
这意味着:确保提供的输入图像不是空的,并且其类型是CV_8UC1,或者向调用者抛出一条丑陋的错误消息

因此,请确保您提供了一个正确的输入图像来检测,因为其他任何东西都不起作用

这也可以在OpenCV参考手册中找到

上面写着:

参数

_图像灰度(CV_8UC1)输入图像