使用JavaCV Stitching for Android Phone

时间:2013-06-18 04:24:42

标签: android javacv

我使用JavaCV在Android 4.0.3上运行错误

OpenCV Error: Assertion failed (ssize.area() > 0) in unknown function, file C:\slave\WinInstallerMegaPack\src\opencv\modules\imgproc\src\imgwarp.cpp, line 1432

寻找功能......

Exception in thread "main" java.lang.RuntimeException: C:\slave\WinInstallerMegaPack\src\opencv\modules\imgproc\src\imgwarp.cpp:1432: error: (-215) ssize.area() > 0

com.googlecode.javacv.cpp.opencv_stitching$Stitcher.stitch(Native Method)

Lesson3_Stitch.main(Lesson3_Stitch.java:17)

任何人都可以教我如何解决它?谢谢。

这是我的代码:

public static void main(String[] args) {

        Stitcher stitcher = Stitcher.createDefault(true);
        MatVector images = new MatVector(2);
        images.put(0, cvLoadImage("sample1.png"));
        images.put(1, cvLoadImage("sample2.png"));

        IplImage result = new IplImage();

        int status = stitcher.stitch(images, images);

        if (status != Stitcher.OK) {

            cvSaveImage("result.png", result);
            System.out.println("cant stitch image" + status);

        }

        result = cvLoadImage("sample1.png");

        final CanvasFrame canvas = new CanvasFrame("My Image", 1);

        // Request closing of the application when the image window is closed.
        canvas.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);

        // Show image on window.
        // canvas.showImage(result);

    }

    private static void cvSaveImage(String string, IplImage result) {
        // TODO Auto-generated method stub

    }

    private static IplImage cvLoadImage(String string) {
        // TODO Auto-generated method stub
        return null;
    }

2 个答案:

答案 0 :(得分:0)

您需要为Android导入OpenCV,但由于您使用cvLoadImage的自定义函数返回null,因此代码无法正常工作。这不起作用。

您可以尝试使用CV.loadImage或某些变体。现在我没有OpenCV安装进行测试。

答案 1 :(得分:0)

我建议你做两件事:

首先,检查您是否有正确的导入:

import com.googlecode.javacv.cpp.opencv_core.IplImage;

import com.googlecode.javacv.cpp.opencv_core.MatVector;

import com.googlecode.javacv.cpp.opencv_stitching.Stitcher;

import static com.googlecode.javacv.cpp.opencv_highgui.*;

(对不起,我不知道为什么我不能把它们放在没有行间距的地方)。

其次,把图片的完整路径。当它找不到图像时发生在我身上。

images.put(0,cvLoadImage("/storage/sdcard0/Download/testpicture.JPG"));