【发布时间】:2018-08-06 00:10:29
【问题描述】:
我是 OpenCV 的新手。我在 This Post 之后在 Android Studio 中集成了 OpenCV
使用的 OpenCV SDK 版本是:3.4.0
Android Studio 版本:3.0.1
我的项目结构如下:
在 Canny 函数工作时访问 Imgproc 库时,其余函数(如 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
这条线表示什么??
错误:(-215) !image.empty() && image.type() == (((0) & ((1
【问题讨论】:
标签: android opencv image-processing java-native-interface